%%
date:: [[2023-06-15]]
parent::
%%
# [[Exploratory Testing As Code]]
speaker:: "[[Brendan Connolly]]"
- [[Carpe Data]]
- [site](https://brendanconnolly.net)
## History
### [[Infrastructure as code]] enabled [[DevOps]] revolution
- [[Shift-left]]
- Enabled developers to do Ops stuff
- How can we do the same for testing?
- What shifted left?
- Teams
- Ownership: making it code made it something others can own
### Modes of test management
- How do you manage teams when you shift testing left?
- Test cases as a practice
- [[Exploratory testing]] as a practice
## Exploratory testing as code
- Approach based on testers' knowledge and experience
- Different from [[Ad hoc Testing]], which is just clicking around
- [[Test Charter]]: documentation of objective for a session
- [[Session-based Testing]]: test activities are planned as test sessions
- Value
- It's open-ended
- Uncover the unknowns
- Takes advantage of human insights and intuition
> [!quote]
> Poetry is what is lost in translation. It is also what is lost in interpretation
> *Robert Frost*
- Utilize dev tooling to satisft the value prop of test cases while maintaining concepts of [[Exploratory testing]]
### Elements
- [[Version Control System|Version Control]]
- Git repo as the single source of truth
- Collaborate in change requests
- Commits to the main branch are an audit log
- [[obsidian-playbook/Using Obsidian/02 Making Notes in Obsidian/Markdown|Markdown]]
- plain text format
- The process
- Create feature branches
- Each new ticket in its own branch
- Only complete or working tickets get merged into main
- Main is what's live in production
- Take notes
- Show the value of testing and make your work visible
- Support with evidence: links, logs, screenshots, other data
- Organization
- Folder named for every work item you're testing
- 1 document per session
- Data subdirectory for assets
> [!idea] Sample folder structure
>
> ```
> .
> |___TKT-123
> |___session.01.md
> |___data
> |___example.jpg
> |___export.csv
> ```
>
- Peer review
- Code reviews, or peer reviews, are a way to test your code
- Put tests in its on repo, not with the application code
## Outcomes
- Centralization
- Visibility, Traceability
- Agile Alignment
- Shared ecosystem
- Incorporate it into [[Continuous Improvement|CI/CD]] pipeline
- Discoverable
- Scalable