software testing (satyam) by jai raj yadav.ppt

Upload: sharanappa-rathod

Post on 03-Apr-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    1/105

    Software Testing Ver 2.0 Jan, 20011

    Software Testing

    Jai Raj Yadav

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    2/105

    Software Testing Ver 2.0 Jan, 20012

    Software TestingSoftware Testing

    What are your expectationsfrom the course?

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    3/105

    Software Testing Ver 2.0 Jan, 20013

    Software TestingSoftware Testing

    Course CoverageCourse Coverage Software Testing Fundamentals Testing & Debugging Role of Testing What Hinders Effective Testing Testing Everything ? Can it be replaced ?

    Testing Principles Software testing Requirements Testing Levels/Phases Alpha & Beta Testing Exception & Suspicion Testing

    Testing Methodology Testing Strategy Software Testing Phases

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    4/105

    Software Testing Ver 2.0 Jan, 20014

    Software TestingSoftware Testing

    Course CoverageCourse Coverage

    How Much to Test Testing Techniques

    Testing for Specialized Environments & Applications

    Regression Testing

    Unit Testing

    Integration Testing

    System Testing

    Acceptance Testing

    Causal analysis

    S f i

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    5/105

    Software Testing Ver 2.0 Jan, 20015

    Software TestingSoftware Testing

    DefinitionsDefinitions Defect

    A deviation from specification or standard Anything that causes customer dissatisfaction

    Verification

    All Quality Control activities throughout the life cycle that ensure that interim

    deliverables meet their input specification Validation

    The test phase of life cycle which assures that the end product meets the user

    needs.

    Testing

    Act of showing that the program has bugs / does not have bugs

    Debugging

    Debugging is the act of attempting to determine the cause of symptoms of

    malfunctions detected by testing or by frenzied user complaints.

    S f T i

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    6/105

    Software Testing Ver 2.0 Jan, 20016

    Software TestingSoftware Testing

    DefinitionsDefinitions Static Testing

    Verification performed without executing the systems codes Code inspection

    Reverse engineering

    Dynamic Testing

    Verification or validation performed by executing the systems code Black Box Test

    Testing based on external specifications (functional) without knowledge of how

    the system is constructed

    White Box Test Testing based on knowledge of internal structure and logic

    Usually logic driven

    S f iS f T i

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    7/105Software Testing Ver 2.0 Jan, 20017

    Software TestingSoftware Testing

    DefinitionsDefinitions Functional Test

    Tests that validate business functional requirements (what the systemisupposed to do)

    Structural Test

    Tests that validate the system architecture (how the system was designed /

    implemented)

    Test Drivers / Stubs

    A test driver simulates a calling component or external environmenet

    a test stub simulates a called component

    S f T iS ft T ti

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    8/105Software Testing Ver 2.0 Jan, 20018

    Software TestingSoftware Testing

    Testing & DebuggingTesting & DebuggingTesting Debugging

    Starts with known conditions, userpredefined procedures, predictable

    outcomes

    Unknown initial conditions, end cannot be predicted

    Should be planned, designed,

    scheduled

    Can not be constrained

    Is demonstration of error / apparent

    correctness

    Is deductive process

    Proves a programmers / designers

    failure

    Vindicates a Programmer / Designer

    Should strive to be predictable, dull,

    rigid, inhuman

    Demands intuitive leaps,conjectures,

    experimentation,freedom

    Much can be done withoutknowledge Impossible without design knowledge

    Can be done by outsider Must be done by insider

    Theory of testing available No theory of debugging is available

    Much of test design and execution

    can be automated

    Can not be automated

    S f T iS ft T ti

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    9/105Software Testing Ver 2.0 Jan, 20019

    Software TestingSoftware Testing

    StatisticsStatistics Introduction of Defects

    Requirements - 56% Design - 27%

    Coding - 7%

    Others - 10%

    Testing Time breakup Testing - 20%

    Debugging - 80%

    80-20 of the Defects -80% of all defects occur in 20% of the work

    The Pesticide Paradox First Law - Every method you use to prevent or find bugs leaves a residue

    of subteler bugs against which those methods are ineffective

    Second Law - Software complexity grows to the limits of our ability to

    manage that complexity

    S ft T tiS ft T ti

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    10/105Software Testing Ver 2.0 Jan, 200110

    Software TestingSoftware Testing

    TestingTesting

    Testing is the process of exercising or evaluating a system or

    system component by manual or automated means to verify that

    it satisfies specifed requirements (IEEE 83A)

    Testing is a process of executing a program with the intent of

    finding an error. Software testing is a critical element of software quality

    assurance and represents the ultimate review of system

    specification, design and coding.

    Testing is the last chance to uncover the errors / defects in thesoftware and facilitates delivery of quality system.

    S ft T tiS ft T ti

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    11/105Software Testing Ver 2.0 Jan, 200111

    Software TestingSoftware Testing

    Role ofTestingTesting Primary Role of Testing

    Determine whether system meets specificatios

    Determine whether system meets needs

    Secondary Role of Testing

    Instil confidence

    Provide insight into the software development process

    Continuously improve the testing process

    Why Test

    Developer not falliable

    Bugs in compilers, languages, DBs , Operating Systems Certain bugs easier to find in testing

    Dont want customers to find bugs

    Post release debugging is expensive

    Good test designing is challenging & rewarding

    S ft T tiS ft T ti

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    12/105Software Testing Ver 2.0 Jan, 200112

    Software TestingSoftware Testing

    What Hinders Effective TestingWhat Hinders Effective Testing What Hinders Effective Testing

    Optimism

    Belief that the system works

    Negative attitude towards effective testing

    Ego

    Dont want to fail Conflict between testers and developers

    testing is least structured

    testing is expensive

    Delivery commitments

    S ft T tiS ft T ti

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    13/105Software Testing Ver 2.0 Jan, 200113

    Software TestingSoftware Testing

    Testers MaturityTesters Maturity Testers Maturity (as perBiezer)

    Phase 0 - no difference between testing and debugging. Test only to

    support debugging

    Phase 1 - purpose is to show that the software works

    Phase 2 - purpose is to show that the software does not work

    Phase 3 - purpose is not to prove anything, but to reduce perceived risk ofnot working to an acceptable value

    Phase 4

    Testing is a mental discipline resulting in low risk software without

    much testing effort

    Testing as state of mind The goal is testability

    Reduce the labour of testing

    Testable code has less bugs

    S ft T tiS ft T ti

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    14/105Software Testing Ver 2.0 Jan, 200114

    Software TestingSoftware Testing

    Testing Everything ? Can it be replaced ?Testing Everything ? Can it be replaced ? Is Testing Every Thing ?

    There are other approaches to create good software

    Effective methods are

    inspection

    design style

    static analysis language checks

    development environment

    Can Testing be Replaced ?

    No, not yet Even if we use methods, cannot do away with the testing

    review, inspect, read, walkthrough, better methodologies and then

    Test

    S ft T tiS ft T ti

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    15/105Software Testing Ver 2.0 Jan, 200115

    Software TestingSoftware Testing

    Testing PrinciplesTesting Principles Testing Principles

    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.

    All tests should be traceable to the customer requirements

    Tests should be planned long before testing begins Testing should begin in the small and progress towards testing in the large

    Exhaustive testing is not possible

    Testing Involves

    Generate test conditions, cases

    Create required test environments

    Execute test by initiating application under test & applying inputs that are

    specified in the already generated test cases

    Compare actual results with expected results

    Results : Test passed or failed

    S ft T tiS ft T ti

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    16/105Software Testing Ver 2.0 Jan, 200116

    Software TestingSoftware Testing

    Software Testing RequirementsSoftware Testing Requirements Software testing is carriedout thru all the phases of development.

    An effective testing begins with a proper plan from the user requirements

    stage itself.

    Software testability is the ease with which a computer program is tested.

    Metrics can be used to measure the testability of a product

    Operability The better the software works, the more efficiently it can be tested.

    ObservabilityWhat is seen is what is tested

    ControllabilityThe better the software is controlled, the more the testing can be automated

    and optimised.

    S ft T tiS ft T ti

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    17/105Software Testing Ver 2.0 Jan, 200117

    Software TestingSoftware Testing

    Software Testing RequirementsSoftware Testing Requirements Decomposability

    By controlling the scope of testing, problems can be isolated quickly, and

    smarter testing can be performed.

    SimplicityThe less there is to test, the more quickly it can be tested

    StabilityThe fewer the changes, the fewer the disruptions to testing

    Understandability

    The more information we have, the smarter we will test.

    S f iS ft T ti

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    18/105Software Testing Ver 2.0 Jan, 200118

    Software TestingSoftware TestingTesting Strategies , Levels/PhasesTesting Strategies , Levels/Phases

    Testing Strategies

    Testing begins at the unit level and works outward toward the integrationof the entire system

    Different testing techniques are appropriate at different points of S/W

    development cycle.

    Testing Levels/Phases

    Unit / Component Testing

    Focuses on individual software units ( programs) and group of related units

    Integration Testing

    Focuses on combining units to evaluate the interaction among them

    System TestingFocuses on complete integrated system to evaluate compliance with specificified

    requirements (test characterstics that are present only when entire system is run)

    Acceptance Testing

    Done from users perspective to evaluate fitness of use

    Soft are TestingSoft are Testing

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    19/105Software Testing Ver 2.0 Jan, 200119

    Software TestingSoftware TestingSoftware Testing PhasesSoftware Testing Phases

    IntegrationTest

    ReviewedSource

    Code

    Unit TestedSource

    Code

    IntegratedSource

    CodeUnit Test

    DDD UTP

    Unit Test Cases

    HLD ITP

    Integration Test Cases

    Review

    UTRDefect

    Log

    Review

    ITR

    Software TestingSoftware Testing

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    20/105

    Software Testing Ver 2.0 Jan, 200120

    Software TestingSoftware TestingSoftware Testing PhasesSoftware Testing Phases

    URD ATP

    AcceptanceTest Cases

    AcceptanceTest

    IntegratedSource

    Code

    SystemTestedSource

    Code

    AcceptedProductSystem Test

    SRS STP

    System Test Cases

    Review

    STRDefect

    Log

    Review

    ATR

    Software TestingSoftware Testing

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    21/105

    Software Testing Ver 2.0 Jan, 200121

    Software TestingSoftware Testing

    Relation of Development and Testing PhasesSSAD Projects:

    S.No Development Cycle Phase Type of Testing to be planned1 URD Acceptance Testing2 SRS System Testing3 HLD Integration Testing4 DD Unit Testing

    OOAD and Web based Projects:S.No Development Cycle Phase Type of Testing to be planned1 URD Acceptance Testing2 SRS System Testing3 OOADD Class Integration Testing, andClass Testing

    Software TestingSoftware Testing

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    22/105

    Software Testing Ver 2.0 Jan, 200122

    Software TestingSoftware Testing

    Relation of Development and Testing Phases

    Project Management

    Software

    Development

    Quality

    ssurance

    Coding

    Contract Warranty

    Users SoftwareRequirements

    AcceptanceTesting

    SoftwareRequirementsSpecifications

    SystemTesting

    High LevelDesign

    IntegrationTesting

    DetailedDesign

    UnitTesting

    V MODELV MODEL

    S ft T tiS ft T ti

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    23/105

    Software Testing Ver 2.0 Jan, 200123

    Software TestingSoftware TestingAlpha and Beta TestingAlpha and Beta Testing

    Alpha Test At developers site by customer

    Developer

    looking over the shoulder

    recording errors, usage problems

    controlled environment

    Beta Test at one / more customer sites by end user

    developer not present

    live situation, developer not in control

    customer records problems and reports to developer

    Software Testingo tware est ng

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    24/105

    Software Testing Ver 2.0 Jan, 200124

    Software Testingo tware est ngException & Suspicion TestingException & Suspicion Testing

    Exception Testing

    Exceptions handling often crucial for reliable operations, should be tested file errors (empty, missing, overflow)

    i-o error handling

    arithmetic operations (overflow)

    resource allocation (memory)

    task communication, creation, purging Suspicion Testing

    Consider modules where

    Programmer is less experienced

    Module having high failure rate

    Failed inspection Late change order

    Designer / programmer feels uneasy

    More extensive tests such as

    Multi- condition / Multi-branch coverage

    S ft T tiSoftware Testing

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    25/105

    Software Testing Ver 2.0 Jan, 200125

    Software TestingSoftware TestingTesting Exercise - 1Testing Exercise - 1

    ABC Ltd is a software development company in area of software consultancy &

    export. Company had been collecting and analysing project manpower costsbased on time sheets. The processing had been normal till now. Currently, one

    of the project group is in development of new integrated computerised system

    for Insurance Membership system for overseas client.

    The project team has now completed unit & integration testing and are aboutto start system testing phase.

    The project Manager has decided to use one months live data as the only data

    in system test. The system testers will not be making test plans and preparing

    test data based on test plan, but will use the input data of the old computerised

    system & compare the outputs of the new system with the outputs of the old

    system.

    Discuss the advantages & disadvantages of using live data for

    system testing as against using planned data.

    Software Testingo tware est ng

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    26/105

    Software Testing Ver 2.0 Jan, 200126

    Software Testingo tware est ngTesting Methodologies

    Testing methodologies are used for designing test cases which provide the

    developer with a systematic approach for testing.

    Any software product can be tested in one of the two ways:

    Knowing the specific function the product has been designed to perform,

    tests can be planned and conducted to demonstrate that each function is

    fully operational, and to find and correct the errors in it (Blackbox Testing).

    Knowing the internal working of a product, tests can be conducted to ensure

    that the internal operation performs according to specification and all

    internal components are being adequately exercised and in the process,

    errors if any are eliminated (Whitebox Testing).

    Software Testingo tware est ng

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    27/105

    Software Testing Ver 2.0 Jan, 200127

    Software Testingo tware est ngTesting Methodologies

    The attributes of both black-box and white-box testing can be combined

    to provide an approach that validates the software interface and also

    selectively assures that internal structures of software are correct.

    The black-box and white-box testing methods are applicable across all

    environments, architectures and applications but unique guidelines and

    approaches to testing are warranted in some cases.

    The testing methodologies applicable to test case design in different

    testing phases are as given below:White-box

    Testing

    Black-box

    Testing

    Testing for spe

    environments & applicati

    Unit Testing IntegrationTesting

    System Testing Acceptance

    Testing

    Software Testingo tware est ng

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    28/105

    Software Testing Ver 2.0 Jan, 200128

    Software Testingo tware est ngTesting Methodologies

    Black-box Testing

    Black-box tests are used to demonstrate that

    the software functions are operational;

    input is properly accepted and output is correctly produced;

    the integrity of external information (e.g., data files) is maintained.

    enables the developer to derive sets of input conditions (test cases) that will fully

    exercise all functional requirements for a program.

    Black-box testing uncovers errors of the following categories: In-correct or missing functions

    Interface errors

    Errors in the data structures or external data base access

    Performance errors Initialisation and termination errors

    Black-box testing is applied during the later stages of the testing as it purposely

    disregards control structure and attention is focused on the problem domain.

    Software Testingo tware est ng

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    29/105

    Software Testing Ver 2.0 Jan, 200129

    Software Testingo tware est ngTesting Methodologies

    Black-box Testing (contd) Test cases are to be designed to answer the following questions:

    How is functional validity tested?

    What categories of input will make good test case?

    Is the system particularly sensitive to certain input values?

    How are the boundaries of data input isolated?

    What data rates and data volume can the system tolerate? What effect will specific combinations of data have on system operation?

    The following black-box testing methods are practically feasible and

    adopted depending on the applicability: Graph-based testing methods

    Equivalence partitioning

    Boundary value analysis

    Software Testingo tware est ng

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    30/105

    Software Testing Ver 2.0 Jan, 200130

    Software Testingo tware est ngTesting Methodologies

    White-box Testing

    White-box testing is designed for close examination of procedural detail byproviding test cases that exercise specific sets of conditions and/or loops tests

    logical paths through the software.

    White box testing uses the control structure of the procedural design to derive

    test cases.

    The test cases derived from white-box testing methods will: Guarantee that all independent paths within a module have been exercised at leastones

    Exercise all logical decisions on their true and false sides

    Execute all loops at their boundaries and within their operational bounds

    Exercise internal data structures to ensure their validity.

    White box testing need to be adopted under Unit level testing strategy & canbe adapted to a limited extent under integration testing if situation warrants it.

    Basis path testing and control structure testing are some of the most widely

    used white-box testing techniques

    Software TestingSoftware Testing

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    31/105

    Software Testing Ver 2.0 Jan, 200131

    Software TestingSoftware TestingTest StrategyTest Strategy

    Should be developed for each project

    Defines the scope & general direction of testing in project High level, prepared together with the project plan

    Should answer

    When will testing occur ?

    What kind of testing will occur ?

    What are the risks ? What are the critical success factors ?

    What are the testing objectives ?

    What are the trade offs ?

    Who will conduct the testing ?

    How much testing will be done ? What tools, if any, will be used ?

    Software TestingSoftware Testing

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    32/105

    Software Testing Ver 2.0 Jan, 200132

    Software TestingSoftware TestingTest Strategy - SampleTest Strategy - Sample

    1. Name of the Project :

    Insurance Management System (IMS)

    2. Brief Description :

    Process new insuarance membership & revisions to existing memberships.

    3. Type of Project :

    New development(Batch / online application)4. Type of Software :

    PL/I, COBOL, IMS DB/DC, DB2 on Mainframe

    5. Critical Success Factors Delivery on time

    Exceptional user friendliness

    Attractive user interface

    Reasonable response time for online part

    Software TestingSoftware Testing

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    33/105

    Software Testing Ver 2.0 Jan, 200133

    Software TestingSoftware TestingTest Strategy - SampleTest Strategy - Sample

    6. Risk Factors : Development team members new to environment

    Limited automated testing tools Thorough Knowledge of American Insurance Business

    7. Test Objectives : Insure that no more 1 bug per 10 function point. Max 3 seconds response time

    User friendliness of screen / menues / documentations8. Trade Offs :

    Objectives stated under 7 to be achieved at any cost. Delivery on time takes precedence over other aspects

    9.1 AcceptanceTest (Plan,Test Preparation,Execution) Responsibility - Client/PM/PL Resource budgeted - 6 person month, 3 terminals Planned start date - Jan 16,2001 Planned end date - Feb 28, 2001 Stop criteria - Review and approval

    Software TestingSoftware Testing

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    34/105

    Software Testing Ver 2.0 Jan, 200134

    Software TestingSoftware TestingTest Strategy - SampleTest Strategy - Sample

    9.2 System Test (Plan,Test Preparation,Execution) Responsibility - PM/PL

    Resource budgeted - 6 person month, 3 terminals

    Planned start date - Dec 15,2000 Planned end date - Jan 31, 2001

    Stop criteria - Review , approval, all URD functionalty covered

    9.3 IntegrationTest Plan (Plan,Test Preparation,Execution)

    Responsibility - PL/ML Resource budgeted - 3 person month, 3 terminals

    Planned start date - Nov 15,2000 Planned end date - Dec 14, 2000

    Stop criteria - Review , approval, 100 design features covered

    9.4 Unit Test (Plan,Test Preparation,Execution)

    Responsibility - ML/TM Resource budgeted - 6 person month, 3 terminals

    Planned start date - Nov 15,2000 Planned end date - Dec 14, 2000

    Stop criteria - Review , approval, 100% code coverage proved

    Software TestingSoftware Testing

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    35/105

    Software Testing Ver 2.0 Jan, 200135

    Software TestingSoftware TestingExercise 2 (Test Strategy )Exercise 2 (Test Strategy )

    For sample project, estimated LOC is 100,000. Client has specified that number of

    major (defined without ambiguity) bugs found during acceptance testing should

    not exceed 50. In case it exceeds 50, system will not be accepted, no payment &future projects from the client.

    Acceptance test plan will be prepared by client before the start of acceptance test and

    will be made available to the team before acceptance starts. Requirement

    specifications are provided by client , reviewed by team and queries clarified byclient.

    Client will not be willing to be associated in internal reviews of Unit, Integration and

    System testing before acceptance phase.

    Define a test strategy for the Project IMS

    Software TestingSoftware Testing

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    36/105

    Software Testing Ver 2.0 Jan, 200136

    Software TestingSoftware TestingHow Much to TestHow Much to Test

    Is complete Testing Possible ?To prove that a program is free of bug is

    Practically impossible, and

    Theoretically a mammoth exercise

    Barriers We can never be sure of the verification system has been implemented

    without any bug No verification system can confirm absence of bugs

    We aim at Not absolute proof, but

    A suitable , convincing demonstration

    Quantitative measures - statistical measure of software reliability Judgement of enough

    Software TestingSoftware Testing

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    37/105

    Software Testing Ver 2.0 Jan, 200137

    Software TestingSoftware TestingHow Much to TestHow Much to Test

    Stop Criteria Time runs out - Poor Criteria

    Requires specified test design methods e.g. test cases must be derived using

    class partitioning and boundry value analysis. Testing stops when all tests

    execute without producing any error.

    A certain number of errors found - until N numbers of errors found and

    corrected.

    Requires a certain coverage - e.g. testing stops when all statements and branches

    are executed and all test cases execute without failure.

    Stop when testing becomes unproductive - e.g.system testing stops when the

    number of errors detected per testing person day drops under one.

    Use error prediction - e.g. Stop testing when number of bugs left over reduces

    to X / 1000 LOC

    Software TestingSoftware Testing

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    38/105

    Software Testing Ver 2.0 Jan, 200138

    Software TestingSoftware TestingExercise 3 ( How Much to Test)Exercise 3 ( How Much to Test)

    For sample project, estimated LOC is 100,000. Client has specified that number ofmajor (defined without ambiguity) bugs found during acceptance testing should

    not exceed 50. In case it exceeds 50, system will not be accepted, no payment &future projects from the client.

    Acceptance test plan will be prepared by client before the start of acceptance test andwill be made available to the team before acceptance starts. Requirementspecifications are provided by client , reviewed by team and queries clarified by

    client. Client will not be willing to be associated in internal reviews of Unit,Integration and System testing before acceptance phase.

    To be safe side , ABC decided to release software for acceptance when no ofunknown bugs < 35.

    Devise a scheme to prdict remaining unknown bugs inthe software.

    Software TestingSoftware Testing

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    39/105

    Software Testing Ver 2.0 Jan, 200139

    Software TestingSoftware TestingTesting techniquesTesting techniques

    Testing Techniques are means by which test conditions / cases are

    identified. Three broad types of techniques :1. Flow / Coverage based

    2. Domain Based

    3. Population analysis

    Flow / Coverage based Statement coverage

    Branch coverage

    Condition coverage (unitary )

    Multiple condition coverage (compound)

    Full path coverage

    Software Testingo tware est ng

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    40/105

    Software Testing Ver 2.0 Jan, 200140

    Software Testingo tware est ngExercise-4 (Testing techniques)Exercise-4 (Testing techniques)

    Illustrate logic coverage in logic below :

    IF CODE IS BLANK OR NOT IN DATABASEDISABLE ACCOUNT HISTORY

    ELSE

    IF NO CREDIT AND AMOUNT < 100

    DISABLE ACCOUNT HISTORY

    ELSEENABLE ACCOUNT HISTORY

    ENDIF

    ENDIF

    DISABLE SPECIAL REGION

    IF REGION = NORTH EASTENABLE SPECIAL REGION

    ENDIF

    Software TestingSoftware Testing

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    41/105

    Software Testing Ver 2.0 Jan, 200141

    Software TestingSoftware TestingTesting techniquesTesting techniques

    Domain Based

    Domain based testing techniques look at inputs and outputs and derive test casesbased on the analysis of the input & output domains. Steps are :

    Identify all inputs

    Identify all outputs

    Identify equivalence class for each input

    Identify equivalence class for each output Equivalence partitioning :Ensure that test cases test each input & output

    equivalence class at least once Boundary Value Analysis :For each input equivalence class, ensure that

    test cases include

    one interior point all extrme point

    all epsilon points

    Decision Table : Identify combinations of input that result in different

    output values

    Software TestingSoftware Testing

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    42/105

    Software Testing Ver 2.0 Jan, 200142

    Software TestingSoftware TestingExercise - 5 (Testing techniques)Exercise - 5 (Testing techniques)

    A subroutine takes in subject marks, student type and returns the grades for the

    students in that subject.

    Inputs : Marks - (0-100)

    Student type - First Time / Repeat

    Outputs : Grades - F, D, C, B, A

    Rules :Student type First Time : 0-40 = F, 41-50 = D, 51-60 = C, 61-70 = B, 71-100 = A

    Student type Repeat : 0-50 = F, 51-60 = D, 61-70 = C, 71-80 = B, 81-100 = A

    1. Identify test cases that satisfy equivalence

    partitioning rules

    2. Identify cases based on boundry value analysis

    3. Identify cases that satisfy decision tables

    Software TestingSoftware Testing

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    43/105

    Software Testing Ver 2.0 Jan, 200143

    Software TestingSoftware TestingTesting techniquesTesting techniques

    Population analysis Used to identify kinds and frequency of data in production

    environment Uses existing production data, could be in various forms

    production files, tables manual files files from other similar systems

    Could give the tester things not clear in / different form/ additionalto specifications

    codes/values used in production

    unusual data conditions type, frequency of transactions types of in correct transactions

    Production environment also gives model for flow of scripts

    Software TestingSoftware Testing

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    44/105

    Software Testing Ver 2.0 Jan, 200144

    Software TestingSoftware TestingUnit TestingUnit Testing

    Unit testing focuses verification effort on the smallest unit of

    software code. Five aspects are tested under Unit testingconsiderations:

    module interface. local data structure Boundary conditions independent paths error-handling paths are tested.

    Unit can be compiled / assembled/ linked/ loaded and put undertest

    Unit testing is done to show that the unit does not satisfy thefunctional specification and / or its implemented structure doesnot match the intended design structure

    Unit Test PlanUnit Test Plan

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    45/105

    Software Testing Ver 2.0 Jan, 200145

    Unit Test PlanUnit Test PlanScope of TestingScope of Testing

    Plan for Overall Acceptance Testing in the project

    Scope of Testing

    Unit test plan identifies the Units/Sub-Units of the software which will be

    considered for Unit testing.

    Test CoverageLinks each unit being tested with the associated unit test report.

    Unit ID ASSOCIATED UNIT TEST REPORT (ID)

    Unit Test PlanUnit Test Plan

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    46/105

    Software Testing Ver 2.0 Jan, 200146

    Unit Test PlanUnit Test PlanTest CoverageTest Coverage

    Test Coverage

    Test Coverage Goals

    Test Completion Criteria

    Specify the test completion criteria to be applied. These may be different

    for different units

    Test Coverage or X Remarks (If any)Path Coverage

    Statement Coverage

    Decision (Logic/Branch) Coverage

    Condition Coverage

    Decision/Condition Coverage

    Multiple-Condition Coverage

    Unit Test Plan (UTP)n t est an

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    47/105

    Software Testing Ver 2.0 Jan, 200147

    Unit Test Plan (UTP)n t est anTest DeliverablesTest Deliverables

    Test Deliverables

    Test deliverables(documents, reports that must be provided at the end of testing). For example,Test Plan, Test Cases, Input and Output Data (Screen Dumps, Reports etc.) and

    any other items used.

    Submitted to Whom

    the agencies to whom they should be submitted. For example, Project Team, ,Customer etc.

    Metrics Collection

    The Unit Test Report containing the details of the test runs and defect analysisshall be prepared by each tester. The data from all the Unit Test Reports shall beconsolidated in the Defect Log.

    Goto : UTPTemplate

    U it T t R t (UTR)U it T t R t (UTR)

    http://utp.doc/http://utp.doc/
  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    48/105

    Software Testing Ver 2.0 Jan, 200148

    Unit Test Report (UTR)Unit Test Report (UTR)

    Individual Unit Test Report (UTR) for each of the Units (as

    mentioned in DDD) Tested

    Test Prerequisites

    Execution Details

    Wrap-up Details

    Test Cases

    U it T t C D iU it T t C D i

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    49/105

    Software Testing Ver 2.0 Jan, 200149

    Unit Test Case DesignUnit Test Case Design

    Test Case Id

    Unique identification number which relates to unit or sub-unit

    Test Case Description

    Identifies test coverage(s) undertaken for this unit test case

    Path Coverage

    Statement Coverage

    Decision (Logic/branch) Coverage

    Condition Coverage

    Test Case Structure

    Test Category

    Test No.

    Expected Result

    Actual result

    U it T t C D iU it T t C D i

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    50/105

    Software Testing Ver 2.0 Jan, 200150

    Unit Test Case DesignUnit Test Case Design

    Test Case Structure (Contd.) Test Category

    Type of test

    screen layout

    data input, etc.

    Test No.

    Identifies unique serial no. for sub test case required to test individualtest category

    Expected Result

    Output to be produced

    Actual ResultActual result after executing the test case

    Goto: Unit Test ReportTemplate

    Software Testingo tware est ng

    http://utr.doc/http://utr.doc/
  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    51/105

    Software Testing Ver 2.0 Jan, 200151

    Software Testingo tware est ngIntegration TestingIntegration Testing

    Integration testing is a systematic technique for verifying the software structure

    while conducting tests to uncover errors associated with interfacing. Integration testing is done to show that even though components were

    individually satisfactory, the combination is in correct / inconsistent.

    Black-box test case design techniques are the most prevalent during integration,

    although limited amount of white box testing may be used to ensure coverage of

    major control paths. Top-Down Integration Testing

    Top-Down integration is an incremental approach to construction of program

    structure.

    Modules are integrated by moving downward through the control hierarchy,

    beginning with the main control module (main program).

    Modules subordinate to the main control module are incorporated into the

    structure in either a depth-first or breadth-first manner

    Software Testingo tware est ng

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    52/105

    Software Testing Ver 2.0 Jan, 200152

    Software Testingo tware est ngIntegration TestingIntegration Testing

    Bottom-Up Integration Testing

    Bottom-Up integration testing begins construction and testing with atomicmodules

    Since modules are integrated from the bottom up, processing required for

    modules sub-ordinate to a given level is always available and the need for

    stubs is eliminated.

    Integration Testing for Web applications Collaboration diagrams, screens and report layouts are matched to OOADD

    and associated class integration test case report is generated

    Regression Testing

    Testing after changes have been made to ensure that no unwanted changeswere introduced.

    Regression testing is the re-execution of some subset of tests that have

    already been conducted to ensure that changes have not propagated

    unintended side effects.

    Software Testingo tware est ng

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    53/105

    Software Testing Ver 2.0 Jan, 200153

    Software Testingo tware est ngIntegration TestingIntegration Testing

    Types of integration Problems

    Configuration / version control

    I/O format , protocol mismatchs

    Conflicting data views / usage

    data integrity violated

    wrong call order / parameters Missing / overlapping functions

    Resource problems (memory etc)

    I t ti T t PlIntegration Test Plan

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    54/105

    Software Testing Ver 2.0 Jan, 200154

    Integration Test PlanIntegration Test Plan

    Plan for Overall Acceptance Testing in theproject

    Scope of TestingTest Coverage

    Test Deliverables

    ITPTemplate

    Integration Test PlanIntegration Test Plan

    http://itp.doc/http://itp.doc/
  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    55/105

    Software Testing Ver 2.0 Jan, 200155

    teg at o est ateg at o est aScope of TestingScope of Testing

    Scope of Testing

    ITP identifies the modules, sub modules, interfaces among

    modules or sub-modules, and the specific functional,

    performance, and internal design characteristics that are to be

    tested.

    Test Coverage

    Test Modules and Associated Reports

    Specifies details about each module / sub module and associated

    interfaces, and the related Integration Test Reports.Module ID / Sub Module ID/ Interface ID

    HLD Reference (ID) Associated Integration

    Test Case Report (ID)

    Integration Test PlanIntegration Test Plan

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    56/105

    Software Testing Ver 2.0 Jan, 200156

    ggTest CoverageTest Coverage

    Test Coverage (contd)

    Test Coverage Goals

    Identify the testing coverage that will be followed

    Test Completion Criteria

    Test Features (as per URD) and associated Test Data

    Source of Test Data (Supplied by Customer or generated by

    Satyam)

    Test Coverage or X Remarks (If any)Equivalence partitioningBoundary-value analysis

    Cause-effect graphing

    Error guessing

    Integration Test PlanIntegration Test Plan

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    57/105

    Software Testing Ver 2.0 Jan, 200157

    ggTest DeliverablesTest Deliverables

    Deliverables Test Reports

    Defect Summary

    Severity details

    (test deliverables (documents, reports that must be provided at

    the end of testing eg, Test Plan, Test Case(s), Input and Output

    Data (Screen Dumps, Reports etc.) and any other items used)

    Submitted to Whomthe agencies to whom they should be submitted. For example,

    Project Team, Quality group, Customer etc.

    Integration Test Report (ITR)Integration Test Report (ITR)

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    58/105

    Software Testing Ver 2.0 Jan, 200158

    Integration Test Report (ITR)Integration Test Report (ITR)

    Individual Acceptance Test Report (ATR) for eachof the Modules / Sub-Modules / Interfaces Tested

    (as mentioned in HLDD)

    Test Prerequisites

    Execution Details

    Wrap-up Details

    Test Cases

    Integration Test Case DesignIntegration Test Case Design

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    59/105

    Software Testing Ver 2.0 Jan, 200159

    Integration Test Case DesignIntegration Test Case Design

    Test Case ID

    Test Case Description

    Test Case Structure

    Integration Test Case DesignIntegration Test Case Design

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    60/105

    Software Testing Ver 2.0 Jan, 200160

    Integration Test Case DesignIntegration Test Case Design

    Test Case IDUnique identification number which relates to

    individual elements of HLD

    Test Case DescriptionIdentifies test coverage(s) undertaken

    Boundary-value Analysis

    Error Guessing

    Interface Integrity

    Functional Validity

    Informal Content

    Integration Test Case DesignIntegration Test Case Design

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    61/105

    Software Testing Ver 2.0 Jan, 200161

    Integration Test Case DesignIntegration Test Case Design

    Test Case StructureTest Category

    Test No.

    Expected ResultActual Result

    Integration Test Case DesignIntegration Test Case Design

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    62/105

    Software Testing Ver 2.0 Jan, 200162

    Integration Test Case DesignIntegration Test Case Design

    Test Case StructureTest Category

    Type of test (Screen Layout, Data Input, etc.)

    Test No.

    identifies unique serial no. of the sub test case

    required to test individual test category

    Integration Test Case DesignIntegration Test Case Design

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    63/105

    Software Testing Ver 2.0 Jan, 200163

    Integration Test Case DesignIntegration Test Case Design

    Test Case Structure (Contd.)Expected Result

    Output to be produced

    Actual Result

    Actual result after executing the Test Case

    Integration Test ReportTemplate

    Software TestingSoftware Testing

    http://itr.doc/http://itr.doc/
  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    64/105

    Software Testing Ver 2.0 Jan, 200164

    ggSystem TestingSystem Testing

    System testing verifies that all elements mesh properly and the overall

    system function/performance is achieved. The aim is to verify all system elements and validate conformance

    against SRS.

    System testing is aimed at revealing bugs that can not be attributed to

    a component as such, to inconsistencies between components orplanned interactions between components.

    Concerns : issues , behaviours that can only be exposed by testing the

    entire integrated system (eg. Performance, security, recovery etc)

    System testing is categorised into the following 15 types.The type(s)

    of testing is to chosen depending on the customer / system

    requirements.

    Software TestingSoftware Testing

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    65/105

    Software Testing Ver 2.0 Jan, 200165

    ggSystem TestingSystem Testing

    Compatibility / Conversion Testing

    Where the software developed is a plug-in into an existing system, thecompatibility of the developed software with the existing system has to be

    tested.

    Configuration Testing

    Configuration testing includes either or both of the following: testing the software with the different possible hardware configurations

    testing each possible configuration of the software

    Documentation Testing

    Documentation testing is concerned with the accuracy of the user documentation Facility Testing

    Facility Testing is the determination of whether each facility / functionality

    mentioned in SRS is actually implemented.

    Software TestingSoftware Testing

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    66/105

    Software Testing Ver 2.0 Jan, 200166

    ggSystem TestingSystem Testing

    Installability Testing

    Certain software systems will have complicated procedures for installing the

    system e.g. the system generation (sysgen) process in IBM Mainframes.

    Performance Testing

    Performance testing is designed to test run-time performance of software within

    the context of an integrated system.

    Performance testing occurs throughout all phases testing.

    Performance Testing for Web Applications

    Performance testing has five manageable phases:

    architecture validation, performance bench marking, performance regression

    performance tuning and acceptance, and the continuous performance monitoring

    necessary to control performance and manage growth.

    Software TestingSoftware Testing

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    67/105

    Software Testing Ver 2.0 Jan, 200167

    ggSystem TestingSystem Testing

    Procedure Testing

    When the software forms a part of a large and not completely automated system,the interfaces of the developed software with the other components in the larger

    system shall be tested.

    Recovery Testing

    Recovery testing is a system test that forces the software to fail in a variety ofways and verifies that recovery is properly performed.

    Reliability Testing

    Test any specific reliability factors that are stated explicitly in the SRS.

    Security Testing

    Verify that protection mechanisms built into a system will protect it from

    improper penetration.

    Design test cases that try to penetrate into the system using all possible

    mechanisms.

    Software TestingSoftware Testing

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    68/105

    Software Testing Ver 2.0 Jan, 200168

    ggSystem TestingSystem Testing

    Serviceability Testing

    Serviceability testing covers the serviceability or maintainability characteristics ofthe software. The requirements stated in the SRS may include :-

    service aids to be provided with the system, e.g., storage-dump programs,

    diagnostic programs

    the mean time to debug an apparent problem

    the maintenance procedures for the system the quality of the internal-logic documentation

    Storage TestingStorage testing is to ensure that the primary & secondary storage requirements are

    within the specified bounds.

    Stress Testing

    Stress tests are designed to confront programs with abnormal situations.

    Stress testing executes a system in a manner that demand rescues in abnormal

    quantity, frequency or volume.

    Software TestingSoftware Testing

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    69/105

    Software Testing Ver 2.0 Jan, 200169

    ggSystem TestingSystem Testing

    Usability Testing

    Attempt to uncover the software usability problems involving the human-factor

    Volume Testing

    Volume Testing is to ensure that

    the software can handle the volume of data as specified in the SRS

    Does not crash with heavy volumes of data, but gives an appropriate message

    and/or makes a clean exit.

    System Test Plan for the Project

    System Test Report

    System Test PlanSystem Test Plan

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    70/105

    Software Testing Ver 2.0 Jan, 200170

    yyScope of TestingScope of Testing

    Plan for Overall System Testing in the project

    Scope of Testing

    System Test Plan identifies which portions of the system are covered under

    the test and the features being tested.

    Test Coverage

    Test Features (as per SRS)

    Links each requirement in the SRS (identified by means of a brief

    description) with specific test cases.

    Feature Being

    Tested

    Functional Requirement ID in

    SRS

    Associated System Test C

    (ID)

    System Test PlanSystem Test Plan

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    71/105

    Software Testing Ver 2.0 Jan, 200171

    yyTest CoverageTest Coverage

    Test Coverage Goals

    Identifies the testing coverage that will be followed.

    Test Completion Criteria

    Test Coverage or X Remarks (If any)Facility Testing

    Volume Testing

    Stress Testing

    Usability Testing

    Security TestingPerformance Testing

    Storage Testing

    Configuration Testing

    Compatibility / Conversion Testing

    Installability Testing

    Reliability Testing

    Recovery TestingServiceability Testing

    Documentation Testing

    Procedure Testing

    System Test PlanSystem Test Plan

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    72/105

    Software Testing Ver 2.0 Jan, 200172

    Test DeliverablesTest Deliverables

    Test Deliverables

    Deliverables

    Test Reports

    Defect Summary

    Severity details

    (test deliverables (documents, reports that must be provided at the end oftesting). For example, Test Plan, Test Case(s), Input and Output Data

    (Screen Dumps, Reports etc.) and any other items used.)

    Submitted to Whom

    the agencies to whom they should be submitted. For example, Project Team,Quality department, Customer etc.

    Goto:STPTemplate

    System Test Report (STR)System Test Report (STR)

    http://stp.doc/http://stp.doc/
  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    73/105

    Software Testing Ver 2.0 Jan, 200173

    System Test Report (STR)System Test Report (STR)

    Individual System Test Report (STR) for each of the Features (as

    mentioned in SRS) Tested

    Test Prerequisites

    Execution Details

    Wrap-up Details Test Cases

    System Test Case DesignSystem Test Case Design

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    74/105

    Software Testing Ver 2.0 Jan, 200174

    System Test Case DesignSystem Test Case Design

    Test Case ID

    Unique identification number which relates to individual elements of SRS

    Test Case Description

    Identifies test coverage(s) undertaken

    facility testing

    volume testing

    System Test Case DesignSystem Test Case Design

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    75/105

    Software Testing Ver 2.0 Jan, 200175

    System Test Case DesignSystem Test Case Design

    Test Case Structure

    Test Category

    Type of test

    facility test

    volume test

    Test No.Identifies unique serial no. of sub test case related to individual test category

    Expected Result

    Output to be produced

    Actual ResultActual result after executing the test case

    Goto :System Test ReportTemplate

    Software Testingo tware est ngA t T tiA t T ti

    http://str.doc/http://str.doc/
  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    76/105

    Software Testing Ver 2.0 Jan, 200176

    Acceptance TestingAcceptance Testing

    Acceptance tests are conducted at the development site or at the

    customer site depending upon the requirements and mutuallyagreed principles to enable the customer to validate all the

    requirements as per Requirement Document(URD).

    Aims at uncovering implied requirements

    Aims at evaluating fitness for use Should not find bugs which should have been found in earlier

    phases.

    Acceptance Test Plan for the Project

    Acceptance Test ReportOne for each Feature to be Tested (as mentioned in URD)

    Acceptance Test PlanAcceptance Test Plan

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    77/105

    Software Testing Ver 2.0 Jan, 200177

    Acceptance Test PlanAcceptance Test Plan

    Plan for Overall Acceptance Testing in the project

    Scope of Testing Test Coverage

    Test Features (as per URD) and associated Test Data

    Source of Test Data (Supplied by Customer or generated by Satyam)

    Test Coverage Goals

    Test Completion Criteria

    Test Deliverables Deliverables

    Test Reports

    Defect Summary Severity details

    Submitted to Whom

    Goto :ATPTemplate

    Acceptance Test ReportAcceptance Test Report

    http://atp.doc/http://atp.doc/
  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    78/105

    Software Testing Ver 2.0 Jan, 200178

    Acceptance Test ReportAcceptance Test Report

    Individual Acceptance Test Report (ATR) for each of the

    Features (as mentioned in URD) Tested

    Test Prerequisites

    Execution Details

    Wrap-up Details Test Cases

    Acceptance Test Case Design

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    79/105

    Software Testing Ver 2.0 Jan, 200179

    p g

    Test Case ID

    Unique identification number which relates to individual Functional-IDs of URD

    Test Case Description

    Identifies test coverage(s) undertaken for this Test case e.g.

    Data Entry

    Report Generation Test Case Structure

    Test Category

    Test Number

    Expected Result Actual Result

    Acceptance Test Case DesignAcceptance Test Case Design

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    80/105

    Software Testing Ver 2.0 Jan, 200180

    Acceptance Test Case DesignAcceptance Test Case Design

    Test Case Structure

    Test Category

    Type of test

    data entry

    report generation

    Test NumberIdentifies unique serial no.for each sub-test case related to individual test

    category

    Test Case Structure

    Expected Result ( output to be produced)

    Actual Result (actual result after executing the test case)

    GO TO :Acceptance Test Report Template

    Software Testingo tware est ngRegression TestingRegression Testing

    http://atr.doc/http://atr.doc/
  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    81/105

    Software Testing Ver 2.0 Jan, 200181

    Regression TestingRegression Testing

    Re-running of test cases after fix / change / enhancement re-verify all functions of each build of application

    no new problem introduced by fix / change (ripple effect)

    more complete testing

    confidence in quality and stability of build

    Bugs remain undetected without full regression test Repaeting the full test catches inadvertently introduced bugs

    Regression Testing Testing after changes have been made to ensure that no unwanted changes

    were introduced.

    Regression testing is the re-execution of some subset of tests that have

    already been conducted to ensure that changes have not propagated

    unintended side effects.

    Software Testingo tware est ngRegression TestingRegression Testing

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    82/105

    Software Testing Ver 2.0 Jan, 200182

    Regression TestingRegression Testing Regression Testing recommendations

    During Unit Testing

    Re-run unit test after every change

    During Integration Testing

    Re-run unit tests of all changed programs and re-run full

    integration tests During System Testing

    Re-run unit tests of all changed programs, and

    re-run full integration tests & system tests

    During Acceptance Testing

    Re-run unit tests of all changed programs, and

    re-run full integration tests , system tests and acceptance

    tests

    Software Testingo tware est ngRegression TestingRegression Testing

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    83/105

    Software Testing Ver 2.0 Jan, 200183

    Regression TestingRegression Testing

    During Post Acceptance Testing

    Create special regression Test packs at unit level,

    integration level,

    system test levels

    Consider time for re-running regression tests

    To build regression packs (post acceptance) , use

    earlier tests (unit, integration)

    tests that found bugs

    additional tests for bugs found in productions

    Software TestingSoftware TestingTesting for Specialized Environments & Applications (WEB)Testing for Specialized Environments & Applications (WEB)

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    84/105

    Software Testing Ver 2.0 Jan, 200184

    Testing for Specialized Environments & Applications (WEB)Testing for Specialized Environments & Applications (WEB)

    Usability Testing for Web Applications

    The intended audience will determine the "usability" testing needs of the Web

    site.Take into account the current state of the Web and Web culture.

    Link testing forWeb ApplicationsTesting determines if the site's links to internal and external Web pages areworking.

    HTML validation for Web applicationsTesting will be determined by the intended audience, the type of browser(s)expected to be used, whether the site delivers pages based on browser type ortargets a common denominator.

    Link testing forWeb ApplicationsTesting determines if the site's links to internal and external Web pages areworking.

    Software TestingSoftware TestingTesting for Specialized Environments & Applications (WEB)Testing for Specialized Environments & Applications (WEB)

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    85/105

    Software Testing Ver 2.0 Jan, 200185

    Testing for Specialized Environments & Applications (WEB)Testing for Specialized Environments & Applications (WEB)

    HTML validation for Web applications

    Testing will be determined by the intended audience, the type of browser(s)expected to be used, whether the site delivers pages based on browser type or

    targets a common denominator.

    Load testing for Web applications

    If there is a large number of interactions per unit time on the Web site testingmust be performed under a range of loads to determine at what point the

    system's response time degrades or fails.

    When the Web server software and configuration settings, CGI scripts, database

    design, and other factors can all have an impact.

    Software TestingSoftware TestingTesting for Specialized Environments & Applications (WEB)Testing for Specialized Environments & Applications (WEB)

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    86/105

    Software Testing Ver 2.0 Jan, 200186

    Testing for Specialized Environments & Applications (WEB)Testing for Specialized Environments & Applications (WEB)

    Performance Testing for Web Applications

    Performance testing has five manageable phases: architecture validation

    performance bench marking

    performance regression

    performance tuning and acceptance

    and the continuous performance monitoring necessary to controlperformance and manage growth

    . .

    Software TestingSoftware TestingTesting for Specialized Environments & Applications (WEB)Testing for Specialized Environments & Applications (WEB)

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    87/105

    Software Testing Ver 2.0 Jan, 200187

    Testing for Specialized Environments & Applications (WEB)Testing for Specialized Environments & Applications (WEB)

    Performance Testing for Web Applications

    Performance testing must be an integral part of designing, building, andmaintaining Web applications.

    Automated testing tools play a critical role in measuring, predicting, and

    controlling application performance.

    The final goal for any Web application set for high-volume use is for

    users to consistently have

    continuous availability

    consistent response timeseven during peak usage times.

    Software TestingSoftware TestingTesting for Specialized Environments & Applications (WEB)Testing for Specialized Environments & Applications (WEB)

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    88/105

    Software Testing Ver 2.0 Jan, 200188

    Testing for Specialized Environments & Applications (WEB)Testing for Specialized Environments & Applications (WEB)

    Performance Testing for Web Applications (contd)

    1. Architecture Validation: Use performance tests to validate that the software architecture will deliver

    the necessary performance & it will scale linearly as hardware is added to

    accommodate future growth.

    Testing the scalability of the architecture must happen at the start ofdevelopment, after a prototype of the application has been created and is

    able to generate transactions to touch all tiers of the application.

    Walkthrough of the logic of the front-end of the application must be done

    to ensure that its easy to navigate.

    There should be provision for enough memory and processors for theselayers of the architecture to handle the expected user volumes.

    If the application requires custom components, the scalability of the core

    technologies involved should be tested.

    Software TestingSoftware TestingTesting for Specialized Environments & Applications (WEB)Testing for Specialized Environments & Applications (WEB)

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    89/105

    Software Testing Ver 2.0 Jan, 200189

    Testing for Specialized Environments & Applications (WEB)Testing for Specialized Environments & Applications (WEB)

    Performance Testing for Web Applications (contd)

    2. Performance Benchmarking: Consider and define the types of performance tests needed.

    Create, run, and analyze the first round of performance tests against theinitial version of the application to provide a set of performance metricscommonly referred to as performance benchmarks.

    While considering the types of performance tests to create, start by definingall of the possible types of transactions user audience can initiate.

    3. Performance Regression Testing : Perform regression testing by which the Web application is continuously

    re-tested and measured against the established benchmark tests to ensure

    that application performance hasnt been degraded because of the changesmade.

    These tests should be performed when architectural modifications have beenmade during the development of the application .

    Software TestingSoftware TestingTesting for Specialized Environments & Applications (WEB)Testing for Specialized Environments & Applications (WEB)

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    90/105

    Software Testing Ver 2.0 Jan, 200190

    Testing for Specialized Environments & Applications (WEB)Testing for Specialized Environments & Applications (WEB)

    Performance Testing for Web Applications (contd)

    4. Performance Tuning and Acceptance : This is the final load-testing phase prior to the acceptance testing in which

    all of the different pieces of the Web application are integrated, andperformance is validated.

    Different transaction scenarios of real-life usage are emulated, and the

    scalability of the final configuration is validated. Ensure that server-clustering techniques provide adequate failover and

    bandwidth to handle the amount of concurrent users planned.

    5. Continuous Performance Monitoring:

    24/7 Performance testing must continue even after the application isdeployed. Typical thresholds for returned requests range anywhere betweensix and ten seconds. Anything outside the response time range shouldtrigger some type of alert.

    o tware Test ngo tware est ngGUI - WindowsGUI - Windows

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    91/105

    Software Testing Ver 2.0 Jan, 200191

    Testing for Specialized Environments & ApplicationsTesting for Specialized Environments & Applications

    Testing GUIs

    GUIs consist of number of reusable components to simplify system development ,but their inherent complexity results in the necessity of carefully designed test

    cases.

    For Windows Will window open properly based on related typed or menu-based commands?

    Can it be resized, moved and scrolled? Is all data content contained within the window properly addressable with

    mouse, and keyboard?

    Are all functions that relate to window available when needed?

    Are all functions that relate to window operational?

    Are all relevant pull down menus, tool bars, dialogue boxes, and buttons, andother controls available and properly displayed for the window?

    When multiple windows are displayed, is the name of window properly

    represented?

    o tware Test ngo tware est ngGUI - WindowsGUI - Windows

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    92/105

    Software Testing Ver 2.0 Jan, 200192

    Testing for Specialized Environments & ApplicationsTesting for Specialized Environments & Applications

    For Windows (contd)

    Is the active window properly highlighted? If multitasking is used, are all windows updated at appropriate time?

    Do multiple or incorrect mouse picks within the window cause unexpected

    side effects?

    Are audio and/or colour prompts within the window or as a consequence of

    window operations presented according to the specification? Does the window properly close?

    o tware Test ngo tware est ngGUI - Pull Down Menues & Mouse OperationsGUI - Pull Down Menues & Mouse Operations

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    93/105

    Software Testing Ver 2.0 Jan, 200193

    Testing for Specialized Environments & ApplicationsTesting for Specialized Environments & Applications

    For pull down menus and mouse operations:

    Is the appropriate menu bar displayed in the appropriate context? Does the application menu bar display system related features?

    Do pull-down operations work properly?

    Do breakaway menus, pallettes, and tool bars work properly?

    Are all menu functions and pull-down sub functions properly listed?

    Are all menu functions properly addressable by mouse? Is text typeface, size and format correct?

    Is it possible to invoke each menu function using its alternative text based

    command?

    Are menu functions highlighted based on the context of current operations

    within a window? Does each menu function perform as required?

    Are the names of menu functions self-explanatory?

    o tware Test ngo tware est ngGUI - Pull Down Menues & Mouse OperationsGUI - Pull Down Menues & Mouse Operations

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    94/105

    Software Testing Ver 2.0 Jan, 200194

    Testing for Specialized Environments & ApplicationsTesting for Specialized Environments & Applications

    For pull down menus and mouse operations (contd)

    Is context sensitive help available for each menu item? Are mouse operations properly recognised throughout the interactive context?

    If multiple clicks are required, are they properly recognised in the context?

    Do the cursor, processing indicator, and mouse pointer properly change as

    different operations are invoked?

    Software TestingSoftware TestingGUI - Data EntryGUI - Data Entry

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    95/105

    Software Testing Ver 2.0 Jan, 200195

    Testing for Specialized Environments & ApplicationsTesting for Specialized Environments & Applications

    For Data Entry:

    Is alphanumeric data entry properly echoed and input to the system? Do graphical models of data entry work properly?

    Is invalid data properly recognised?

    Are data input messages intelligible?

    o tware Test ngo tware est ngTesting of Client/ Server ArchitecturesTesting of Client/ Server Architectures

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    96/105

    Software Testing Ver 2.0 Jan, 200196

    Testing for Specialized Environments & ApplicationsTesting for Specialized Environments & Applications Testing of client/server software occurs at three different levels:

    Individual client applications are tested in disconnected mode - the operation of the

    server and the underlying network are not considered. The client software and associated server applications are tested in concert, but

    network operations are not explicitly exercised.

    The complete C/S architecture, network operation and performance, is tested.

    Commonly testing approaches for C/S applications: Application function tests

    Server tests

    Database tests

    Transaction testing

    Network communication testing.

    Derive an operation profile from client/server user scenario to indicate the

    multiple user inter-operation with the C/S system and to provide the pattern ofusage, so that the tests are planned and executed.

    Initially a single client application is tested, integration of the clients, server,

    and the network is tested next. Finally, the entire system is tested.

    Software TestingSoftware Testing

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    97/105

    Software Testing Ver 2.0 Jan, 200197

    Information to be Recorded in each Testing Phase

    Each run shall be recorded in the corresponding Test Report as

    Observed behavior

    Severity of each defect

    Cause of each defect Defect Summary shall be recorded inDefect Analysis Log

    Test Reports shall be Peer Reviewed and Approved

    Software TestingSoftware TestingCAUSAL ANALYSIS AND DEFECT PREVENTIONCAUSAL ANALYSIS AND DEFECT PREVENTION

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    98/105

    Software Testing Ver 2.0 Jan, 200198

    CAUSAL ANALYSIS AND DEFECT PREVENTIONCAUSAL ANALYSIS AND DEFECT PREVENTION

    Let us recollect

    Defect : A defect is what was wrong or incorrect in the workproduct.

    Symptom : A Symptom is an outwardly manifestation of a defect inthe work product.

    Defect Type : A type is category of defect which is indicative of the

    nature of the defect.

    Cause :A cause is some preceding incident that brought about thedefect.

    Software TestingSoftware TestingDefect TypesDefect Types

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    99/105

    Software Testing Ver 2.0 Jan, 200199

    Defect TypesDefect Types Syntax: General Syntax Problems, Spelling, punctuation, General format

    problem, Did not properly delimit the operation

    Assignment: Value(s) assigned incorrectly or not assigned at all. Interface: Communication problems between modules, components, device

    drivers, objects, functions via macros, call statements, control blocks, parameterlists.

    Checking: Errors caused by missing or incorrect validation of parameters ordata in conditional statements.

    Data: Errors cause in data definitions and handling. Includes errors related toStructure, content

    Function: General logic, Pointers, strings, Off-by-one, incrementing,recursion, Computation, algorithmic

    System:Necessary serialization of shared resource was missing, the wrong

    resource was serialized, or the wrong serialization technique was employed. Documentation: Errors associated with Non-conformance to standards,

    Comments, Messages, Manual etc.

    o tware est ngo ware es ngCause CategoriesCause Categories

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    100/105

    Software Testing Ver 2.0 Jan, 2001100

    Cause CategoriesCause Categories

    COMM: Communications Failure. e.g., Incorrect information, lost information,

    failure to communicate a change in information.

    OVER: Oversight. For example, something is overlooked or forgotten, all cases

    and conditions are not considered

    EDUC: Education. i.e., lack of knowledge or understanding about something.

    For example, not understanding a new functionality, not understanding some

    aspect of the existing system, inadequate knowledge of programming language,

    programming standards, compiler, tool, etc.

    TRAN: Transcription Error. Transcribed or copied something incorrectly.

    Knew what to do but just made a mistake

    PROC: Inadequacy of the Process. The process definition did not cover

    something and that led to a defect in the work product

    Software TestingSoftware TestingCausal AnalysisCausal Analysis

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    101/105

    Software Testing Ver 2.0 Jan, 2001101

    Causal AnalysisCausal Analysis

    Assigning Defect Type to defects

    Assigning Cause Categories to defects

    Causal Analysis

    Causal Analysis Meetings

    Preventive Actions Evaluation of the effectiveness of defect preventive actions in

    projects

    Software TestingSoftware TestingTest ToolsTest Tools

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    102/105

    Software Testing Ver 2.0 Jan, 2001102

    Test ToolsTest Tools Why Test Tools ?

    To do tedius work

    Free tester for creative work Do things Manually impossible

    Eliminate errors in manual testing

    Ability to test more

    Specially useful for regression testing

    But Tools can not repair effects of poor management

    Typical Toolkit - Broad classification defect management

    test coverage

    test execution & regression testing test planning

    test data generation

    Software TestingSoftware TestingTest ToolsTest Tools

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    103/105

    Software Testing Ver 2.0 Jan, 2001103

    Test Toolses oo s File Comparators

    Compares contents of two files and highlight differences

    Used to compare out files of test runs

    before,after changes

    expected / actual results

    Examples

    IMSCOMPR (IMS Files) from IBM CA-Verify (IBM) from Computer Associates

    Comparex from sterling Software

    EXPEDITOR (IBM) from Compuware

    BTS (IBM)

    IDT (IBM)

    Tools for keystroke capture in test scripts and script playback

    Software TestingSoftware TestingTest ToolsTest Tools

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    104/105

    Software Testing Ver 2.0 Jan, 2001104

    Test Tools Defect Management Tools

    Compares contents of two files and highlight differences

    Used to compare out files of test runs

    before,after changes

    expected / actual results

    Examples

    IMSCOMPR (IMS Files) from IBM CA-Verify (IBM) from Computer Associates

    Comparex from sterling Software

    Software TestingSoftware Testing

  • 7/28/2019 Software Testing (Satyam) by Jai Raj Yadav.ppt

    105/105

    Any Questions / clarifications ?

    Thank You