1 / 14

An Open Source Simulation Model of Software Testing

An Open Source Simulation Model of Software Testing. Shmuel Ur Elad Yom-Tov Paul Wernick http://qp.research.ibm.com/concurrency_testing. What Are the Development Tasks?. Writing Code Creating lines of code, creating bugs Testing

plato
Download Presentation

An Open Source Simulation Model of Software Testing

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. An Open Source SimulationModel of Software Testing Shmuel Ur Elad Yom-Tov Paul Wernick http://qp.research.ibm.com/concurrency_testing

  2. What Are the Development Tasks? • Writing Code • Creating lines of code, creating bugs • Testing • Creating tests, running tests • Reviews • Searching the code for bugs • Debugging • Looking for the bug root cause • Fixing • Replacing some code that has a bug • Putting new bugs in? • We will ignore specification, design, maintenance

  3. Simulation Program Development • A program of certain size with certain quality need to be created • Size is measured in LOC • Quality is measured in # of bugs • A developer may spend time doing of the development tasks, The task may result in artifacts being created • Writing code create new line objects, one for each line, which may contain bugs • Writing tests, results in tests each of which can test a subset of the line objects. Automated tests are more expensive. • Running a test takes some time (depends if automated) and may find bugs in specific line objects. Running a test a second time is not as effective • …

  4. Default Simulation Values • # Code lines per hour = 30 • Bugs per line = 0.01 • Debugging time Correction = 1 + (LOC since bug)/2000 • Hours to fix bug = base 2, multiply by 2 if a month passed, multiply by 3 if two months passed • Probability discovered by inspection = 0.5 : Laitenberger and DeBaud suggest that 70% is achievable • # Lines reviewed per hour = 200 • Cost of testing = 1.14 hour per one hundred lines to do unit testing • Other measures exist, cost of creating tests, cost of running tests • Probability of finding bugs in test = .5 • Probability of finding bug when re-running the test = 0

  5. (a) Code building cycle : iterative (b) Code building cycle: Test First Write code Write Test (c) System test Test / Inspect Write code Test /inspect Debug Run Test Check Size Check Size Check Quality Debug Debug Done Done Done Simulation Cycle

  6. Sample Simulation

  7. Sample Simulation

  8. Overnight Regression – Chaotic behavior

  9. Overall Productivity when Code Creation Rate Increase

  10. What do Developers Really Do?

  11. Impact of Length of Iteration in Iterative Software Development

  12. Is Pair Programming a Good Idea? Depends!!

  13. Automating Testing May be Overrated

  14. Future Direction • Encapsulation • Reduce cost of debugging, review … • Code complexity • Planning tool • Quality requirement impact on methodology • Not one size fit all

More Related