Software Testing 3
description
Transcript of Software Testing 3
![Page 1: Software Testing 3](https://reader036.fdocuments.us/reader036/viewer/2022062323/56816854550346895dde6532/html5/thumbnails/1.jpg)
Software Testing 3Damian Gordon
![Page 2: Software Testing 3](https://reader036.fdocuments.us/reader036/viewer/2022062323/56816854550346895dde6532/html5/thumbnails/2.jpg)
Test Levels
![Page 3: Software Testing 3](https://reader036.fdocuments.us/reader036/viewer/2022062323/56816854550346895dde6532/html5/thumbnails/3.jpg)
Component Testing Integration Testing System Testing Acceptance Testing
Test Levels
![Page 4: Software Testing 3](https://reader036.fdocuments.us/reader036/viewer/2022062323/56816854550346895dde6532/html5/thumbnails/4.jpg)
Component Testing
Test Levels
![Page 5: Software Testing 3](https://reader036.fdocuments.us/reader036/viewer/2022062323/56816854550346895dde6532/html5/thumbnails/5.jpg)
Component Testing
Also known as Unit Testing, Module Testing, and Program Testing
Test Levels
![Page 6: Software Testing 3](https://reader036.fdocuments.us/reader036/viewer/2022062323/56816854550346895dde6532/html5/thumbnails/6.jpg)
Component Testing
◦ Searching for defects in, and verifies the functioning of software that are separately testable.
◦ This testing can be done in isolation of other parts of the system, using stubs and drivers.
Test Levels
A
B
A
Stub
Driver
B
![Page 7: Software Testing 3](https://reader036.fdocuments.us/reader036/viewer/2022062323/56816854550346895dde6532/html5/thumbnails/7.jpg)
Component Testing
◦ May include the testing of the functionality and specific non-functional characteristics such as resource behaviour, e.g. Memory leaks
◦ Also Robustness testing or performance testing◦ Also structure testing, e.g. Decision coverage
Test Levels
![Page 8: Software Testing 3](https://reader036.fdocuments.us/reader036/viewer/2022062323/56816854550346895dde6532/html5/thumbnails/8.jpg)
Integration Testing
Test Levels
![Page 9: Software Testing 3](https://reader036.fdocuments.us/reader036/viewer/2022062323/56816854550346895dde6532/html5/thumbnails/9.jpg)
Integration Testing
◦ Testing interfaces between components, as well as interactions to different parts of the system, such as an operating system, and a file system.
◦ Component Integration Testing is testing interactions between components
◦ System Integration Testing is testing the interaction of the developed system with other systems
Test Levels
![Page 10: Software Testing 3](https://reader036.fdocuments.us/reader036/viewer/2022062323/56816854550346895dde6532/html5/thumbnails/10.jpg)
Integration Testing
◦ It’s generally better to integrate components to each other in groups, and then test that process, rather than a “big bang” integration when all discrete components are integrated simultaneously.
◦ With the “big bang” approach, it is very difficult to trace the cause of failures to one specific component.
◦ The opposite approach is integrating one component at a time, which can often be too time consuming.
Test Levels
![Page 11: Software Testing 3](https://reader036.fdocuments.us/reader036/viewer/2022062323/56816854550346895dde6532/html5/thumbnails/11.jpg)
Integration Testing
◦ This incremental approach to integration leads to a number of possible approaches:
Top-Down: Test starts at the top, e.g. From the GUI or main menu
Bottom-up: One component at a time Functional Incremental: Integration and testing on
the basis of functionality
Test Levels
![Page 12: Software Testing 3](https://reader036.fdocuments.us/reader036/viewer/2022062323/56816854550346895dde6532/html5/thumbnails/12.jpg)
System Testing
Test Levels
![Page 13: Software Testing 3](https://reader036.fdocuments.us/reader036/viewer/2022062323/56816854550346895dde6532/html5/thumbnails/13.jpg)
System Testing
Looking at the behaviour of the whole system as defined by the scope of a development project.
It may include tests based on risks and/or requirements specification, business processes, use cases, or other high-level descriptions of system behaviour, interactions with the operating system, and system resources.
Test Levels
![Page 14: Software Testing 3](https://reader036.fdocuments.us/reader036/viewer/2022062323/56816854550346895dde6532/html5/thumbnails/14.jpg)
System Testing
It is most often the final testing on behalf of the development to verify that the system delivered meets the specification.
Test Levels
![Page 15: Software Testing 3](https://reader036.fdocuments.us/reader036/viewer/2022062323/56816854550346895dde6532/html5/thumbnails/15.jpg)
System Testing
It should include investigation of both the functional and non-functional requirements of the system◦ Typical non-functional tests include performance
and reliability.◦ Typical functional tests include black-box
testing.
Test Levels
![Page 16: Software Testing 3](https://reader036.fdocuments.us/reader036/viewer/2022062323/56816854550346895dde6532/html5/thumbnails/16.jpg)
System Testing
It must be undertaken in a controlled test environment, with software versions, testware, and test data.
The test environment needs to match the live environment as much as possible.
Test Levels
![Page 17: Software Testing 3](https://reader036.fdocuments.us/reader036/viewer/2022062323/56816854550346895dde6532/html5/thumbnails/17.jpg)
Acceptance Testing
Test Levels
![Page 18: Software Testing 3](https://reader036.fdocuments.us/reader036/viewer/2022062323/56816854550346895dde6532/html5/thumbnails/18.jpg)
Acceptance Testing
This is testing done by the customers/users, potentially as well as other stakeholders.
The goal of this testing is to establish confidence in the system, focussing on issues such as fit-for-purpose, and usability.
Test Levels
![Page 19: Software Testing 3](https://reader036.fdocuments.us/reader036/viewer/2022062323/56816854550346895dde6532/html5/thumbnails/19.jpg)
Acceptance Testing
Two types of acceptance testing:◦ The user acceptance test focuses mainly on
functionality thereby validating the fitness-for-use of the system by the users.
◦ The operational acceptance test validates whether the system meets the requirements for operation.
Test Levels
![Page 20: Software Testing 3](https://reader036.fdocuments.us/reader036/viewer/2022062323/56816854550346895dde6532/html5/thumbnails/20.jpg)
Acceptance Testing
Other types of acceptance testing:◦ Contract acceptance tests performed against a
contract’s acceptance criteria for producing the software.
◦ Compliance acceptance tests are preformed against regulations such as governmental, legal or safety regulations.
Test Levels
![Page 21: Software Testing 3](https://reader036.fdocuments.us/reader036/viewer/2022062323/56816854550346895dde6532/html5/thumbnails/21.jpg)
Acceptance Testing
If the software is intended for the mass market, customer testing is impractical, but feedback is needed, so it’s often done in a two stage process◦ The first is Alpha Testing, this takes place at the
developers site, a cross-section of potential users are invited to use the system, and developers observe the users and note problems.
◦ The second is Beta Testing, sends the system out to a cross-section of the users, who install it, and use it under real-world conditions. The users send records of incidents with the system to the development organisation where the defects are repaired.
Test Levels
![Page 22: Software Testing 3](https://reader036.fdocuments.us/reader036/viewer/2022062323/56816854550346895dde6532/html5/thumbnails/22.jpg)
Test Types
![Page 23: Software Testing 3](https://reader036.fdocuments.us/reader036/viewer/2022062323/56816854550346895dde6532/html5/thumbnails/23.jpg)
Functional Testing Non-functional Testing Structural Testing Confirmation and Regression Testing
Test Types
![Page 24: Software Testing 3](https://reader036.fdocuments.us/reader036/viewer/2022062323/56816854550346895dde6532/html5/thumbnails/24.jpg)
Functional Testing
Test Types
![Page 25: Software Testing 3](https://reader036.fdocuments.us/reader036/viewer/2022062323/56816854550346895dde6532/html5/thumbnails/25.jpg)
Functional Testing
The function of a system is “what it does”. Typically described in requirements
document, or in use cases. Can be based on ISO 9124, but focusing on
suitability, interoperability, security, accuracy, and compliance.
Test Types
![Page 26: Software Testing 3](https://reader036.fdocuments.us/reader036/viewer/2022062323/56816854550346895dde6532/html5/thumbnails/26.jpg)
ISO is an international standard-setting body composed of representatives from various national standards organizations. Founded on February 23, 1947, the organization promulgates worldwide proprietary, industrial and commercial standards. It has its headquarters in Geneva, Switzerland.
International Organization for Standardization
![Page 27: Software Testing 3](https://reader036.fdocuments.us/reader036/viewer/2022062323/56816854550346895dde6532/html5/thumbnails/27.jpg)
Functional Testing
Two types, Requirements-based testing and Business-process-based testing◦ Requirements-based testing use the functional
specification to develop tests.◦ Business-process-based testing uses the
knowledge of business processes.
Test Types
![Page 28: Software Testing 3](https://reader036.fdocuments.us/reader036/viewer/2022062323/56816854550346895dde6532/html5/thumbnails/28.jpg)
Non-Functional Testing
Test Types
![Page 29: Software Testing 3](https://reader036.fdocuments.us/reader036/viewer/2022062323/56816854550346895dde6532/html5/thumbnails/29.jpg)
Non-Functional Testing
Looking at quality characteristics, looking at how well something is being done, or how fast.
Includes things like, performance testing, load testing, stress testing, usability testing, maintainability testing, reliability testing, and portability testing.
Test Types
![Page 30: Software Testing 3](https://reader036.fdocuments.us/reader036/viewer/2022062323/56816854550346895dde6532/html5/thumbnails/30.jpg)
Non-Functional Testing
Can be based on ISO 9124, but focusing on reliability, usability, efficiency, maintainability, and portability.
Test Types
![Page 31: Software Testing 3](https://reader036.fdocuments.us/reader036/viewer/2022062323/56816854550346895dde6532/html5/thumbnails/31.jpg)
Structural Testing
Test Types
![Page 32: Software Testing 3](https://reader036.fdocuments.us/reader036/viewer/2022062323/56816854550346895dde6532/html5/thumbnails/32.jpg)
Structural Testing
Looking at the system architecture or structure of the system or component.
Often used as a way of measuring the thoroughness of the testing through coverage of a set of structural elements of coverage items.
Test Types
![Page 33: Software Testing 3](https://reader036.fdocuments.us/reader036/viewer/2022062323/56816854550346895dde6532/html5/thumbnails/33.jpg)
START
END
Does A/2 give a
remainder?
No
Read in A
YesPrint “It’s Odd”
Print “It’s Even”
Check if a number is
odd or even
![Page 34: Software Testing 3](https://reader036.fdocuments.us/reader036/viewer/2022062323/56816854550346895dde6532/html5/thumbnails/34.jpg)
START
END
A>B? No
Read in A and B
YesPrint A Print B
Print out thebiggest of two
numbers
![Page 35: Software Testing 3](https://reader036.fdocuments.us/reader036/viewer/2022062323/56816854550346895dde6532/html5/thumbnails/35.jpg)
START
END
A>B?
No
Read in A, B and C
YesA>C? B>C?
Print A Print C Print B
Yes Yes
No
No
Print out thebiggest of three
numbers
![Page 36: Software Testing 3](https://reader036.fdocuments.us/reader036/viewer/2022062323/56816854550346895dde6532/html5/thumbnails/36.jpg)
START
END
Is A==6?
No
A = 1
Yes
Print A
A = A + 1
Print out thenumbers 1 to 5
![Page 37: Software Testing 3](https://reader036.fdocuments.us/reader036/viewer/2022062323/56816854550346895dde6532/html5/thumbnails/37.jpg)
Confirmation and Regression Testing
Test Types
![Page 38: Software Testing 3](https://reader036.fdocuments.us/reader036/viewer/2022062323/56816854550346895dde6532/html5/thumbnails/38.jpg)
Confirmation and Regression Testing
Testing changes to software, two general types:◦ Confirmation Testing◦ Regression Testing
Test Types
![Page 39: Software Testing 3](https://reader036.fdocuments.us/reader036/viewer/2022062323/56816854550346895dde6532/html5/thumbnails/39.jpg)
Confirmation and Regression Testing
Confirmation Testing When a test fails and we determine the
cause of the failure, once that defect is fixed, we need to rerun the test again to confirm that the error has been corrected.
It is important to rerun the test in the exact same way – same input, same data, and same environment.
Test Types
![Page 40: Software Testing 3](https://reader036.fdocuments.us/reader036/viewer/2022062323/56816854550346895dde6532/html5/thumbnails/40.jpg)
Confirmation and Regression Testing
Regression Testing Testing to check if there hasn’t been any
“unexpected side-effects” as a result of some change.
Test Types