Skip to content
Merged
Show file tree
Hide file tree
Changes from 11 commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
ebee633
Update testing.md
andyblundell Mar 10, 2025
ba55229
Update structured-code.md
andyblundell Mar 10, 2025
2cef90f
Update structured-code.md
andyblundell Mar 10, 2025
30212ef
Update everything-as-code.md
andyblundell Mar 10, 2025
a8af75f
Update everything-as-code.md
andyblundell Mar 10, 2025
d70377c
Update everything-as-code.md
andyblundell Mar 10, 2025
1604345
Update principles.md
andyblundell Mar 10, 2025
1f1e6c3
Update principles.md
andyblundell Mar 10, 2025
fc9a2e5
Update principles.md
andyblundell Mar 10, 2025
f62c246
Update review.md
andyblundell Mar 10, 2025
41a7db0
Update review.md
andyblundell Mar 10, 2025
50687f6
Update patterns/everything-as-code.md
andyblundell Mar 10, 2025
c5f2130
Update practices/testing.md
andyblundell Mar 10, 2025
36a29b0
Update insights/review.md
andyblundell Mar 10, 2025
07db966
Add and improve the 'General testing principles' section
stefaniuk Mar 11, 2025
bbf0802
Remove reference to support
andyblundell Mar 11, 2025
3fce283
Update design for testability section
andyblundell Mar 12, 2025
223282f
Typos
andyblundell Mar 12, 2025
e725a91
Update testing.md
andyblundell Mar 12, 2025
1f78675
Update testing.md
andyblundell Mar 12, 2025
74df23b
Update testing.md
andyblundell Mar 12, 2025
b4821e1
Update testing.md
andyblundell Mar 12, 2025
829269f
Update testing.md
andyblundell Mar 12, 2025
e77e5a1
Update testing.md
andyblundell Mar 12, 2025
a50ea9c
Update testing.md
andyblundell Mar 12, 2025
0f7239c
Update testing.md
andyblundell Mar 12, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion insights/review.md
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,10 @@ You may wish to score each individual component or system separately for these a
#### 9. Testing

- We have great test coverage.
- Testing is everyone's responsibility.
- Testing is everyone's responsibility and test is a first-class concern.
Comment thread
andyblundell marked this conversation as resolved.
- We support all team members to practice good testing, including by holding no-blame sessions to discuss any automation tests we should have added, and what we can learn from having missed them initially.
- We build code for testability.
- Tests (including both test code and test coverage & whether there are gaps) are part of our standard peer-review process.
- Repetitive tests are automated.
- Testing is considered before each work item is started and throughout its delivery.
- We use the right mix of testing techniques including automated checks and exploratory testing.
Expand Down
3 changes: 3 additions & 0 deletions patterns/everything-as-code.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,9 @@ While effective testing is the best way to detect bugs or non-functional problem
- Is the code clear and simple?
- Is the code layout and structure consistent with agreed style and other code? (please see [enforce code formatting](enforce-code-formatting.md))
- Would it easily allow future modification to meet slightly different needs, e.g. ten times the required data size or throughput?
- Is it [built for testability](../practices/structured-code.md)?
- Are the automated tests positioned appropriately in the [test pyramid](https://martinfowler.com/articles/practical-test-pyramid.html), triggered appropriately in CI builds, etc?
Comment thread
andyblundell marked this conversation as resolved.
Outdated
- Are there any missing [automated tests](../practices/testing.md), e.g. edge-cases that have not yet been considered?
- Have the non-functional requirements been considered (performance, scalability, robustness, etc)?
- Are common security issues guarded against (e.g. [OWASP Top 10](https://owasp.org/www-project-top-ten/))? Including:
- Is any new input data being treated as potentially hostile?
Expand Down
9 changes: 9 additions & 0 deletions practices/structured-code.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,15 @@
- These notes are part of a broader set of [principles](../principles.md)
- These practices should be read in conjunction with [architect for flow](../patterns/architect-for-flow.md)

## Benefits

The benefits of well-structured & clean code are profound & widespread, some highlights are:

- Promoting *maintainability* by generally making the code easier and safer to work on
- Supporting *building for testability*, which hugely reduces the risk and effort of practicing good testing

The above are fundamental to supporting the [little and often](../patterns/little-and-often.md) delivery approach, which itself has many benefits and is at the heart of this framework

## Details

- Good code structure is essential for maintainability.
Expand Down
2 changes: 2 additions & 0 deletions practices/testing.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
- **Quality is the whole team's responsibility**
- Education on testing and testing principles should be important to the whole team.
- Quality approaches should be driven as a team and implemented by everyone.
- Teams should consider running regular coaching / mentoring sessions to support colleagues who are less experienced in testing to grow their skills, for example by no-blame group discussions to identify edge-case tests which have so far been missed, tests positioned incorrectly in the [test pyramid](https://martinfowler.com/articles/practical-test-pyramid.html), etc.
Comment thread
andyblundell marked this conversation as resolved.
Outdated

- **Combining business knowledge with testing knowledge yields better quality outcomes**
- Include business knowledge and critical thinking as part of assurance
Expand All @@ -49,6 +50,7 @@
- Eg. using API testing tools to aid exploratory API testing

- **Testing should be continually improved**
- [Peer reviews](../patterns/everything-as-code.md#code-review) must consider tests as a first-class concern - this includes tests that are present / have been added (e.g. whether they are positioned appropriately in the [test pyramid](https://martinfowler.com/articles/practical-test-pyramid.html), whether they are triggered appropriately in CI builds, etc) and any tests that are missing, e.g. edge-cases not yet considered

- **Testing is continuous**
- Testing is a continuous activity, not a phase of delivery
Expand Down
2 changes: 1 addition & 1 deletion principles.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ The following practices support the principle of building quality in.

**Pair programming**. Avoid quality issues by combining the skills and experience of two developers instead of one. Take advantage of navigator and driver roles. Also consider cross-discipline (e.g. dev-test) pairing.

**[Test automation.](practices/testing.md)** Use test-driven development: Write the tests hand in hand with the code it is testing to ensure code is easily testable and does just enough to meet the requirements.
**[Test automation.](practices/testing.md)** and **[build for testability](practices/structured-code.md)** Use test-driven development: Write the tests hand in hand with the code it is testing to ensure code is easily testable and does just enough to meet the requirements.

**[Protect code quality](patterns/everything-as-code.md)** to keep code easy to maintain.

Expand Down