csc 509 lecture notes week 5 the promise of spec based
play

CSC 509 Lecture Notes Week 5 The Promise of Spec-Based Test - PowerPoint PPT Presentation

CSC509-S15-L5 Slide 1 CSC 509 Lecture Notes Week 5 The Promise of Spec-Based Test Generation -- a brief oveview of of a new direction -- CSC509-S15-L5 Slide 2 I. Again, common refrains about manual test gen: A. Its boring and tedious. B.


  1. CSC509-S15-L5 Slide 1 CSC 509 Lecture Notes Week 5 The Promise of Spec-Based Test Generation -- a brief oveview of of a new direction --

  2. CSC509-S15-L5 Slide 2 I. Again, common refrains about manual test gen: A. It’s boring and tedious. B. It’s error prone. C. May leave important things untested. D. There’s got to be a better way.

  3. CSC509-S15-L5 Slide 3 II. A Possible Better Way A. The slick pitch -- "Suppose all you have to do is write a couple simple boolean expressions per method, and a decent set of unit tests will be automatically generated. Would you use a tool that does this?"

  4. CSC509-S15-L5 Slide 4 B. Some skeptical questions.

  5. CSC509-S15-L5 Slide 5 B. Some skeptical questions. 1. Is this really possible, i.e., can someone build a working version of this tool that I can use as part of my normal program development workflow?

  6. CSC509-S15-L5 Slide 6 B. Some skeptical questions. 1. Is this really possible, i.e., can someone build a working version of this tool that I can use as part of my normal program development workflow? 2. When you say "a couple simple boolean expres- sions" , how really "simple" are they.

  7. CSC509-S15-L5 Slide 7 B. Some skeptical questions. 1. Is this really possible, i.e., can someone build a working version of this tool that I can use as part of my normal program development workflow? 2. When you say "a couple simple boolean expres- sions" , how really "simple" are they. 3. If this really is doable and simple enough, how come it hasn’t happened yet?

  8. CSC509-S15-L5 Slide 8 C. Some non-Skeptical Answers

  9. CSC509-S15-L5 Slide 9 C. Some non-Skeptical Answers 1. Yes, several such tools have been built in the last twenty years.

  10. CSC509-S15-L5 Slide 10 C. Some non-Skeptical Answers 1. Yes, several such tools have been built in the last twenty years. 2. The boolean expressions are simple enough for most competent programmers.

  11. CSC509-S15-L5 Slide 11 C. Some non-Skeptical Answers 1. Yes, several such tools have been built in the last twenty years. 2. The boolean expressions are simple enough for most competent programmers. 3. It hasn’t happened yet because ...

  12. CSC509-S15-L5 Slide 12 It hasn’t happened yet because ... a. The tools were written for languages and envi- ronments that aren’t or weren’t widely used.

  13. CSC509-S15-L5 Slide 13 It hasn’t happened yet because ... a. The tools were written for languages and envi- ronments that aren’t or weren’t widely used. b. There’s a chicken-and-egg problem with con- vincing programmers to adopt a new notation when there’s no immediate tangible benefit.

  14. CSC509-S15-L5 Slide 14 It hasn’t happened yet because ... a. The tools were written for languages and envi- ronments that aren’t or weren’t widely used. b. There’s a chicken-and-egg problem with con- vincing programmers to adopt a new notation when there’s no immediate tangible benefit. c. There remain technical challenges in generating genuinely "decent" tests.

  15. CSC509-S15-L5 Slide 15 D. Some new ideas that just might work:

  16. CSC509-S15-L5 Slide 16 D. Some new ideas that just might work: 1. Provide a mixed-language notation for popular languages like C, C++, Java, Python, and Ruby.

  17. CSC509-S15-L5 Slide 17 D. Some new ideas that just might work: 1. Provide a mixed-language notation for popular languages like C, C++, Java, Python, and Ruby. 2. Simplify the spec-language to the bare minimum necessary for test generation.

  18. CSC509-S15-L5 Slide 18 D. Some new ideas that just might work: 1. Provide a mixed-language notation for popular languages like C, C++, Java, Python, and Ruby. 2. Simplify the spec-language to the bare minimum necessary for test generation. 3. Generate tests that are very readable.

  19. CSC509-S15-L5 Slide 19 D. Some new ideas that just might work: 1. Provide a mixed-language notation for popular languages like C, C++, Java, Python, and Ruby. 2. Simplify the spec-language to the bare minimum necessary for test generation. 3. Generate tests that are very readable. 4. Generate tests that are 100% executable in any environment for the specified language.

  20. CSC509-S15-L5 Slide 20 III. Further details in the 509 project "white paper" at http://users.csc.calpoly.edu/ ˜gfisher/classes/509/project/ summary.html

Recommend


More recommend