Understands how to test code, and the valuable role that testing plays
Testing your code: You consistently write solid unit tests, sometimes with help from more senior engineers
Improving coverage: You've spotted small areas of low test coverage and patched them
Taking responsibility: You've consistently ensured that your code passes tests before creating or merging pull requests
Understands the importance of a testing strategy, with growing levels of autonomy
Testing your code: You usually write detailed unit and functional tests covering edge cases as well as happy paths
Improving coverage: You've improved test coverage in adjacent areas of code to your own without being asked
Taking responsibility: You've ensured that code committed by your immediate team is well tested and passing
Independently testing, advising the rest of the team on quality of tests
Testing your code: You always write full tests for your code unassisted, covering all edge cases even with complex functionality.
Improving coverage: You've worked to improve the quality of your own and your team's test coverage
Taking responsibility: You consistently look for and can recall quality metrics to demonstrate your test coverage, and monitor in behalf of your team.
A growing leader within the team around testing strategy
Leading testing strategy: You've defined how your team writes and thinks through test coverage, including tooling and metrics. You've worked with other teams to ensure your strategy covers any crossover
Advocating for testing: You're an internal go-to expert when teams are thinking through testing strategy for new products and problems
A leader within the organization in terms of test strategy
Leading testing strategy: You're defining how your company thinks through testing. You're personally responsibly for the metrics around test coverage across the organization
Advocating for testing: You may be contributing to an open source library or speaking at conferences on behalf of your company around great testing strategy and tactics