Please enable JavaScript.
Coggle requires JavaScript to display documents.
CI, TDD, BDD (Continuous Integration (CI Advantages (less repetitive work…
CI, TDD, BDD
Continuous Integration
-
Need CI cos many developers, large code base, different environments, divide and conquer yet we don't want to break things
-
CI about automatic builds with changes and committing to master after every feature to avoid merge hell
CI is part of continuous delivery and continuous deployment where former involves manual acceptance test after CI and latter doesn't
-
-
TDD
TDD = write tests before development but development is still the focus so need to write good tests that drive implementation; red-green-refactor cycles; tests come from RE
-
-
TDD Best Practices
very descriptive test case names; Test names should focus on responsibility of class, not interaction between classes
-
-
-
-
-
refactor only after tests pass cos can introduce bugs otherwise and hard to figure out source of bugs
-
-
BDD
Purpose = bridging gap between TDD and user reqs cos uses acceptance criteria of reqs for tests; user reqs are about who/why, not how (which is what unit tests are about)
used as part of CI, TDD cycles. CI cycle > BDD cycle > TDD cycle
BDD vs TDD
-
-
-
BDD results in output understandable by non-developers while TDD results in output understandable by only developers
BDD refactoring can involve talking to customers to check what you developed is actually what the customer wants; TDD refactoring is more technical
-
-
BDD means you translate user stories to executable code/test which makes you implement the required classes