-
Notifications
You must be signed in to change notification settings - Fork 12
Developer Testing
"Quality cannot be tested in, it has to be built in." p.1
"Developer testing is an umbrella term for all test-related activities a developer engages in." p.6
-
Testing can be used to critique or support (which would you prefer?)
-
Most organizations do something between these two approaches:
- Traditional: Waterfall, a specific 'tester' role, process-oriented
- Agile: Small iterations, cross-disiplinary roles, proactive
-
Behavior Driven Development (BDD) ensures that you are testing from the user's perspective
- In whitebox testing, you can access the source code
- In blackbox testing, you cannot
- Testing specific functions, methods or classes to ensure they return the expected output
- Ensuring that different systems can communicate with each other
- Ensuring the entire system works
- Ensuring that a user story has been implemented
- If software is written with testing in mind, it is more likely to be tested.
"Resolving a bug becomes a matter of locating it, changing the code, and running some tests." p. 39
"...if the feature is supposedly '95 percent finished' and all tests for the new functionality pass, as well as those that exercise the rest of the system, the estimate is much more credible." p.40
"Ultimately, testable software is about money and happiness." p. 41
Testability leads to:
- Observability
-
Controllability
- Isoalbility
- Deployability
-
Smallness
- Singularity
- Level of Abstraction
- Efficiency
- Reuse
- I skipped this chapter
- Direct input and output
- The input values are passed in via the public interface
- The output values are observable through the public interface
- Related to blackbox testing
- Indirect input and output
- Neither input nor output are observable through the public interface
- Related to whitebox testing
- Temporal Coupling
- Is true if one method requires another method to be invoked first
- Domain-to-Range-Ratio
- A way to measure information loss when a function accepts a large input and returns a small output