Skip to content

Developer Testing

coloradokim edited this page Aug 23, 2017 · 3 revisions

Developer Testing by Alexander Tarlinder

"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

Chapter 2: Testing Objectives, Styles and Roles

  • Testing can be used to critique or support (which would you prefer?)

  • Most organizations do something between these two approaches:

    1. Traditional: Waterfall, a specific 'tester' role, process-oriented
    2. Agile: Small iterations, cross-disiplinary roles, proactive
  • Behavior Driven Development (BDD) ensures that you are testing from the user's perspective

Chapter 3: The Testing Vocabulary

White vs. Blackbox testing

  • In whitebox testing, you can access the source code
  • In blackbox testing, you cannot

Unit Testing

  • Testing specific functions, methods or classes to ensure they return the expected output

Integration Testing

  • Ensuring that different systems can communicate with each other

System Testing

  • Ensuring the entire system works

Acceptance Testing

  • Ensuring that a user story has been implemented

Chapter 4: Testability From a Developer's Perspective

  • 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

Chapter 5: Programming by Contract

  • I skipped this chapter

Chapter 6: Drivers of Testability

  • 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
Clone this wiki locally