software testing

28
1 / 28 Software Testing Achievements - Dreams Ecaterina Valică http://students.info.uaic.ro/~evalica/

Upload: ecaterina-moraru-valica

Post on 14-May-2015

17.491 views

Category:

Technology


0 download

DESCRIPTION

Software Testing achievements and dreams

TRANSCRIPT

Page 1: Software Testing

1 / 28

Software Testing Achievements - Dreams

Ecaterina Valică

http://students.info.uaic.ro/~evalica/

Page 2: Software Testing

2 / 28

"Program testing can be used to show the presence of bugs, but never to show their absence!"

Edsger Dijkstra

Page 3: Software Testing

3 / 28

Agenda

• About Software Testing

• Roadmap

• Achievements

• Dreams

• Challenges

Page 4: Software Testing

4 / 28

Software Testing

• Process used to help identify the correctness, completeness,

security and quality

of developed computer software;

• Observing the execution of a software system to validate whether it

behaves as intended and

identify potential malfunctions;

Page 5: Software Testing

5 / 28

Software Testing

• Essential activity in software engineering;

• Used in industry for quality assurance;

• Estimated can consume fifty percent, or even more, of the development costs;

Page 6: Software Testing

6 / 28

Software Testing

• Different activities:– the testing of a small piece of code by the

developer (unit testing);– the customer validation of a large information

system (acceptance testing);– the monitoring at run-time of a network-centric

service-oriented application;– etc.

Page 7: Software Testing

7 / 28

Software Testing

• Different objectives:– exposing deviations from user’s requirements;– assessing the conformance to a standard

specification;– evaluating robustness to stressful load

conditions or to malicious inputs;– measuring given attributes, such as

performance or usability;– or estimating the operational reliability;– etc.

Page 8: Software Testing

8 / 28

Software Testing

• Testing consists of observing a sample of executions, and giving a verdict over them;

• Specific aspects that can characterize the sample of observations:

Why?How?How much?

What?Where?When?

Page 9: Software Testing

9 / 28

Software Testing

• Why? (test objective)– why is it that we make the observations?

• looking for faults? • decide if the product can be released? • evaluate the usability of the User Interface?

• How? (test selection)– which sample do we observe, how do we

choose it?• selection done ad hoc, random, or in systematic

way by applying algorithmic or statistical technique

Page 10: Software Testing

10 / 28

Software Testing

• How Much? (test adequacy)

– how big of a sample?• “classical” approaches: coverage analysis or

reliability;

• What? (levels of testing) – what is it that we execute?

• execution as a whole;• focusing only on a part of it (unit test, component /

subsystem test, integration test);

Page 11: Software Testing

11 / 28

Software Testing

• Where? – where do we perform the observation?

• done in house, in a simulated environment or in the target final context; (embedded systems)

• When?– when is it in the product lifecycle that we

perform the observations?• the earliest, the most convenient, since the cost of

fault removal increases as the lifecycle proceeds;

Page 12: Software Testing

12 / 28

Roadmap

• A roadmap provides directions to reach a desired destination starting from the “you are here”

• Contains:– the most notable achievements from past research– the identified destinations are a set of four ultimate

and unachievable goals called dreams– the challenges faced by current and future testing

research

Page 13: Software Testing

13 / 28

Achievements

• Testing was conceived like an art, and was exemplified as the “destructive” process of executing a program with the intent of finding errors, opposed to design which constituted the “constructive” party;

• Testing process– techniques and tools which can be incorporates

within the development process;– several test process models have been proposed

for industrial adoption > “V model”;

Page 14: Software Testing

14 / 28

Achievements

• Test criteria– the test criteria used for systematic identification of

test cases;– distinguished between white-box (a.k.a. structural)

and black-box (a.k.a. functional), depending on whether or not the source code is exploited in driving the testing;

– a more refined classification can be laid according to the source from which the test cases are derived;

