-
Introductio:
- It ties into our aproach to object orientation which follows Alan Kay's concept of objects being similar to biological cells that send each other message
- Testing is about helping the team to understand the features that the users need and to deliver those features reliably and predictably.
- Everyone involver in a software project has to learn as it progresses.
-
Feedback Is the Fundamental Tool:
- A team need repear cycles of activity.
- In each cycle ir adds new features and gets feedback about the quantity and quality of the work already done.
- The team can measure how much progress they are really making, detect and correct any errors, and adapt the current plan in response to what they have learned.
-
Regression testing: Regression testing is a type of software testing that verifies that software previously developed and tested still performs correctly after it was changed or interfaced with other software. (https://en.wikipedia.org/wiki/Regression_testing)
-
Practices That Support Change:
- We need constant testing to catch regression errors, so whe can add new features without breaking existing ones.
- We need to keep the code as simple as possible, so it is easeir to understand and modify. The test suites in the feedback loops protect us against our own mistakes as we improve (and therefore change) the code.
-
TDD:
- The cycle at heart of TDD is: write a test; write code to get it working; refactor; repeat.
- Never write new functionality without a failing test.
-
The Bigger Picture:
- When we are implementing a feature, we start by writing an acceptance test. Underneath the acceptante test, wue foloe the unit level test/implement/refactor cyce to develop the feature.
-
Testing End-to-End:
- The team had been writing acceptance test to capture requerements and show progress to their customer representatives.
- The team had been writing unit tests for the classes of the system, and the internals were clean an easy to change.
- Package the system, perfomr a prodution-like deployment into a realistic environment and atack the external access point.
- The system is deployable when te acceptance tests all pass.
Last active
June 7, 2016 14:01
-
-
Save clockworkorange/87a297b2846c7e7c0594934629e41231 to your computer and use it in GitHub Desktop.
Growing Object-Oriented Software, Guided By Tests
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment