%% 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