Chapter 2 - Testing Through Out Software Life Cycle
Chapter 2 - Testing Through Out Software Life Cycle
Chapter 2 - Testing Through Out Software Life Cycle
ISTQB syllabus 2010 Testing Throughout the Software Life Cycle Terms to Remember Know your level
ISTQB can be done : by everyone who are involved in software testing who wants a basic understanding of software testing Basic level for higher-level software testing qualification.
The new syllabus of version 2010 is effective 30-Mar-2010 Learning objectives are classified as follows:
K1: remember, recognize, recall K2: understand, explain, give reasons, compare, classify, categorize, give examples, summarize K3: apply, use K4: analyze
Testing
Explain the Test Levels Identify the Test types Describe Maintenance Testing
Test Design finds faults Faults found early are cheaper to fix Most significant faults found first Faults prevented, not built in Changing requirements caused by Test Design EARLY TEST DESIGN HELPS TO BUILD QUALITY, STOPS FAULT MULTIPLICATION
Verification : Process of evaluating a system or component to determine whether the products of the given development phase conditions imposed at the start of the phase [ BS 7925 -1 ] Validation : Determination of the correctness of the products of software development with respect to the user needs and requirements [ BS 7925 -1 ]
In any life cycle model, there are several characteristics of good things.
For every development activity , there is a corresponding testing activity. Each test level has test objectives specific to that level The analysis and design 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
Testers can be combined or reorganized depending on the nature of the project For the integration and commercial off-the-shell { COTS} software product into a system, the purchaser may perform integration testing at the system level and acceptance level
Each test level can have specific : Objective Test Object Defect / Failures Found Approach Levels of Testing Available Component Testing Integration Testing System Testing and Acceptance testing
Component Testing
Lowest Level of Testing Tested in isolation Most thorough look at detail :
Usually done by programmer, it is also known as unit, module, program testing , usually carried out in development environment Defects found are fixed without formal recordings of incidents
Integration testing tests interfaces between components, interactions with different parts of a system, such as operating system, file system, hardware or interfaces between systems. More than one [tested ] Component Communication between components What the set can perform that is not possible individually. Non functional aspects if possiblen Few types of Integration Testing are : Bing Bang , Top Down & Bottom Up Testing
In big bang integration testing individual modules of the programs are not integrated until every thing is ready. This approach is seen mostly in inexperienced programmers who rely on Run it and see approach. In this approach, the program is integrated without any formal integration testing, and then run to ensures that all components are working properly.
Disadvantages : Defects present at the interfaces of components are identified at very last stage. It is very difficult to isolate the defects found, as it is very difficult to tell whether defect is component or interface. There is some high probability of missing some critical defects which might surface in production. It is very difficult to make sure that all test cases for integration testing are covered.
Baseline 0 : Tested component Baseline 1 : Tested 2 components Baseline 2 : Tested 3 components and so on.
Advantages are :
o o o
Easier fault location and fix Easier recovery from disaster / problems Interfaces should have been tested in components tests , but add to tested baseline
The Major steps are : 1. The main control module is used as a test driver and stubs all are substituted for all components directly subordinate to the main module. 2 Depending on the integration approach subordinate stubs are replaced once a time with actual components. 3 Tests are conducted as each component is integrated 4 Stubs are removed and integrations are moves downward in the Program structure. Advantages : Can verify major control or decision points early Disadvantage : Stubs are required when perform the integration testing, and generally , develop stubs is very difficult
Major Steps:
1.Low-Level components will be tested individually first. 2. A driver ( a control program for testing )is written to coordinate test cases 3. Input and output 4. The driver is removed and integration moves upward in the program structure 5. Repeat the process until all components are included in the test. Advantage : Compared with stubs, drivers are much easier to develop Disadvantage : Major control and decision problems will be identified later in the testing process
System Testing is concerned with the behavior of a whole system / product as defined by the scope of a dev project. Often done by independent test group Test environment should match production environment as much as possible to minimize the risk environment specific failures. System should investigate both functional / non functional requirements of the system. Specification based Black-Box testing is used for system testing of functional requirements and white box testing for assessing the thoroughness of test element.
Goal of UAT is to establish confidence in the system, parts of the system or specific non-functional characteristic of the system.
Approach
Testing by { potential } customers or representatives of your market. When software is stable Use the product in a realistic way in its operational environment. Comments back on the product
Faults found How the product meet their expectations ? Improvement / Enhancements Suggestions ?
A Test type is focused on a particular test objective which could be : Testing of a function to be performed by the software. Non functional quality characteristic such as reliability or usability Architecture of the software Related to changes or looking for unintended changes.
Functions are What the system does Functional (Black Box) tests considers the external behavior of the software. Functional tests are based on functions and features and their interpretability with specific systems
Testing of how the system works. Non functional testing includes , but it is not limited to, performance testing, load testing, stress testing, usability testing, maintainability testing, reliability testing and portable testing.
Non functional testing describes the test required to measure characteristic of system of software that can be quantified on a varying scale , such as response time for performance testing. Most non functional tests are defined in the quality model.
Testing to see, whether the system does not function correctly. Testing the quality attributes of the system including reliability and usability. Gaining user approval for the system Testing a system feature using only the software required for that function.
Structural techniques are best used after specification based techniques, to measure the coverage of a type of structure White box, Statement testing, Branch / Decision testing, Data flow testing, Branch condition testing, Branch condition combination testing are some structural test techniques.
Test to confirm whether original defect has been successfully removed. Retesting an already tested program after modification, to discover any new defects introduced as a result of change is known as Regression testing. Extent of Regression Testing is based on the risk of not finding any new defects in software, which was working previously. Regression test suites are run many times and generally evolve slowly, so regression testing is a strong candidate for automation
2.
3. 4.
Answer : 1
2.
3. 4.
Re testing and Regression testing together show that a defect has been fixed and that the fix has not had an adverse effect elsewhere Re-testing involves running a test again to make sure the observed result was as previously recorded. Regression Testing is carried out only when the software is changed. Regression testing involves re-running a test that failed to make sure a defect has been fixed.