Software Testing


Published on

Software Testing achievements and dreams

Published in: Technology
No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Software Testing

  1. 1. Software Testing Achievements - Dreams Ecaterina Valic ă
  2. 2. <ul><li>&quot; Program testing can be used to show the presence of bugs, but never to show their absence! &quot; </li></ul>Edsger Dijkstra
  3. 3. Agenda <ul><li>About Software Testing </li></ul><ul><li>Roadmap </li></ul><ul><li>Achievements </li></ul><ul><li>Dreams </li></ul><ul><li>Challenges </li></ul>
  4. 4. Software Testing <ul><li>Process used to help identify the correctness , completeness , </li></ul><ul><li>security and quality </li></ul><ul><li>of developed computer software; </li></ul><ul><li>Observing the execution of a software system to validate whether it </li></ul><ul><li>behaves as intended and </li></ul><ul><li>identify potential malfunctions; </li></ul>
  5. 5. Software Testing <ul><li>Essential activity in software engineering; </li></ul><ul><li>Used in industry for quality assurance; </li></ul><ul><li>Estimated can consume fifty percent, or even more, of the development costs; </li></ul>
  6. 6. Software Testing <ul><li>Different activities : </li></ul><ul><ul><li>the testing of a small piece of code by the developer (unit testing); </li></ul></ul><ul><ul><li>the customer validation of a large information system (acceptance testing); </li></ul></ul><ul><ul><li>the monitoring at run-time of a network-centric service-oriented application; </li></ul></ul><ul><ul><li>etc. </li></ul></ul>
  7. 7. Software Testing <ul><li>Different objectives : </li></ul><ul><ul><li>exposing deviations from user’s requirements; </li></ul></ul><ul><ul><li>assessing the conformance to a standard specification; </li></ul></ul><ul><ul><li>evaluating robustness to stressful load conditions or to malicious inputs; </li></ul></ul><ul><ul><li>measuring given attributes, such as performance or usability; </li></ul></ul><ul><ul><li>or estimating the operational reliability; </li></ul></ul><ul><ul><li>etc. </li></ul></ul>
  8. 8. Software Testing <ul><li>Testing consists of observing a sample of executions , and giving a verdict over them; </li></ul><ul><li>Specific aspects that can characterize the sample of observations: </li></ul><ul><ul><li>Why? </li></ul></ul><ul><ul><li>How? </li></ul></ul><ul><ul><li>How much? </li></ul></ul><ul><ul><li>What? </li></ul></ul><ul><ul><li>Where? </li></ul></ul><ul><ul><li>When? </li></ul></ul>
  9. 9. Software Testing <ul><li>Why? ( test objective) </li></ul><ul><ul><li>why is it that we make the observations? </li></ul></ul><ul><ul><ul><li>looking for faults? </li></ul></ul></ul><ul><ul><ul><li>decide if the product can be released? </li></ul></ul></ul><ul><ul><ul><li>evaluate the usability of the User Interface? </li></ul></ul></ul><ul><li>How? ( test selection ) </li></ul><ul><ul><li>which sample do we observe, how do we choose it? </li></ul></ul><ul><ul><ul><li>selection done ad hoc, random, or in systematic way by applying algorithmic or statistical technique </li></ul></ul></ul>
  10. 10. Software Testing <ul><li>How Much? ( test adequacy) </li></ul><ul><ul><li>how big of a sample? </li></ul></ul><ul><ul><ul><li>“ classical” approaches: coverage analysis or reliability; </li></ul></ul></ul><ul><li>What? ( levels of testing ) </li></ul><ul><ul><li>what is it that we execute? </li></ul></ul><ul><ul><ul><li>execution as a whole; </li></ul></ul></ul><ul><ul><ul><li>focusing only on a part of it (unit test, component / subsystem test, integration test); </li></ul></ul></ul>
  11. 11. Software Testing <ul><li>Where? </li></ul><ul><ul><li>where do we perform the observation? </li></ul></ul><ul><ul><ul><li>done in house, in a simulated environment or in the target final context; (embedded systems) </li></ul></ul></ul><ul><li>When? </li></ul><ul><ul><li>when is it in the product lifecycle that we perform the observations? </li></ul></ul><ul><ul><ul><li>the earliest, the most convenient, since the cost of fault removal increases as the lifecycle proceeds; </li></ul></ul></ul>
  12. 12. Roadmap <ul><li>A roadmap provides directions to reach a desired destination starting from the “you are here” </li></ul><ul><li>Contains: </li></ul><ul><ul><li>the most notable achievements from past research </li></ul></ul><ul><ul><li>the identified destinations are a set of four ultimate and unachievable goals called dreams </li></ul></ul><ul><ul><li>the challenges faced by current and future testing research </li></ul></ul>
  13. 13. Achievements <ul><li>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; </li></ul><ul><li>Testing process </li></ul><ul><ul><li>techniques and tools which can be incorporates within the development process; </li></ul></ul><ul><ul><li>several test process models have been proposed for industrial adoption > “V model”; </li></ul></ul>
  14. 14. Achievements <ul><li>Test criteria </li></ul><ul><ul><li>the test criteria used for systematic identification of test cases; </li></ul></ul><ul><ul><li>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; </li></ul></ul><ul><ul><li>a more refined classification can be laid according to the source from which the test cases are derived; </li></ul></ul><ul><ul><li>the real challenge becomes the capability to make a justified choice, or rather to understand how they can be most efficiently combined; </li></ul></ul>
  15. 15. Achievements <ul><li>Comparison among test criteria </li></ul><ul><ul><li>evaluation of the various test criteria, and especially of the factors which make one technique better than another at fault finding; </li></ul></ul><ul><ul><li>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; </li></ul></ul>
  16. 16. Achievements <ul><li>Object-oriented testing </li></ul><ul><ul><li>everything in software testing in also applied to OO code; </li></ul></ul><ul><ul><li>OO development introduced new risks and difficulties: </li></ul></ul><ul><ul><ul><li>encapsulation can help hide bugs and makes test harder; </li></ul></ul></ul><ul><ul><ul><li>inheritance requires extensive retesting of inherited code; </li></ul></ul></ul><ul><ul><ul><li>polymorphism and dynamic binding call for new coverage models; </li></ul></ul></ul>
  17. 17. Achievements <ul><li>Component-based testing </li></ul><ul><ul><li>Challenges: </li></ul></ul><ul><ul><ul><li>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; </li></ul></ul></ul><ul><ul><ul><li>crucial problem: the lack of information for analysis and testing of externally developed components; </li></ul></ul></ul>
  18. 18. Achievements <ul><li>Protocol testing </li></ul><ul><ul><li>verifying the conformance of protocol implementations against their specifications; </li></ul></ul><ul><li>Reliability testing </li></ul><ul><ul><li>tries to eliminate those failures which would manifest themselves more frequently: intuitively the tester mimics how the users will employ the system; </li></ul></ul>
  19. 19. Dreams <ul><li>Universal test theory; </li></ul><ul><li>Test-based modeling; </li></ul><ul><li>100% automatic testing; </li></ul><ul><li>Efficacy-maximized test engineering; </li></ul><ul><li>the theory is at the basis of the adopted models, </li></ul><ul><li>models are needed for automation, </li></ul><ul><li>automation is instrumental to cost-effective test engineering </li></ul>
  20. 20. Dreams <ul><li>Universal test theory </li></ul><ul><ul><li>dream: to build a sound comprehensive theory which is useful to backup and nourish test technology; </li></ul></ul><ul><ul><li>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; </li></ul></ul><ul><ul><li>test machinery which ties a statement of the goal for testing with the most effective technique; </li></ul></ul>
  21. 21. Dreams <ul><li>Test-based modeling </li></ul><ul><ul><li>idea is to use models defined in software construction to drive the testing process; </li></ul></ul><ul><ul><li>ideal situation: </li></ul></ul><ul><ul><ul><li>instead of taking a model and see how we can best exploit it for testing, </li></ul></ul></ul><ul><ul><ul><li>let us consider how we should build the model so that the software can be effectively tested; </li></ul></ul></ul><ul><ul><li>“ model-based testing” > “test-based modeling” </li></ul></ul>
  22. 22. Dreams <ul><li>100% automatic testing [1] </li></ul><ul><ul><li>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); </li></ul></ul><ul><ul><li>can be made: </li></ul></ul><ul><ul><ul><li>by developing advanced techniques for generating the test inputs; </li></ul></ul></ul><ul><ul><ul><li>by finding innovative support procedures to automate the testing process; </li></ul></ul></ul>
  23. 23. Dreams <ul><li>100% automatic testing [2] </li></ul><ul><ul><li>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. </li></ul></ul><ul><ul><li>promising steps have been made for unit testing; </li></ul></ul>
  24. 24. Dreams <ul><li>Efficacy-maximized test engineering </li></ul><ul><ul><li>dream: cost-effectively engineering “practical testing methods, tools and processes for development of high quality software”; </li></ul></ul><ul><ul><li>theoretical, technical and organization issues should be reconciled into a viable test process yielding the maximum efficiency and effectiveness; </li></ul></ul><ul><ul><li>main obstacle is the growing complexity of modern systems; </li></ul></ul>
  25. 25. Challenges <ul><li>Challenges arise, such as: </li></ul><ul><ul><li>how to conciliate model-based derivation of test cases with modern dynamically evolving systems; </li></ul></ul><ul><ul><li>how to effectively select and use runtime data collected from real usage after deployment; </li></ul></ul><ul><ul><li>how to qualify and evaluate the effectiveness of testing criteria; </li></ul></ul><ul><ul><li>how to minimize the amount of retesting after the software is modified; </li></ul></ul><ul><ul><li>etc. </li></ul></ul>
  26. 27. Bibliography <ul><li>Software Testing Research : Achievements, Challenges, Dreams. Antonia Bertolino </li></ul>
  27. 28. Thank you ! <ul><li>Questions? </li></ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.