-
Different Focus Areas
- Search Engine
- Apps
- Ads
- Mobile OS, etc.
-
No "Separate" Testing Organization
- Testing exists under "Engineering Productivity" area
-
Engineering Productivity
-
Product Team
- Develops tools to help with productivity
-
Service Team
- Handles service, issues, etc.
-
Embedded Engineers
- 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
-
Canary Channel
- Used for code suspected to be not fit for release
-
Dev Channel
- Used for day-to-day work by devs
-
Test Channel
- 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
-
Small
- Automated Tests
- Unit Tests
- Written by SWEs
-
Medium
- Automated or Manual
- Checks if the neighboring features interoperate.
-
Large
- 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