ISTQB – CTFL
Chapter 2- Testing throughout the Software life cycle
Points to remember:
Waterfall model is executed in sequential fashion. (User requirements->System
Requirements-> Global design-> Detailed design->Implementation-> Testing)
In waterfall model defects can be identified only close to the live implementation date so
time to fix the defects and retest will be very less. (Feedback time is very less)
V-model involves verification and validation
In V-model testing is done in parallel with development activity
V-model has 4 levels namely, Component testing, Integration testing, System testing(focuses
on verification of requirements) and Acceptance testing(focuses on Validation of
requirements).
Regression testing is more important in iterative models.
Iterative model is also known as mini V-model
RAD and RUP( Rational unified process) are examples of iterative model
RAD follows time-boxed development
Agile values include individuals & interaction over process and tools, working s/w over
comprehensive documentation, customer collaboration over contract negotiation,
responding to change over following a plan.
In Test-driven development the tests are written before the component is developed
Each iteration is named as Sprint which lasts from 2 to 4 weeks.
Each test level has a test objective specific to that level
The Analysis and design of test for a given test level should begin during the corresponding
development activity
Testers should be involved in reviewing documents
Test basis is used to derive test case
Test harness replicates test environment
Component testing is also known as module testing, unit testing or program testing
Component testing is based on testing requirements and detailed specification.
Stubs can be used to replace missing component to test (used in top-down approach)
Driver calls a component to be tested(used in bottom-up approach)
Component testing is used in functional and specific non-fn testing
Component testing tests robustness, memory leaks, decision coverage
Integration testing tests interfaces between components etc
Big Bang integration- all the components are integrated and then finally tested
Incremental testing- components are integrated one by one and are tested
System testing is testing the behaviour of the system as a whole
System testing should investigate both functional and non-functional requirements
The goal of acceptance testing is to establish confidence in the system(validation of
requirements)
Operational acceptance test includes testing back-ups/restore, data load, mitigation tasks,
disaster recovery, maintenance task and security vulnerabilities
Component integration testing measures code coverage
Contract acceptance vs Regulatory acceptance
Alpha testing( At developer’s site) factory acceptance testing (for COTS s/w)
Beta testing (At client’s site) Site or field acceptance testing (to acquire feedback)
ISO9126 has 6 quality characteristic (Functionality, Reliability, usability, efficiency,
maintainability, portability)
Control flow models are used for structural testing
Confirmation testing or re-testing( testing a defect when it is fixed)
Regression testing- to check whether the modification of code has not changed or affected
the existing functionality)
After deployment the operational environment is corrected or changed , during which we
need to execute Maintenance testing
Impact analysis-parts of s/w unintentionally affected
Risk Analysis helps to decide where to focus regression testing
Maintenance testing is done on existing operational system
Adhoc corrective modification (first aid patching)are concerned with defects requiring an
immediate solution
Perfective modification(modifying based on user’s request by introducing new functionality)
Adaptive modification( modifying s/w to new environment, new hardware, regulations)
Corrective planned modifications ((deferrable correction of defects)