Project 714 Describe the fundamental challenges of and common techniques used

Project 714 describe the fundamental challenges of

This preview shows page 297 - 301 out of 517 pages.

Project 7.14. Describe the fundamental challenges of and common techniques used for requirements elicitation. Project 7.15. Differentiate between forward and backward tracing and explain their roles in the requirements validation process. Project 7.16. List several examples of software risks. Project 7.17. Describe different categories of risk in software systems.
Image of page 297
Project 7.18. Describe the impact of risk in a Plan-and-Document lifecycle.
Image of page 298
8. Software Testing: Test-Driven Development Donald Knuth (1938–) one of the most illustrious computer scientists, received the Turing Award in 1974 for major contributions to the analysis of algorithms and the design of programming languages, and in particular for his contributions to his multi-volume The Art of Computer Programming . Many consider this series the definitive reference on analysis of algorithms; “bounty checks” from Knuth for finding errors in his books are among the most prized trophies among computer scientists. Knuth also invented the widely-used TeX typesetting system, with which this book was prepared. One of the most important lessons, perhaps, is the fact that SOFTWARE IS HARD . ... TeX and METAFONT proved to be much more difficult than all the other things I had done (like proving theorems or writing books). The creation of good software demands a significantly higher standard of accuracy than those other things do, and it requires a longer attention span than other intellectual tasks. Donald Knuth, Keynote address to 11th World Computer Congress, 1989
Image of page 299
8.1 Background: A RESTful API and a Ruby Gem 8.2 FIRST, TDD, and Red–Green–Refactor 8.3 Seams and Doubles 8.4 Expectations, Mocks, Stubs, Setup 8.5 Fixtures and Factories 8.6 Implicit Requirements and Stubbing the Internet 8.7 Coverage Concepts and Unit vs. Integration Tests 8.8 Other Testing Approaches and Terminology 8.9 The Plan-And-Document Perspective 8.10 Fallacies and Pitfalls 8.11 Concluding Remarks: TDD vs. Conventional Debugging 8.12 To Learn More 8.13 Suggested Projects Concepts The big concepts of this chapter are test creation, test coverage, and levels of testing. The five principles for creating good tests are Fast, Independent, Repeatable, Self-checking, and Timely (FIRST). To help keep tests Fast and Independent from the behavior of other classes, use mock objects and stubs . They are examples of seams , which change program behavior during test without changing the source code itself. Testing in the Agile lifecycle, which follows Test-Driven Development ( TDD ), follows these steps: Starting from the acceptance and integration tests derived from User stories , write failing unit tests that test the nonexistent code you wish you had. We will use the RSpec tool to do this. Write just enough code to pass one test and look for opportunities to refactor the code before continuing with the next test. Since failed tests are reported in red and passing results are green, the sequence is called Red–Green–Refactor .
Image of page 300
Image of page 301

You've reached the end of your free preview.

Want to read all 517 pages?

  • Spring '19
  • Dr.Marcos

What students are saying

  • Left Quote Icon

    As a current student on this bumpy collegiate pathway, I stumbled upon Course Hero, where I can find study resources for nearly all my courses, get online help from tutors 24/7, and even share my old projects, papers, and lecture notes with other students.

    Student Picture

    Kiran Temple University Fox School of Business ‘17, Course Hero Intern

  • Left Quote Icon

    I cannot even describe how much Course Hero helped me this summer. It’s truly become something I can always rely on and help me. In the end, I was not only able to survive summer classes, but I was able to thrive thanks to Course Hero.

    Student Picture

    Dana University of Pennsylvania ‘17, Course Hero Intern

  • Left Quote Icon

    The ability to access any university’s resources through Course Hero proved invaluable in my case. I was behind on Tulane coursework and actually used UCLA’s materials to help me move forward and get everything together on time.

    Student Picture

    Jill Tulane University ‘16, Course Hero Intern

Stuck? We have tutors online 24/7 who can help you get unstuck.
A+ icon
Ask Expert Tutors You can ask You can ask You can ask (will expire )
Answers in as fast as 15 minutes
A+ icon
Ask Expert Tutors