Sunday, November 30, 2008

Testing Methodology

Importance of Software Testing Theory
Every organization system operates under certain quality requirement. Software testing in an integral part of quality assurance and a tester can contribute to quality improvement by finding bug. A QA Analyst's responsibility is different then a tester's this role is responsible to create and in force standards and methods to improve overall software development and testing process.Technical excellence (person who is very good at finding system bugs, good at automation tools, scripting, and debugging) is not enough to be a good software QA tester. Knowledge about qa methodology and process is equally important to use that technical ability.
At the requirement gathering and analysis phase some QA persons cannot understand what their role is in this phase of SDLC. Their understanding is that there is nothing to test now because no test cases are ready yet. But, a QA person has a big role to play to check standards of the requirements itself.What I personally feel is if a QA tester is clear about QA methodology, standards, his thinking is not based only on the documents but he also questions himself what are they going to develop? What is there in documents? What is missing? What is not necessary? This questioning process takes his knowledge to mature level which reflects in his documentation, test case writing, and his overall performance in other phases of STLC.It is equally important for job search and interview. Question like 'when to start testing' is not that bad for a person who has drilled little bit QA methodologies. But I doubt it would that easy and to-the-point if a person doesn’t have methodological base. Sometime even software terms and terminologies put you in embracing situation during interview and during real work environment. Years back, my TL assigned me to walk new person through about project and testing.
I spent significant effort to make him understand bug life cycle. He was actually testing bugs that were assigned to developers and not done. Here my intention is not to criticize him, but trying to tell that a tester person having knowledge of Bug life cycle and status would never touch a bug with 'not done' status and assigned to a developer.
Thanks-
Test Planning:

Test Plan is the most important ongoing document which is created by QA team and helps to manage test project. Testers need the skills to plan tests, including the selection of techniques and methods to be used to validate the product against its approved requirements and design. Test planning assesses the business and technical risks of the software application, and then develops a plan to determine if the software minimizes those risks. Test planners must understand the development methods and environment to effectively plan for testing. Test plan generally includes: Test Scope – what is to be tested
Test Plan – the deliverables to meet the test’s objectives; the activities to produce the test deliverables; and the schedule and resources to complete the activities. Requirements/Traceability – defines the tests needed and relates those tests to the requirements to be validated. Estimating – determines the amount of resources and timeframes required to accomplish the planned activities. Scheduling – establishes milestones for completing the testing effort and their dependencies on meeting the rest of the schedule.
Staffing – selecting the size and competency of staff needed to achieve the test plan objectives. Approach – methods, tools, coverage and techniques used to accomplish test objectives. Test Check Procedures (i.e., test quality control) – set of procedures based on the test plan and test design, incorporating test cases that ensure that tests are performed correctly and completely. Maximizing
Test Effectiveness – methods to assure test resources will be used most effectively.
Test Planning Steps:
Step 1. Build Test Plan
Tasks are: 1.1 Prepare Introduction 1.2 Define High level functional Approach 1.3 Identify types of test 1.4 Identify Exit Criteria 1.5 Establish regression testing strategy. 1.6 Organize Test team 1.7 Establish test environment 1.8 Define dependencies 1.9 Create Test Schedule 1.10 Select Test Tool 1.11 Establish defect tracking procedures 1.12 Establish change request procedures 1.13 Establish Version control procedures 1.14 Define Build configuration procedures 1.15 Establish reporting procedures 1.16 Define approval procedure
Step 2. Define metrics objectives: 2.1 Define Metrics 2.2 Define Metric points Step
3. Review/Approve 3.1 Schedule/Conduct Review 3.2 Obtain approval

No comments: