Chapter 2 - Testing Through Out Software Life Cycle

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 30
At a glance
Powered by AI
The key takeaways are that software testing is done throughout the software development lifecycle to find and fix faults. Different levels of testing include unit, integration, system and acceptance testing.

The different levels of testing are unit testing, integration testing, system testing and acceptance testing. Each level has specific objectives and targets different parts or integration of the system being tested.

Verification is the process of evaluating a system or component to ensure it meets the conditions imposed at the start of development. Validation is determining if the final product meets the actual needs and requirements of the end user.

Testing Throughout the 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

Throughout the Software Life Cycle (K2)

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 :

Error handling Interface

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.

Final Stage of Validation


Customer (user ) should perform or be closely involved Customer can perform any test they wish, usually based on their business processes. Final user sign off.

Approach

Mixture of scripted and unscripted testing.

Types of Acceptance Testing

Operational ( Acceptance ) Testing.

Acceptance of the system by the system administrators, including :


Testing of back up / restore Disaster recovery User Management Maintenance Tasks

Contract Acceptance testing :


Agreed contract definition stage Acceptance criteria defined and agreed May not have kept up to date with changes.

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 ?

Which Statement is correct ?


System testing may investigate both functional and non functional requirement of the system System testing only investigate both functional and optionally non functional requirement of the system System testing should investigate both functional and non functional requirement of the system System testing only investigate both functional and non functional requirement of the system

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.

Major Test Types :


Functional Non functional Structural Regression Testing

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.

Non functional testing includes


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

Which is not a level in V model testing ?


1.

2.
3. 4.

System Testing Integration Testing Regression Testing Unit Testing

Answer : 3. Simulators are used in which type of testing ?


1. 2. 3. 4.

Integration Testing System Testing Component Testing None of the above

Answer : 1

Which ONE of the following testing is TRUE.


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.

All the Best !!

You might also like