Software Testing and Quality Assurance 1. What is the objectives of Software Testing?

Preview:

Citation preview

Software Testing and Quality Assurance

1

What is the objectives of Software Testing?

Direct Objectives• To identify and reveal as many errors as

possible in the tested software• To bring the tested software, after correction

of the identified errors and retesting to an acceptable level of quality

• To perform the required tests efficiency and effectively, within budgetary and scheduling limitation

Indirect Objective• To compile a record of software errors for

use in error prevention (by corrective and preventive actions)

Stages of Testing• Module or unit testing.• Integration testing,• Function testing.• Performance testing.• Acceptance testing.• Installation testing.

Testing Strategies• We began by 'testing-in-the-small' and move

toward 'testing -in-the-large'• For conventional software

– The module (component) is our initial focus– Integration of module follows

• For OO software– OO class that include attributes and operations

and implies communication and collaboration

Static Testing

• Static testing refers to testing that takes place without Execution - examining and reviewing it.

Dynamic Testing • Dynamic testing is what you would normally

think of testing - executing and using the software.

Dynamic Testing

• Techniques used are determined by the type of testing that must be conducted– Functional– Structural

Functional Testing

• Structure of the program is not considered.• Test cases are decided based on the

requirements or specification of the program or module

• Hence it is often called as “Black Box Testing”.

Structural Testing

• Concerned with testing ,the implementation of the program.

• Focus on the internal structure of the program.

• The intent of structural testing is not to exercise all the different input or output condition but to exercise the different programming structures and data structures in the program.

Testing Levels

• Phases of software testing:– Unit Testing– Integration/Build Testing– Validation/Functional Testing– System Testing– Acceptance Testing

Software Test Classification• Software test may be classified

– according to the testing concept or – to the requirement classification

According to Testing Concept• What concept to test?

– Output• Output is used to archive an acceptable level of quality

– Structural of the software• Internal structural and calculations involved is included for

satisfactory testing

• Two Classes have been developed– Black box testing

• Identify bug according to software malfunctioning• Functionality testing

– White box testing• Examine internal calculation paths in order to identify bug• Structural testing

According to Requirement• The test id carried out to ensure full coverage of the

respective requirement– Operation

• Correctness, Reliability, Efficiency, Integrity, Usability

– Revision• Maintainability, flexibility, testability

– Transition• Portability, reusabilily, interoperability

• From the requirement we can define the test classification

• White box and black box can be used implemented respectively

Test Classification according to Requirement

Correctness 1.1 Output correctness tests1.2 Documentation tests1.3 Availability tests1.4 Data processing & calculations correctness tests 1.5 Software qualification tests

Reliability 2. Reliability testsEfficiency 3. Stress test (load tests and durability tests)Integrity 4. Software system security testsUsability 5.1 Training usability tests

5.2 Operational usability testsMaintainability 6. Maintainability tests Flexibility 7. Flexibility tests Testability 8. Testability testsPortability 9. Portability testsRe usability 10. Re usability testsInteroperability 11.1 Software interoperability tests

11.2 Equipment interoperability test

Test Classification according to Requirement

Correctness 1.1 Output correctness tests1.2 Documentation tests1.3 Availability tests1.4 Data processing & calculations correctness tests 1.5 Software qualification tests

Reliability 2. Reliability testsEfficiency 3. Stress test (load tests and durability tests)Integrity 4. Software system security testsUsability 5.1 Training usability tests

5.2 Operational usability testsMaintainability 6. Maintainability tests Flexibility 7. Flexibility tests Testability 8. Testability testsPortability 9. Portability testsRe usability 10. Re usability testsInteroperability 11.1 Software interoperability tests

11.2 Equipment interoperability test

IEEE definitions

• Black box testing• Testing that ignores the internal mechanism of the

system or component and focuses solely on the outputs in response to selected inputs and execution conditions

• Testing conducted to evaluate the compliance of a system or component with specified functional requirements

• White box testing• Testing that takes into account the internal

mechanism of a system or component

Unit Testing• Program reviews.• Formal verification.• Test each module individually.• Testing the program itself.

– black box and white box testing.

Black Box or White Box?• Maximum # of logic paths - determine if

white box testing is possible.• Nature of input data.• Amount of computation involved.• Complexity of algorithms.

Unit Testing

20

moduleto be

tested

test cases

results

softwareengineer

Unit Testing Details• Interfaces tested for proper information flow.• Local data are examined to ensure that integrity is

maintained.• Boundary conditions are tested.• Basis path testing should be used.• All error handling paths should be tested.• Drivers and/or stubs need to be developed to test

incomplete software.

Generating Test Data• Ideally want to test every permutation of

valid and invalid inputs• Equivalence partitioning it often required to

reduce to infinite test case sets– Every possible input belongs to one of the

equivalence classes.– No input belongs to more than one class.– Each point is representative of class.

Recommended