Unit III Software Design & Testing Methods Prof. R.K. Samaiya 1.
Software testing methods
-
Upload
homa-pourmohammadi -
Category
Technology
-
view
2.805 -
download
0
description
Transcript of Software testing methods
![Page 1: Software testing methods](https://reader034.fdocuments.net/reader034/viewer/2022052310/5552c43bb4c905920f8b4ad1/html5/thumbnails/1.jpg)
Software Testing MethodsA quick review on existing approaches, their benefits and pitfalls.
![Page 2: Software testing methods](https://reader034.fdocuments.net/reader034/viewer/2022052310/5552c43bb4c905920f8b4ad1/html5/thumbnails/2.jpg)
Basic Testing MethodsBasically, testing methods can be classified in this fields:
Dynamic or Static The Box Approach
White Box Black Box Gray Box
Visual Testing
![Page 3: Software testing methods](https://reader034.fdocuments.net/reader034/viewer/2022052310/5552c43bb4c905920f8b4ad1/html5/thumbnails/3.jpg)
Testing Levels classificationsBased on which level of software you want to test, we can implement the testing methods in these levels:
Unit testing Integration testing System testing
![Page 4: Software testing methods](https://reader034.fdocuments.net/reader034/viewer/2022052310/5552c43bb4c905920f8b4ad1/html5/thumbnails/4.jpg)
Testing Goals and Aims Performance testing Usability testing Scalability testing Software Stress testing Recovery testing Security testing Conformance testing Smoke testing Compatibility testing System testing Alpha testing Beta testing
![Page 5: Software testing methods](https://reader034.fdocuments.net/reader034/viewer/2022052310/5552c43bb4c905920f8b4ad1/html5/thumbnails/5.jpg)
Basic Testing MethodsDynamic or Static The Box Approach
White Box Black Box Gray Box
Visual Testing
![Page 6: Software testing methods](https://reader034.fdocuments.net/reader034/viewer/2022052310/5552c43bb4c905920f8b4ad1/html5/thumbnails/6.jpg)
Static Testing It is generally not detailed testing, but
checks mainly for the sanity of the code, algorithm, or document.
primarily syntax checking of the code and/or manually reviewing the code or document to find errors.
Mainly implemented in black-box point of view
Bugs discovered at this stage are less expensive to fix them later.
![Page 7: Software testing methods](https://reader034.fdocuments.net/reader034/viewer/2022052310/5552c43bb4c905920f8b4ad1/html5/thumbnails/7.jpg)
Dynamic Testing Dynamic Testing involves working with
the software, giving input values and checking if the output is as expected.
Unit Tests, Integration Tests, System Tests and Acceptance Tests are few of the Dynamic Testing methodologies.
In the dynamic testing, testing begins before the software becomes completed.
![Page 8: Software testing methods](https://reader034.fdocuments.net/reader034/viewer/2022052310/5552c43bb4c905920f8b4ad1/html5/thumbnails/8.jpg)
Basic Testing Methods Dynamic or Static
The Box ApproachWhite BoxBlack BoxGray Box
Visual Testing
![Page 9: Software testing methods](https://reader034.fdocuments.net/reader034/viewer/2022052310/5552c43bb4c905920f8b4ad1/html5/thumbnails/9.jpg)
White box testing the internal of the software, the
methods and it’s components to specify it can meet the needs of the end user.
The following types of testing fall under the white box testing technique - Unit Testing, Integration Testing
![Page 10: Software testing methods](https://reader034.fdocuments.net/reader034/viewer/2022052310/5552c43bb4c905920f8b4ad1/html5/thumbnails/10.jpg)
Black-Box examining the functionality without
knowing any information about how it is made.
The tester is only aware of what the software is supposed to do, not how it does it.
The following types of testing fall under the Black box testing technique - System Testing, Acceptance Testing.
![Page 11: Software testing methods](https://reader034.fdocuments.net/reader034/viewer/2022052310/5552c43bb4c905920f8b4ad1/html5/thumbnails/11.jpg)
Gray Box Testing Involves having knowledge of internal
data structures and algorithms for purposes of designing tests
The tester is not required to have full access to the software's source code
![Page 12: Software testing methods](https://reader034.fdocuments.net/reader034/viewer/2022052310/5552c43bb4c905920f8b4ad1/html5/thumbnails/12.jpg)
Basic Testing Methods Dynamic or Static The Box Approach
White Box Black Box Gray Box
Visual Testing
![Page 13: Software testing methods](https://reader034.fdocuments.net/reader034/viewer/2022052310/5552c43bb4c905920f8b4ad1/html5/thumbnails/13.jpg)
Visual Testing Recording of the entire test process –
capturing everything that occurs on the test system in video format.
It is suitable to apply in agile projects, since agile methods require greater communication between testers and developers and collaboration within small teams.
![Page 14: Software testing methods](https://reader034.fdocuments.net/reader034/viewer/2022052310/5552c43bb4c905920f8b4ad1/html5/thumbnails/14.jpg)
Testing Levels classificationsUnit testing Integration testing System testing
![Page 15: Software testing methods](https://reader034.fdocuments.net/reader034/viewer/2022052310/5552c43bb4c905920f8b4ad1/html5/thumbnails/15.jpg)
Unit testing A unit test is a procedure used to verify
that a particular module of source code is working properly.
The test cases should be written for each peace of code, functions and methods
This type of testing is mostly done by the developers and not by end-users.
![Page 16: Software testing methods](https://reader034.fdocuments.net/reader034/viewer/2022052310/5552c43bb4c905920f8b4ad1/html5/thumbnails/16.jpg)
Testing Levels classifications Unit testing
Integration testing System testing
![Page 17: Software testing methods](https://reader034.fdocuments.net/reader034/viewer/2022052310/5552c43bb4c905920f8b4ad1/html5/thumbnails/17.jpg)
Integration testing Integration Testing involves with verifying
the interfaces of system components in software design.
Tries to show the mistakes in interactions and interfaces between system modules.
To approaches is suggested for Integration Testing* : Bottom-Up Top-Down* Refer to the documents for further information(Integration Testing.pdf)
![Page 18: Software testing methods](https://reader034.fdocuments.net/reader034/viewer/2022052310/5552c43bb4c905920f8b4ad1/html5/thumbnails/18.jpg)
Testing Levels classifications Unit testing Integration testing
System testing
![Page 19: Software testing methods](https://reader034.fdocuments.net/reader034/viewer/2022052310/5552c43bb4c905920f8b4ad1/html5/thumbnails/19.jpg)
System Testing Mainly testing the system to meet its
requirements. Elaborating that how the third-party
systems or any external system is interacting with the system.
![Page 20: Software testing methods](https://reader034.fdocuments.net/reader034/viewer/2022052310/5552c43bb4c905920f8b4ad1/html5/thumbnails/20.jpg)
Section 2 :Software Testing Practices In this section, we’ll take a look at how testing can be implemented in popular project management methodologies:
1. Waterfall development2. Extreme Programming3. Scrum4. Agile
![Page 21: Software testing methods](https://reader034.fdocuments.net/reader034/viewer/2022052310/5552c43bb4c905920f8b4ad1/html5/thumbnails/21.jpg)
Waterfall Development Positive Points
The software is ready, and every step of testing process will be completely mature and sensible.
The test reporting results are clear and enables the management to specify which decision should be taken.
![Page 22: Software testing methods](https://reader034.fdocuments.net/reader034/viewer/2022052310/5552c43bb4c905920f8b4ad1/html5/thumbnails/22.jpg)
Waterfall Development Negative Points
It assumes that the system is completely ready, So It happens pretty late.
Fixing the errors found can be so expensive. Running a script for one user without errors
doesn't prove anything. Running all scripts together make it very
difficult to tune and troubleshoot Running a single large test (or even a few of
them) gives minimal information about the system behavior.
![Page 23: Software testing methods](https://reader034.fdocuments.net/reader034/viewer/2022052310/5552c43bb4c905920f8b4ad1/html5/thumbnails/23.jpg)
Section 2 :Software Testing Practices 1. Waterfall development2. Extreme Programming3. Scrum4. Agile
![Page 24: Software testing methods](https://reader034.fdocuments.net/reader034/viewer/2022052310/5552c43bb4c905920f8b4ad1/html5/thumbnails/24.jpg)
Extreme Programming Rather than designing whole of the system
at the start of the project, the preliminary design work is reduced to solving the simple tasks that have already been identified.
The developers communicate directly with customers and other developers to understand the initial requirements.
During the XP, developers usually work in pairs to test the code.
![Page 25: Software testing methods](https://reader034.fdocuments.net/reader034/viewer/2022052310/5552c43bb4c905920f8b4ad1/html5/thumbnails/25.jpg)
Extreme Programming Benefits
The best method when the customer doesn’t have a clear understanding of the details of the new system.
When the technology used to develop the system is new compared to other technologies.
When the team size is not very large (usually 2 to 12 people).
![Page 26: Software testing methods](https://reader034.fdocuments.net/reader034/viewer/2022052310/5552c43bb4c905920f8b4ad1/html5/thumbnails/26.jpg)
Extreme Programming Pitfalls:
All code must have Unit tests. All code must pass all Unit tests before it
can be released. When a Bug is found tests are created
before the bug is addressed (a bug is not an error in logic, it is a test you forgot to
write)
![Page 27: Software testing methods](https://reader034.fdocuments.net/reader034/viewer/2022052310/5552c43bb4c905920f8b4ad1/html5/thumbnails/27.jpg)
Section 3 :Testing Methods, Benefits and Pitfalls
Static Testing White Box Testing Black Box Testing Unit Testing Integration Testing System Testing
![Page 28: Software testing methods](https://reader034.fdocuments.net/reader034/viewer/2022052310/5552c43bb4c905920f8b4ad1/html5/thumbnails/28.jpg)
Static Testing Benefits
Capture defects early, so saves rework cost Checklist-based approach Focuses on coverage Group perspective Highest probability of finding defects
Pitfalls: Time-consuming Cannot test data dependencies High skill levels on each field required
![Page 29: Software testing methods](https://reader034.fdocuments.net/reader034/viewer/2022052310/5552c43bb4c905920f8b4ad1/html5/thumbnails/29.jpg)
Testing methods:benefits and pitfalls Static TestingWhite Box Testing Black Box Testing Unit Testing Integration Testing System Testing
![Page 30: Software testing methods](https://reader034.fdocuments.net/reader034/viewer/2022052310/5552c43bb4c905920f8b4ad1/html5/thumbnails/30.jpg)
White Box TestingDynamic testing implements in white-box testing methods. Benefits
Forces test developer in implementation Approximates the partitioning done by execution
equivalence Reveals errors in "hidden" code As the knowledge of internal coding structure is
prerequisite, it becomes very easy to find out which type of input/data can help in testing the application effectively.
It helps in optimizing the code. It helps in removing the extra lines of code, which can
bring in hidden defects.
![Page 31: Software testing methods](https://reader034.fdocuments.net/reader034/viewer/2022052310/5552c43bb4c905920f8b4ad1/html5/thumbnails/31.jpg)
White Box Testing Pitfalls:
Expensive Miss cases omitted in the code A skilled tester is needed to carry out this type of
testing, which increases the cost. It is nearly impossible to look into every bit of code to
find out hidden errors Not looking at the code in a runtime environment. (The
OS, environment and third-party situations can result in finding bugs that it
cannot recognize ) Very few white-box tests can be done without
modifying the program
![Page 32: Software testing methods](https://reader034.fdocuments.net/reader034/viewer/2022052310/5552c43bb4c905920f8b4ad1/html5/thumbnails/32.jpg)
Testing methods:benefits and pitfalls Static Testing White Box TestingBlack Box Testing Unit Testing Integration Testing System Testing
![Page 33: Software testing methods](https://reader034.fdocuments.net/reader034/viewer/2022052310/5552c43bb4c905920f8b4ad1/html5/thumbnails/33.jpg)
Black Box Testing Benefits
Black box tests are reproducible. The environment the program is running is also tested. The invested effort can be used multiple times. More effective on larger units of code than glass box
testing Tester needs no knowledge of implementation,
including specific programming languages Tests are done from a user's point of view Will help to expose any ambiguities or inconsistencies
in the specifications Efficient when used on Larger systems
![Page 34: Software testing methods](https://reader034.fdocuments.net/reader034/viewer/2022052310/5552c43bb4c905920f8b4ad1/html5/thumbnails/34.jpg)
Black Box Testing Benefits
Tester and developer are independent of each other, test is balanced and unprejudiced
Tester can be non-technical. There is no need of having detailed functional
knowledge of system to the tester. Tests will be done from an end user's point of view.
Because end user should accept the system. (Look for acceptance testing)
Testing helps to identify the vagueness and contradiction in functional specifications.
Test cases can be designed as soon as the functional specifications are complete
![Page 35: Software testing methods](https://reader034.fdocuments.net/reader034/viewer/2022052310/5552c43bb4c905920f8b4ad1/html5/thumbnails/35.jpg)
Black Box Testing Pitfalls:
The results are often overestimated. Not all properties of a software product can be tested The reason for a failure is not found. Only a small number of possible inputs can actually be
tested, to test every possible input stream would take nearly forever
Without clear and concise specifications, test cases are hard to design
There may be unnecessary repetition of test inputs if the tester is not informed of test cases the programmer has already tried
May leave many program paths untested Cannot be directed toward specific segments of code which
may be very complex (and therefore more error prone)
![Page 36: Software testing methods](https://reader034.fdocuments.net/reader034/viewer/2022052310/5552c43bb4c905920f8b4ad1/html5/thumbnails/36.jpg)
Black Box Testing Pitfalls:
Most testing related research has been directed toward glass box testing
Test cases are tough and challenging to design, without having clear functional specifications
It is difficult to identify tricky inputs, if the test cases are not developed based on specifications.
It is difficult to identify all possible inputs in limited testing time. So writing test cases is slow and difficult
Chances of having unidentified paths during this testing
Chances of having repetition of tests that are already done by programmer.
![Page 37: Software testing methods](https://reader034.fdocuments.net/reader034/viewer/2022052310/5552c43bb4c905920f8b4ad1/html5/thumbnails/37.jpg)
Testing methods:benefits and pitfalls Static Testing White Box Testing Black Box TestingUnit Testing Integration Testing System Testing
![Page 38: Software testing methods](https://reader034.fdocuments.net/reader034/viewer/2022052310/5552c43bb4c905920f8b4ad1/html5/thumbnails/38.jpg)
Unit Testing Benefits:
Unit testing provides a strict, written contract that the piece of code must satisfy.
allows the programmer to re-factor code at a later date, and make sure the module still works correctly
Unit testing helps eliminate uncertainty in the pieces themselves and can be used in a bottom-up testing style approach.
Unit testing provides a sort of "living document".
![Page 39: Software testing methods](https://reader034.fdocuments.net/reader034/viewer/2022052310/5552c43bb4c905920f8b4ad1/html5/thumbnails/39.jpg)
Unit Testing Pitfalls:
Unit-testing will not catch every error in the program, will not catch integration errors
A unit test can only show the presence of errors; it cannot show the absence of errors.
![Page 40: Software testing methods](https://reader034.fdocuments.net/reader034/viewer/2022052310/5552c43bb4c905920f8b4ad1/html5/thumbnails/40.jpg)
Testing methods:benefits and pitfalls Static Testing White Box Testing Black Box Testing Unit TestingIntegration Testing System Testing
![Page 41: Software testing methods](https://reader034.fdocuments.net/reader034/viewer/2022052310/5552c43bb4c905920f8b4ad1/html5/thumbnails/41.jpg)
Integration Testing Bottom-Up Approach
Benefits Helpful if errors like deep down in the
dependency structure. Test conditions are easier to create. Observation results are reasonable easy. Reduced effort in creating stub modules.
![Page 42: Software testing methods](https://reader034.fdocuments.net/reader034/viewer/2022052310/5552c43bb4c905920f8b4ad1/html5/thumbnails/42.jpg)
Integration Testing Bottom-Up Approach
Pitfalls: Need to create stub modules.(It is easier
than creating stub code) The entire system is subjected to the small
amount of test.(because the top modules are included in the tests at the final stage).
![Page 43: Software testing methods](https://reader034.fdocuments.net/reader034/viewer/2022052310/5552c43bb4c905920f8b4ad1/html5/thumbnails/43.jpg)
Integration Testing Top-Down Approach
Benefits: If major defects are more likely at the top
level modules top-down is beneficial. Getting I/O functions early can ease test
writing. Early demonstration of the main
functionality can be helpful in highlighting requirements issue and the in boosting morale.
![Page 44: Software testing methods](https://reader034.fdocuments.net/reader034/viewer/2022052310/5552c43bb4c905920f8b4ad1/html5/thumbnails/44.jpg)
Integration Testing Top-Down Approach
Pitfalls: Too much effort on stubs. Stub complexity can introduce errors. Defining stubs can be difficult if some code is yet
to be written. It may be impossible accurately to reproduce
test conditions. Some observation maybe possible to make. Encourages the idea that test and development
can overlap. Encourages deferring full testing of modules
(until lower level modules can complete.)
![Page 45: Software testing methods](https://reader034.fdocuments.net/reader034/viewer/2022052310/5552c43bb4c905920f8b4ad1/html5/thumbnails/45.jpg)
Testing methods:benefits and pitfalls Static Testing White Box Testing Black Box Testing Unit Testing Integration Testing
System Testing
![Page 46: Software testing methods](https://reader034.fdocuments.net/reader034/viewer/2022052310/5552c43bb4c905920f8b4ad1/html5/thumbnails/46.jpg)
System TestingSystem testing mainly is a sort of Black Box testing, to get more detailed information see black box testing benefits and pitfalls.
![Page 47: Software testing methods](https://reader034.fdocuments.net/reader034/viewer/2022052310/5552c43bb4c905920f8b4ad1/html5/thumbnails/47.jpg)
My Opinion Using the Black Box Approach with
Integration testing method – Top-Down view.
Breaking the system down into sub systems at the first step of each process.
Specify one person to run the test parts. Make a simple documentation for each
part with expecting features point of view.