– the real challenge becomes the capability to make a justified choice, or rather to understand how they can be most efficiently combined;

Page 15: Software Testing

15 / 28

Achievements

• Comparison among test criteria– evaluation of the various test criteria, and

especially of the factors which make one technique better than another at fault finding;

– permitted to establish a hierarchy between comparable criteria, and to understand the factors influencing the probability of finding faults, focusing more in particular on comparing partition (i.e., systematic) against random testing;

Page 16: Software Testing

16 / 28

Achievements

• Object-oriented testing– everything in software testing in also applied

to OO code;– OO development introduced new risks and

difficulties:• encapsulation can help hide bugs and makes test

harder; • inheritance requires extensive retesting of inherited

code; • polymorphism and dynamic binding call for new

coverage models;

Page 17: Software Testing

17 / 28

Achievements

• Component-based testing– Challenges:

• components must be generic enough for being deployed in different platforms and contexts, therefore the component user needs to retest the component in the assembled system where it is deployed;

• crucial problem: the lack of information for analysis and testing of externally developed components;

Page 18: Software Testing

18 / 28

Achievements

• Protocol testing– verifying the conformance of protocol

implementations against their specifications;

• Reliability testing– tries to eliminate those failures which would

manifest themselves more frequently: intuitively the tester mimics how the users will employ the system;

Page 19: Software Testing

19 / 28

Dreams

1. Universal test theory;

2. Test-based modeling;

3. 100% automatic testing;

4. Efficacy-maximized test engineering;

• the theory is at the basis of the adopted models, • models are needed for automation, • automation is instrumental to cost-effective test

engineering

Page 20: Software Testing

20 / 28

Dreams

• Universal test theory– dream: to build a sound comprehensive theory

which is useful to backup and nourish test technology;

– framework to which testers can refer to understand the relative strengths and limitations of existing test techniques, and to be guided in selecting the most adequate one;

– test machinery which ties a statement of the goal for testing with the most effective technique;

Page 21: Software Testing

21 / 28

Dreams

• Test-based modeling– idea is to use models defined in software

construction to drive the testing process;– ideal situation:

• instead of taking a model and see how we can best exploit it for testing,

• let us consider how we should build the model so that the software can be effectively tested;

– “model-based testing” > “test-based modeling”

Page 22: Software Testing

22 / 28

Dreams

• 100% automatic testing [1]– automation is one of the ways to keep quality

analysis and testing in line with the growing quantity and complexity of software (development tools generating code with less effort);

– can be made:• by developing advanced techniques for generating

the test inputs;• by finding innovative support procedures to

automate the testing process;

Page 23: Software Testing

23 / 28

Dreams• 100% automatic testing [2]

– dream: a powerful integrated test environment which by itself, as a piece of software is completed and deployed, can automatically take care of possibly instrumenting it and generating or recovering the needed scaffolding code (drivers, stubs, simulators), generating the most suitable test cases, executing them and finally issuing a test report.

– promising steps have been made for unit testing;

Page 24: Software Testing

24 / 28

Dreams

• Efficacy-maximized test engineering– dream: cost-effectively engineering “practical

testing methods, tools and processes for development of high quality software”;

– theoretical, technical and organization issues should be reconciled into a viable test process yielding the maximum efficiency and effectiveness;

– main obstacle is the growing complexity of modern systems;

Page 25: Software Testing

25 / 28

Challenges

• Challenges arise, such as:– how to conciliate model-based derivation of

test cases with modern dynamically evolving systems;

– how to effectively select and use runtime data collected from real usage after deployment;

– how to qualify and evaluate the effectiveness of testing criteria;

– how to minimize the amount of retesting after the software is modified;

– etc.

Page 26: Software Testing

26 / 28

Page 27: Software Testing

27 / 28

Bibliography

• Software Testing Research: Achievements, Challenges, Dreams. Antonia Bertolino

Page 28: Software Testing

28 / 28

Thank you!

Questions?