matthewkmayer / matthewkmayer.github.io

Web site, with words
MIT License
3 stars 1 forks source link

Build quality in #37

Open matthewkmayer opened 7 years ago

matthewkmayer commented 7 years ago

Test-first development, functional tests, test early and often, etc..

matthewkmayer commented 4 years ago

Premise: customers will use and pay for software that has less bugs.

How can we ship less bugs? Catch things earlier: build quality in.

Building quality in can be achieved by using techniques such as test-first development, functional/API level tests and regularly running these tests.

Compare a software product that exclusively uses human testers: every time a production release is schedule to happen, the test/staging environment must be set up with exactly what will go to prod, including data. People then click around in some kind of user interface, looking for issues. With a long list of inputs, the human has to figure out if the result is correct or not. This manual validation is slow and expensive.

Post release, the same kind of tests must be done to verify it's working in production. That's doubling the cost of a release.

With automated testing, repetitive tests are run quickly and without human error involved. The same test suite can be used for local development, after deploying to test/staging and after a prod deploy. This is far cheaper to run early and often compared to using humans to do so, and more accurate to boot.

(Humans still need to do some testing but it should be a tiny minority of tests)

(TODO: should we talk about technology choices aside from tests? Pick languages that help you build quality in over YOLO languages)