are a series of repeatable tasks that are time intensive when done manually • Automaton allows you to test more scenarios in less time • Automation through the entire stack saves more the further in the process you get • Automated tests help you to fail early
flow of your software • Failing tests are an opportunity for development and QA to communicate and work together • Failures after release are more urgent and disruptive. i.e. catching a failure early likely means a more thorough fix
• Test automation execution • Automated Test result checks – Pass/Fail • Automated Environment setup • Automated Deployment Build Automation Test Run Automation
at the code level – First chance to identify failures – Identifying bugs at the lowest level – Measurable coverage of the code • Integration Tests – Test integrations with Databases, Third party Systems – Test integrations with other teams Unit Tests Integration Tests
the software and its’ dependencies API or back- end • UI Tests – User interface tests if applicable • Performance tests – Stress the system, try to break it E2E Test Automation UI Test Automation Performance Test Automation
All new code has corresponding unit tests written and reviewed • Every defect resolution gets a corresponding unit test where possible • When refactoring code produce unit tests • Drive toward 100% code coverage
important but QA E2E tests that are being worked on in parallel should surface some of the same issues – Still important more coverage is better Development
happens, where appropriate – Work with development starting with design – Write your test cases – Write your automated tests and revise when you have code
Test your environments with whatever tools are available to make sure you built what you think you built. • Test your deployment every time • Automate your upgrades and test your upgrades