Chapter 2 – Testing Throughout the Development LifeCycle

  1. Testing Throughout the

    Software Life Cycle
    1 Fundamentals 2 Lifecycle
    4 Dynamic test
    techniques
    3 Static testing
    5 Management 6 Tools
    Software Testing
    ISTQB Foundation Exam Preparation
    Chapter 2
    Neeraj Kumar Singh

  2. Testing Throughout the

    Software Life Cycle
    Contents
    2.1 Software Development Models
    2.2 Test Levels
    2.3 Test Types
    2.4 Maintenance Testing
    Neeraj Kumar Singh

  3. Software Development Model
    V-Model(Sequential

    Development Model)
    Business
    Requirements
    System
    Requirements
    Architectural
    Design
    Detailed
    Design
    Acceptance
    Testing
    System
    Testing
    Integration
    Testing
    Component
    Testing
    Code
    ATP
    STP
    ITP
    CTP
    Neeraj Kumar Singh

  4. Software Development Model
    Testing

    within a Life Cycle 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.
    Neeraj Kumar Singh

  5. Software Development Model
    A

    sequential development model describes the software development process as a linear,
    sequential flow of activities. This means that any phase in the development process should begin
    when the previous phase is complete.
    Incremental development involves establishing requirements, designing, building, and testing a
    system in pieces, which means that the software’s features grow incrementally. The size of these
    feature increments vary, with some methods having larger pieces and some smaller pieces.
    Iterative development occurs when groups of features are specified, designed, built, and tested
    together in a series of cycles, often of a fixed duration. Iterations may involve changes to
    features developed in earlier iterations, along with changes in project scope.
     Rational Unified Process
     Scrum
     Kanban
     Spiral
    Neeraj Kumar Singh

  6. Software Development Model
    Software

    Development Model in Context
     Software development lifecycle models must be selected and adapted to the context of
    project and product characteristics. An appropriate software development lifecycle
    model should be selected and adapted based on the project goal, the type of product
    being developed, business priorities (e.g., time-tomarket), and identified product and
    project risks.
     In addition, software development lifecycle models themselves may be combined. For
    example, a Vmodel may be used for the development and testing of the backend
    systems and their integrations, while an Agile development model may be used to
    develop and test the front-end user interface (UI) and functionality.
     Internet of Things (IoT) systems, which consist of many different objects, such as
    devices, products, and services, typically apply separate software development
    lifecycle models for each object. This presents a particular challenge for the
    development of Internet of Things system versions.
    Neeraj Kumar Singh

  7. Testing Throughout the

    Software Life Cycle
    1 Fundamentals 2 Lifecycle
    4 Dynamic test
    techniques
    3 Static testing
    5 Management 6 Tools
    Software Testing
    ISTQB Foundation Exam Preparation
    Chapter 2
    Neeraj Kumar Singh

  8. Testing Throughout the

    Software Life Cycle
    Contents
    2.1 Software Development Models
    2.2 Test Levels
    2.3 Test Types
    2.4 Maintenance Testing
    Neeraj Kumar Singh

  9. Test Levels
    Component Testing

    Component testing searches for defects in, and verifies the functioning of, software
    modules, programs, objects, classes, etc. that are separately testable.
     Component testing is also known as unit, module, program, structure, code testing.
     Component testing may be required to test core functionality and specific non-
    functional characteristics, such as resource behavior.
     Typically conducted with access to the code in form of White Box testing with support
    of development environment
    Test Basis for Component testing
     Component requirement
     Detailed design
     Code
    Typical Test Objects
     Components
     Programs
     Data conversion/migration programs
     Database Modules
    Neeraj Kumar Singh

  10. Test Levels
    Integration Testing

    Integration testing tests interfaces between components, interactions with different parts
    of the system and interfaces between systems.
     There may be more than one level of integration testing
     Component Integration Testing.
     System Integration Testing.
     Systematic integration strategies may be based on the system architecture(TDA, BUA, BBA).
     The greater the scope of integration, the more difficult it becomes to isolate defects to a
    specific component or system, which may increase risk.
    Test Basis for Integration testing
     Software & System design
     Architecture, Workflows
     Use cases
    Typical Test Objects
     Subsystems
     Database implementation
     Infrastructure, Interfaces
     System config & configuration data
    Neeraj Kumar Singh

  11. Test Levels
    System Testing(K2)

    System testing is concerned with the behavior of a whole system/product.
     In System testing, the test environment should correspond to the final target or
    production environment to minimize the risk of environment-specific failure.
     Systems testing may include tests based on risk.
     Testers also need to deal with incomplete or undocumented requirements.
     System Integration Testing can be performed after System Testing as well.
    Test Basis for System testing
     System & Software requirement specs
     Functional Specification
     Use cases
     Risk analysis report
    Typical Test Objects
     System, user and operation manuals
     System Configuration
     Configuration data
    Neeraj Kumar Singh

  12. Test Levels
    Acceptance Testing(K2)

    Acceptance testing is to establish confidence in the system, parts of the system or specific non-
    functional characteristics of the system.
     Typica forms of acceptance testing include
     User acceptance testing
     Operational (acceptance) testing
     Contract and regulation acceptance testing
     Levels of testing
     Alpha Testing
     Beta Testing
    Test Basis for Acceptance testing
     User & Software requirement specs
     Business Process
     Use cases
     Risk analysis report
    Typical Test Objects
     Business process, operational process
     User procedures
     Forms, Reports
     Configuration data
    Neeraj Kumar Singh

  13. Testing Throughout the

    Software Life Cycle
    1 Fundamentals 2 Lifecycle
    4 Dynamic test
    techniques
    3 Static testing
    5 Management 6 Tools
    Software Testing
    ISTQB Foundation Exam Preparation
    Chapter 2
    Neeraj Kumar Singh

  14. Testing Throughout the

    Software Life Cycle
    Contents
    2.1 Software Development Models
    2.2 Test Levels
    2.3 Test Types
    2.4 Maintenance Testing
    Neeraj Kumar Singh

  15. Test Types
    Classification of

    Testing
    Software Testing
    Dynamic TestingStatic Testing
    Informal
    Review
    Walkthrough
    Technical
    Review
    Inspection
    Component
    Testing
    Integration
    Testing
    System Testing
    Acceptance
    Testing
    Reviews Levels of testing
    Verification ValidationNeeraj Kumar Singh

  16. Test Types
    Testing of

    function(Functional Testing)
     Functional testing is all about testing the core features of testing.
     The functions are “WHAT” the system does.
     The general levels like – Unit Testing, Integration Testing, System Testing and
    Acceptance Testing are conducted as Functional level of testing.
    Neeraj Kumar Singh

  17. Test Types
    Testing of

    Non-Functional Characteristics
     Non-Functional testing is about enhancing the quality characteristics of the system.
     The non-functions are “HOW” the system works.
     The non-functional testing includes, but not limited to, performance testing, stress
    testing, load testing, usability testing, maintainability testing, reliability testing and
    portability testing.
    Neeraj Kumar Singh

  18. Test Types
    Testing of

    Software Structure
    The different approaches to conduct dynamic levels of testing
     White Box Testing.
     Commonly performed by a developer, with
    the knowledge of code/structure.
     Performed by executing the program.
     Also known as
     Structure Box testing
     Glass Box Testing
     Open Box Testing
     Clear Box Testing
     Transparent Box Testing
     Black Box Testing.
     Commonly performed by a tester, without
    the knowledge of code/structure.
     Performed by entering inputs at User
    Interface(UI) level.
     Also known as
     Skin Box testing
     Closed Box Testing
     Opaque Box Testing
    Neeraj Kumar Singh

  19. Test Types
    Change Related

    Testing
     After a defect is detected and fixed, the should be re-tested to confirm that the defect
    reported is successfully fixed. This is also called as Re-testing.
     Regression Testing is the repeated testing of an already tested program, after
    modification to check if there are any adverse affect on unchanged part due to
    changed part.
     As regression doesn’t have a primary objective of finding defects it is considered as a
    good candidate for automation.
     Regression testing is also conducted in the scenario where –
     A live operational system’s environment changes.
     A new functionality or feature is included to a live operational system.
    Neeraj Kumar Singh

  20. Testing Throughout the

    Software Life Cycle
    1 Fundamentals 2 Lifecycle
    4 Dynamic test
    techniques
    3 Static testing
    5 Management 6 Tools
    Software Testing
    ISTQB Foundation Exam Preparation
    Chapter 2
    Neeraj Kumar Singh

  21. Testing Throughout the

    Software Life Cycle
    Contents
    2.1 Software Development Models
    2.2 Test Levels
    2.3 Test Types
    2.4 Maintenance Testing
    Neeraj Kumar Singh

  22. Maintenance Testing
    Maintenance Testing

    Once deployed, a software system is often in service for years. During this time the
    system, its configuration data, or its environment are often corrected, changed or
    extended.
     Modification include planned enhanced changes, corrective and emergency changes and
    changes of environment.
     These include updates, upgrades, migration and retirement.
     Depending on the changes, maintenance testing(Regression Testing) may be done at all
    test levels and for any or all test types.
    Neeraj Kumar Singh

  23. Maintenance Testing
    Triggers for

    Maintenance Testing
     We can classify the triggers for maintenance as follows: Modification, such as planned
    enhancements (e.g., release-based), corrective and emergency changes, changes of the
    operational environment (such as planned operating system or database upgrades),
    upgrades of COTS software, and patches for defects and vulnerabilities
     Migration, such as from one platform to another, which can require operational tests of
    the new environment as well as of the changed software, or tests of data conversion
    when data from another application will be migrated into the system being maintained
     Retirement, such as when an application reaches the end of its life
    Neeraj Kumar Singh

  24. Maintenance Testing
    Impact Analysis

    Impact analysis may be done before a change is made, to help decide if the change
    should be made, based on the potential consequences in other areas of the system.
     Impact analysis can be difficult if:
     Specifications (e.g., business requirements, user stories, architecture) are out of date or
    missing
     Test cases are not documented or are out of date
     Bi-directional traceability between tests and the test basis has not been maintained
     Tool support is weak or non-existent
     The people involved do not have domain and/or system knowledge
     Insufficient attention has been paid to the software’s maintainability during development
    Neeraj Kumar Singh

  25. Testing Throughout the

    Software Life Cycle
    1 Fundamentals 2 Lifecycle
    4 Dynamic test
    techniques
    3 Static testing
    5 Management 6 Tools
    Software Testing
    ISTQB Foundation Exam Preparation
    Chapter 2
    Neeraj Kumar Singh

  26. Testing Throughout the

    Software Life Cycle
    Sample Questions
    1. Given the following statements about the relationships between software development
    activities and test activities in the software development lifecycle:
    1. Each development activity should have a corresponding testing activity.
    2. Reviewing should start as soon as final versions of documents become available.
    3. The design and implementation of tests should start during the corresponding
    development. activity
    4. Testing activities should start in the early stages of the software development lifecycle.
    Which of the following CORRECTLY shows which are true and false?
    Answer Set:
    A. True – 1, 2; False – 3, 4
    B. True – 2, 3; False – 1, 2
    C. True – 1, 2, 4; False – 3
    D. True – 1, 4; False – 2, 3
    Neeraj Kumar Singh

  27. Testing Throughout the

    Software Life Cycle
    Sample Questions
    2. Given that the testing being performed has the following attributes:
     based on interface specifications;
     focused on finding failures in communication;
     the test approach uses both functional and structural test types.
    Which of the following test levels is MOST likely being performed?
    Answer Set:
    A. Component integration testing.
    B. Acceptance testing.
    C. System testing.
    D. Component testing.
    Neeraj Kumar Singh

  28. Testing Throughout the

    Software Life Cycle
    Sample Questions
    3. Which of the following statements about test types and test levels is
    CORRECT?
    Answer Set:
    A. Functional and non-functional testing can be performed at system and
    acceptance test levels, while white-box testing is restricted to component and
    integration testing.
    B. Functional testing can be performed at any test level, while white-box testing
    is restricted to component testing.
    C. It is possible to perform functional, non-functional and white-box testing at any
    test level.
    D. Functional and non-functional testing can be performed at any test level, while
    Whitebox testing is restricted to component and integration testing.
    Neeraj Kumar Singh

  29. Testing Throughout the

    Software Life Cycle
    Sample Questions
    4. Which of the following statements BEST compares the purposes of confirmation
    testing and regression testing?
    Answer Set:
    A. The purpose of regression testing is to ensure that all previously run tests still work
    correctly, while the purpose of confirmation testing is to ensure that any fixes made
    to one part of the system have not adversely affected other parts.
    B. The purpose of confirmation testing is to check that a previously found defect has
    been fixed, while the purpose of regression testing is to ensure that no other parts
    of the system have been adversely affected by the fix.
    C. The purpose of regression testing is to ensure that any changes to one part of the
    system have not caused another part to fail, while the purpose of confirmation
    testing is to check that all previously run tests still provide the same results as
    before.
    D. The purpose of confirmation testing is to confirm that changes to the system were
    made successfully, while the purpose of regression testing is to run tests that
    previously failed to ensure that they now work correctly.
    Neeraj Kumar Singh

  30. Testing Throughout the

    Software Life Cycle
    Sample Questions
    5. Which of the following statements CORRECTLY describes a role of impact
    analysis in Maintenance Testing?
    Answer Set:
    A. Impact analysis is used when deciding if a fix to a maintained system is
    worthwhile.
    B. Impact analysis is used to identify how data should be migrated into the
    maintained system.
    C. Impact analysis is used to decide which hot fixes are of most value to the user.
    D. Impact analysis is used to determine the effectiveness of new maintenance test
    cases.
    Neeraj Kumar Singh