CST 438 Week 4 Learning Journal
Importance of Testing
The most interesting thing I learned from reading "Software Engineering at Google" was about testing. Testing is a crucial aspect of programming that can significantly improve system designs. A simple test focuses on a single behavior, a method, or an API that is being called. A specific input is given, and an observable output is shown in a controlled environment.When designing a test, a developer needs to take the test size and scope into consideration. It should be a small test (few resources to run the test) and scope (specific to the code that is being verified). The benefits of testing are:
- Less debugging
- increased confidence in changing code
- improved documentation
- simpler reviews
- thoughtful design
- fast, high-quality releases
While this read highlighted the importance of testing, it was also interesting to learn about how Google implemented testing within its company. Many employers were hesitant to adopt the process, so Google used three initiatives to push it out to employees.
- New Engineer Orientation: New engineers were trained on the value of automated testing as well as what makes a good test. This allowed testing to be introduced into teams that were not familiar with it and began to gain exposure. Since Google was a growing company at the time (2005), the number of employees implementing automated testing quickly outnumbered those who did not.
- Test Certification: Google began a certification program that allowed engineer to improve their test writing skills. This helped those working on a project write tests for projects that were impossible to test.
- Testing On the Toilet: Google employees developed episodes involving testing and its best practices. They were placed in the restrooms of Google since this was the place that employees would visit once a day.
Through these initiatives, testing has become embedded in a developer's daily workflow.
Comments
Post a Comment