Module 2 Testing throughout the Life Cycle

By K.N.Sasidhar

Testing throughout the Life Cycle
• • • • • Models for Testing V-Model Test Levels Test Types Maintenance Testing

Models for Testing • • • • • • • • The Waterfall model V Model Spiral model Iterative development model Clean-room software engineering model Synch and Stabilize model Agile methodology and Extreme Programming ……

Waterfall model:
- Sequential follow up of SDLC activities - Requirements Analysis, HLD,DLD, Coding/Development, Testing, Maintenance - Late attention to the testing activity - When earlier phases in the development slips it is the testing phase that gets squeezed - Harder to ensure quality because the testing team has not been involved in the project from the earliest phase - Errors are more costly to correct - Testing is seen as a test execution phase - Difficult to deal with the changes - Working version of the software appears very late in the

- Integrates development and testing activities - Shows development activities on the left-hand and the corresponding test activities on the right-hand - Testing is not seen as a phase that happens at the end of development - For every stage of development,an equal stage of testing needs to occur - Testing based on documents/Errors found early/less expensive/in build quality - Correct tests are created - Testing viewed as through out the life cycle

Iterative development models: - Prototyping - Spiral - RAD - Rational unified process - Agile development are examples

Testing within a lifecycle model
In any life cycle model, there are Several characteristics of good testing: - For every development activity there is a corresponding testing activity - Each test level has test objectives specific to that level - The analysis and design of tests for a given test level should begin during the corresponding development activity - Testers should be involved in reviewing documents as soon as drafts are available in the development life cycle

Verification, Validation and Testing Verification: “ The Process of evaluating a system or component to determine whether the products of the given development phase satisfy the conditions imposed at the start of the phase” or According to BS 7925-1 “ Confirmation by examination and provision of objective evidence that specified requirements have been fulfilled” “Have I built the system according to specification”

Verification, Validation and Testing Validation: According to BS 7925-1 “ Confirmation by examination and provision of objective evidence that the particular requirements for a specified intended use have been fulfilled.” “ Was the Specification correct” “Ensuring that we have built the product as the user intended it to be used”

Testing – Definition “ The Process of exercising software to verify that it satisfies specified requirements and to detect errors” BS 7925-1 Testing is : - the confirmation that we have built the product right (Verification) and have built the right product(Validation)

Test Levels

• • • •

Component Testing Integration Testing System Testing Acceptance Testing

• • • • • • • • • •

Component Testing Testing of individual software components(BS 7925 –1) Also known as Unit testing,Module testing, Program testing Searches for defects in, and verifies the functioning of software components(Programs,Objects,Classes etc) Stubs ,drivers and simulators may be used May include testing of functionality and specific nonfunctional characteristics such as memory leaks etc. Also includes structural testing(eg: branch coverage) with access to the code Usually done by the programmer who wrote the code Defects are typically fixed as soon as they are found,without formally recording incidents Prepare and automate test cases (eg: J Unit) BS 7925 –2 defines techniques for the design and

Integration Testing “Testing performed to expose faults in the interfaces and in the interaction between integrated components”.

Two Types: Integration in the Small Integration in the Large

Integration Testing in the Small Four approaches are there:- Top-down - Bottom-up - Big-bang - Functional Incrementation Testing

Top-down Testing: • Main Program is tested first • Modules are integrated one at a time • Major emphasis is on testing interfaces • Interface errors are discovered early • Test Stub’s are needed • Errors in critical modules at low levels are found late • Uses Depth-First approach • Design errors detected early “Stubs are used as passive subprograms to allow high level control routines to be tested when low level component is unavailable”

Bottom-up Testing: • • • • • • Tests low-level units first Modules are integrated one at a time Test Driver’s s are needed Errors in critical modules at low levels are found early Uses Breadth-First approach Design errors discovered late

“Drivers are used to run low-level modules and to test the interfaces or links between them”

System Testing • Testing the System based on what it is supposed to do (Functional) and how well it is doing(NonFunctional) • Two Types
• Functional • Non-functional

– Non-Functional requirements include: Security,Reliability,Usability,Installability, Recovery, Interoperability etc…

Acceptance Testing: “Formal testing conducted to enable a user,customer or other authorized entity to determine whether to accept a system or component “ • Acceptance testing is high on the V model , a counter part to the Requirement specification process User Acceptance Testing: • Testing conducted by and visible to customer • It is conducted at the final stage of Validation Contract Acceptance Testing: A demonstration of the acceptance criteria which would have been defined in the contract being met.

Alpha & Beta Testing: -Alpha tests are Performed at the developer’s site while beta tests are performed at the user’s sites. - Alpha : Less Quality , by the developer or customer, controlled environment,Developer ‘looking over the shoulder’ of the customer - Beta : Testing at the customer’s site by the end users of the product , under different conditions.

Maintenance Testing
- Testing changes to the software after it has gone into production - Maintenance testing is something that can go for as long as the system is in use after it has gone into production - Problem with maintenance testing may be old code & their specs may be poor - Scope of the maintenance testing to be judged in relation to the changed code , how much has changed, what areas does it really affect etc……

Sign up to vote on this title
UsefulNot useful