4548367-Testing-Throughout-the-Life-Cycle.ppt

20
Module 2 Testing throughout the Life Cycle By K.N.Sasidhar

Transcript of 4548367-Testing-Throughout-the-Life-Cycle.ppt

  • Module 2

    Testing throughout the Life CycleByK.N.Sasidhar

  • Testing throughout the Life CycleModels for TestingV-ModelTest LevelsTest TypesMaintenance Testing

  • Models for Testing

    The Waterfall modelV ModelSpiral modelIterative development modelClean-room software engineering modelSynch and Stabilize modelAgile methodology and Extreme Programming

  • Waterfall model:

    - Sequential follow up of SDLC activitiesRequirements Analysis, HLD,DLD,Coding/Development, Testing, Maintenance Late attention to the testing activityWhen earlier phases in the development slips it is the testing phase that gets squeezedHarder to ensure quality because the testing team has not been involved in the project from the earliest phaseErrors are more costly to correctTesting is seen as a test execution phaseDifficult to deal with the changesWorking version of the software appears very late in the process

  • V-Model:

    Integrates development and testing activitiesShows development activities on the left-hand and the corresponding test activities on the right-handTesting is not seen as a phase that happens at the end of developmentFor every stage of development,an equal stage of testing needs to occurTesting based on documents/Errors found early/less expensive/in build quality Correct tests are createdTesting 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 TestingVerification: 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 TestingValidation: 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 errorsBS 7925-1

    Testing is : - the confirmation that we have built the product right (Verification) and have built the right product(Validation)

  • Test Levels

    Component TestingIntegration TestingSystem TestingAcceptance Testing

  • Component Testing Testing of individual software components(BS 7925 1)Also known as Unit testing,Module testing, Program testingSearches for defects in, and verifies the functioning of software components(Programs,Objects,Classes etc)Stubs ,drivers and simulators may be usedMay include testing of functionality and specific non-functional characteristics such as memory leaks etc.Also includes structural testing(eg: branch coverage) with access to the codeUsually done by the programmer who wrote the codeDefects are typically fixed as soon as they are found,without formally recording incidentsPrepare and automate test cases (eg: J Unit)BS 7925 2 defines techniques for the design and measurement of component testing.

  • Integration TestingTesting 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 firstModules are integrated one at a timeMajor emphasis is on testing interfacesInterface errors are discovered earlyTest Stubs are neededErrors in critical modules at low levels are found lateUses Depth-First approachDesign 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 firstModules are integrated one at a timeTest Drivers s are neededErrors in critical modules at low levels are found early Uses Breadth-First approachDesign errors discovered late

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

  • System TestingTesting the System based on what it is supposed to do (Functional) and how well it is doing(Non-Functional)Two Types FunctionalNon-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 processUser Acceptance Testing:Testing conducted by and visible to customerIt is conducted at the final stage of ValidationContract 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 developers site while beta tests are performed at the users sites.- Alpha : Less Quality , by the developer or customer, controlled environment,Developer looking over the shoulder of the customer- Beta : Testing at the customers 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