by ian jackman davit stepanyan. user executed untested code. the order in which statements were...

16
WHAT IS SOFTWARE TESTING? By Ian Jackman Davit Stepanyan

Upload: abigayle-wade

Post on 02-Jan-2016

212 views

Category:

Documents


0 download

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Questions?

Thank you for listening