17
By Hiba. R. Skandarani Student at Benghazi University Spring of 2011-2012 Software Testability 1

Software testability slide share

Embed Size (px)

Citation preview

Page 1: Software testability slide share

1

By

Hiba. R. Skandarani

Student at Benghazi University

Spring of 2011-2012

Software Testability

Page 2: Software testability slide share

2

Introduction Definition of Software Testability. Why Testability Matters? Design for Testability! What Makes an SUT Testable? Testability-Explorer Tool

Testability Report. Conclusion. References.

Page 3: Software testability slide share

3

Definition of Software Testability

Testability: The ease with which a computer program can be tested.

ISO: Defines testability “Attributes of software that bear on the effort needed to validate the software product”.

IEEE: Defines testability as the degree to which a system or component facilitates the establishment of test criteria and performance of tests to determine whether those criteria have been met.

Page 4: Software testability slide share

4

Why Testability Matters? Economics

Sooner is better. Higher testability More better tests. Lower testability Fewer weaker tests.

Poor Testability Ineffective Testing Sever Penalties

Page 5: Software testability slide share

5

Design for Testability!

Page 6: Software testability slide share

6

What Makes an SUT Testable?

Page 7: Software testability slide share

7

What Makes an SUT Testable?

Controllability The better we can control it, the more the testing can be

optimized. Observability

What you see is what can be tested. Availability

To test it, we have to get at it. Simplicity

The simpler it is, the less there is to test.

Page 8: Software testability slide share

8

What Makes an SUT Testable?

Stability The fewer the changes, the fewer the disruptions to testing.

Information The more information we have, the smarter we will test.

Operability The better it works, the more efficiently it can be tested.

Page 9: Software testability slide share

9

Testability-Explorer Tool What is it? Testability-Explorer can be used:

1. As a learning tool.

2. As a part of your code analysis-toolset.

3. As a tool which can be added into continuous integration that can enforce testable code.

Currently the tool compute:1. Total Recursive Cyclomatic Complexity.

2. Global Mutable State.

Page 10: Software testability slide share

10

Testability Report

Page 11: Software testability slide share

11

Testability Report

Page 12: Software testability slide share

12

Testability Report

Page 13: Software testability slide share

13

Testability ReportClass: com.google.test.metric.method.op.stack.Transform

Page 14: Software testability slide share

14

Conclusion Testability is an important attribute for software under

test. Minimize the cost and effort needed to create test cases. helps to produce high quality product.

Page 15: Software testability slide share

15

References “A Measurement Framework for Object-Oriented

Software Testability” by(Samar Mouchawrab, Lionel C. Briand, Yvan Labiche) technical report Published on April 2005.

“Methods for Increasing Software Testability” by(Birgitta Lindstrom, Jonas Mellin, and Sten Andler).

“Improving Software Testability” by(George Yee) Jan 14, 2000.

“Analyzing Testability on Data Flow Designs” by(Yves Le Traon, Farid Ouabdesselam, andChantal Robach).

“Heuristics of Software Testability” by(James Bach).

Page 16: Software testability slide share

16

References “The Benefit of Software Testability” by(Sarah

Murphy) Last updated Wednesday, 14 October 2009 09:45.

“Testing Testability” by(Ipsita Chatterjee) www.stickyminds.com Last entered 22-5-2012 08:55.

“Testability: Factors & Strategy” by(Robert V. Binder) Google Test Automation Conference Hyderabad October 28, 2012.

“Reviewing Software Artifacts for Testability” by(Stefan Jungmayr).

http://code.google.com/p/testability-explorer/

Page 17: Software testability slide share

17

Thank You for Listening

Any Questions?