What is Software Quality Assurance? The other technical terminology for Software Quality Assurance is Verification and Validation. To
put in simple words, Verification speaks on "Are we building the right
system?" and Validation speaks on "Are we building the system right?".
SQA is an umbrella activity that is applied throughout the software
process. Quality as the American Heritage Dictionary defines is, "A Characteristic or attribute of something..."
What is Software Testing by the way? In
general, testing is finding out how well something works. In terms of
human beings, testing tells what level of knowledge or skill has been
acquired. In computer hardware and software development, testing is
used at key checkpoints in the overall process to determine whether
objectives are being met. For example, in software development, product
objectives are sometimes tested by product user representatives. When
the design is complete, coding follows and the finished code is then
tested at the unit or module level by each programmer; at the component
level by the group of programmers involved; and at the system level
when all components are combined together. At early or late stages, a
product or service may also be tested for usability. At the system
level, the manufacturer or independent reviewer may subject a product
or service to one or more performance tests, possibly using one or more
benchmarks. Whether viewed as a product or a service or both, a Web
site can also be tested in various ways - by observing user
experiences, by asking questions of users, by timing the flow through
specific usage scenarios, and by comparing it with other sites.
The answer to the primary role of software testing is two fold: Determine whether the system meets specifications (Producer View), and Determine whether the system meets business and user needs (Customer View)
Testing encompasses three concepts: The demonstration of the validity of the software at each stage in the system development life cycle. Determination of the validity of the final system with respect to user needs and requirements. Examination of the behavior of a system by executing the system on sample test data.
Goal of Testing The primary Goal of Testing is
to uncover requirement, design or coding errors in the programs. Let us
look at some fundamental concepts of Software Testing. "Verification"
is the process of determining whether or not the products of a given
phase of software development fulfill the specifications established
during the previous phase. The verification activities include proving,
testing and reviews.
"Validation" is the process of evaluating the software at the end of
the software development to ensure compliance with the software
requirements. Testing is a common method of validation.
For high reliability we need to perform both activities. Together they are called the "V & V" activities.
Software Testing is an Art. A good tester can always be a good programmer, but a good programmer need not be a good tester.
Test Objectives The following can be described as test objectives as per Glen Mayer: Testing is a process of executing a program with the intent of finding an error. A good test case is one that has a high probability of finding an as-yet-undiscovered error. A successful test is one that uncovers an as-yet-undiscovered error.
Testing Principles The following can be described as testing principles: All tests should be traceable to customer requirements. Tests should be planned long before testing begins. The Pareto principle applies to testing. Testing should begin “in small” and progress toward testing “in large”. Exhaustive testing is not possible. To be most effective, testing should be conducted by an independent third party.
Verification Strategies The following can be categorized into Verification Strategies: Requirements Reviews. Design Reviews. Code Walkthrough. Code Inspection.
Validation Strategies The following can be described as the basic Validation Test strategies. 1. Unit Testing. 2. Integration Testing. 3. System Testing. 4. Performance Testing. 5. Alpha Testing. 6. User Acceptance Testing (UAT) 7. Installation Testing. 8. Beta Testing. |