Different Focus Areas
- Search Engine
- Mobile OS, etc.
No "Separate" Testing Organization
- Testing exists under "Engineering Productivity" area
- Develops tools to help with productivity
- Handles service, issues, etc.
- Loaned to teams on need basis
Product teams own quality
- Testers enable developers to test
- SET (Software Engineer Testing) creates Test Framework
- Developer are responsible for testing
- Developers write Test Scripts
Quality != Test
- Without testing, it is impossible to build anything of quality.
- Development & Testing are mixed until they are indistinguishable.
Build little, Test little
- Developer does most of the testing
- Get developers fully vested int the quality equation
- Bug Prevention >>> Bug Detection
- Testers might not be involved from the beginning but testing is!
Roles @ Google
Software Engineer (SWE)
- Write Functional Code
- Works towards Bug Prevention
Software Engineer in Test (SET)
- Write Test Framework
Test Engineer (TE)
- Does User Focused Testing
Involved in late stages of development
- Raise alarms
Quality is a work in progress
- A product must go through number of channels & prove it's worth
- Used for code suspected to be not fit for release
- Used for day-to-day work by devs
- Internal Dog Food
Beta / Release Channel
- Extreme Exposure
- Get Feedback & Iterate
- Initial development is not about quality, it is about proving the concept & feasibility
Test Scope Terminiology
- Automated Tests
- Unit Tests
- Written by SWEs
- Automated or Manual
- Checks if the neighboring features interoperate.
- Covers 3 or more features
- Checks if the software does what the user expects?
- If a test doesn't need human cleverness or intuition, it should be automated.
- Based on James Whittaker's blog posts on testing.googleblog.com