by ian jackman davit stepanyan. user executed untested code. the order in which statements were...
TRANSCRIPT
![Page 1: By Ian Jackman Davit Stepanyan. User executed untested code. The order in which statements were meant to be executed are different than the order](https://reader035.vdocuments.us/reader035/viewer/2022072015/56649edb5503460f94beb5e7/html5/thumbnails/1.jpg)
WHAT IS SOFTWARE TESTING?
By Ian JackmanDavit Stepanyan
![Page 2: By Ian Jackman Davit Stepanyan. User executed untested code. The order in which statements were meant to be executed are different than the order](https://reader035.vdocuments.us/reader035/viewer/2022072015/56649edb5503460f94beb5e7/html5/thumbnails/2.jpg)
Why is it so hard?
User executed untested code. The order in which statements were
meant to be executed are different than the order used during testing.
The user applied a combination of untested input values.
The user’s operating environment was never tested.
![Page 3: By Ian Jackman Davit Stepanyan. User executed untested code. The order in which statements were meant to be executed are different than the order](https://reader035.vdocuments.us/reader035/viewer/2022072015/56649edb5503460f94beb5e7/html5/thumbnails/3.jpg)
Testers and the Testing Process
Software testers must consider the software and the function it computes, the inputs and how they can be combined, in the environment in which the software will operate.
However, this is easier said then done. Even the most experienced coder will have problems or the simplest software will have issues.
![Page 4: By Ian Jackman Davit Stepanyan. User executed untested code. The order in which statements were meant to be executed are different than the order](https://reader035.vdocuments.us/reader035/viewer/2022072015/56649edb5503460f94beb5e7/html5/thumbnails/4.jpg)
How we can approach testing
Modeling the software’s environment Selecting test scenarios Running and evaluating test scenarios Measuring testing progress
![Page 5: By Ian Jackman Davit Stepanyan. User executed untested code. The order in which statements were meant to be executed are different than the order](https://reader035.vdocuments.us/reader035/viewer/2022072015/56649edb5503460f94beb5e7/html5/thumbnails/5.jpg)
Modeling the Software’s Environment
Identify and simulate the interfaces that a software system uses and enumerate the inputs that can cross each interface.The four common interfaces in a software environment. Human Interfaces Software Interfaces File System Interfaces Communication Interfaces
![Page 6: By Ian Jackman Davit Stepanyan. User executed untested code. The order in which statements were meant to be executed are different than the order](https://reader035.vdocuments.us/reader035/viewer/2022072015/56649edb5503460f94beb5e7/html5/thumbnails/6.jpg)
Modeling the software’s environment
User interaction that falls outside the scope of software testing.
Considerations: How do we select values for variable
input? How do we sequence inputs?
![Page 7: By Ian Jackman Davit Stepanyan. User executed untested code. The order in which statements were meant to be executed are different than the order](https://reader035.vdocuments.us/reader035/viewer/2022072015/56649edb5503460f94beb5e7/html5/thumbnails/7.jpg)
Boundary Value Partitioning Technique
Most often used for selecting single values for variables at or around boundaries.Ex: Test minimum, maximum, and zero values.
What about choosing values for multiple variables processed simultaneously??Consider cross product value combinations.
![Page 8: By Ian Jackman Davit Stepanyan. User executed untested code. The order in which statements were meant to be executed are different than the order](https://reader035.vdocuments.us/reader035/viewer/2022072015/56649edb5503460f94beb5e7/html5/thumbnails/8.jpg)
How do we sequence inputs?
Treat each physical input and abstract event as symbols in a alphabet.
Create a model of that language.Most common models are regular expressions and grammars. Least common are stochastic processes and genetic algorithms.
![Page 9: By Ian Jackman Davit Stepanyan. User executed untested code. The order in which statements were meant to be executed are different than the order](https://reader035.vdocuments.us/reader035/viewer/2022072015/56649edb5503460f94beb5e7/html5/thumbnails/9.jpg)
Text Editor Example
Text editor example
We can represent legal uses of the file
selection dialog in, for example, a text editor
with the regular expression:Filemenu.Open filename* (ClickOpen | ClickCancel)
![Page 10: By Ian Jackman Davit Stepanyan. User executed untested code. The order in which statements were meant to be executed are different than the order](https://reader035.vdocuments.us/reader035/viewer/2022072015/56649edb5503460f94beb5e7/html5/thumbnails/10.jpg)
Test Scenarios
Typical use scenarios Tests for each source statement Tests for each branching structure Tests for each data structure Fault seeding Discrimination criterion/random inputs
![Page 11: By Ian Jackman Davit Stepanyan. User executed untested code. The order in which statements were meant to be executed are different than the order](https://reader035.vdocuments.us/reader035/viewer/2022072015/56649edb5503460f94beb5e7/html5/thumbnails/11.jpg)
Evaluating Scenarios
Manual testing is expansive Automated testing Simulating environment Expected output is correct Formalism Embedded test code
![Page 12: By Ian Jackman Davit Stepanyan. User executed untested code. The order in which statements were meant to be executed are different than the order](https://reader035.vdocuments.us/reader035/viewer/2022072015/56649edb5503460f94beb5e7/html5/thumbnails/12.jpg)
Regression Testing
Fix only the problem Fail to fix the problem Fix the problem OR break something else Fail to fix the problem AND break something
else Takes time away from testing new code
![Page 13: By Ian Jackman Davit Stepanyan. User executed untested code. The order in which statements were meant to be executed are different than the order](https://reader035.vdocuments.us/reader035/viewer/2022072015/56649edb5503460f94beb5e7/html5/thumbnails/13.jpg)
Measuring Testing Progress
Number of inputs Percentage of tested code Number of starting the system Number of terminating the system
Is finding many bugs good news???
![Page 14: By Ian Jackman Davit Stepanyan. User executed untested code. The order in which statements were meant to be executed are different than the order](https://reader035.vdocuments.us/reader035/viewer/2022072015/56649edb5503460f94beb5e7/html5/thumbnails/14.jpg)
Major Issues
Testability Low testability = more tests Low testability = more time Low testability = more testing money
Reliability Time before the system fails Cost of maintenance
Smartest people for testing Appropriate tools and training Listen when tester talks
![Page 15: By Ian Jackman Davit Stepanyan. User executed untested code. The order in which statements were meant to be executed are different than the order](https://reader035.vdocuments.us/reader035/viewer/2022072015/56649edb5503460f94beb5e7/html5/thumbnails/15.jpg)
Conclusion
Test scenarios Evaluate scenarios Regression testing Test measuring Issues
![Page 16: By Ian Jackman Davit Stepanyan. User executed untested code. The order in which statements were meant to be executed are different than the order](https://reader035.vdocuments.us/reader035/viewer/2022072015/56649edb5503460f94beb5e7/html5/thumbnails/16.jpg)
Questions?
Thank you for listening