Хотя тестирование ПО может предоставить вам множество ценных преимуществ, оно не является единственным способом улучшить качество вашей программы. В одной из самых авторитетных книг по написанию программ "Совершенный код" Стива Макконнела (Steve McConnell "Code Complete") приведена оценка нахождения дефектов разработчиками, использующими различные техники. Анализ кода (code review), формальные инспекции, моделирование программного обеспечения способствуют улучшению качества программы. Парное программирование, когда два человека работают одновременно за одним компьютером, также показало значительное улучшение качества программы. Так как человеку довольно легко пропустить свои ошибки, другой человек, изучающий код или текст независимо, довольно часто замечает, что что-то не так. Я знаю, о чем говорю, — я пропустил множество нелепых опечаток в этой книге, которые были обнаружены сразу же, как я отправил книгу на редактирование.
Хотя качество означает не только "уменьшение количества дефектов", это определенно является важной составляющей. Выявляя дефекты, тестировщики улучшают качество программы. Пользователи программы получают лучший продукт.
Выделение соответствующего времени на тестирование, программирование и прочие составляющие цикла разработки программного обеспечения также поможет повысить качество. Очень немногие части программы написаны безупречно, а созданная в условиях недостатка времени программа окажется неприемлемого качества. Предоставление адекватного времени и ресурсов инженерам для разработки программы в целом повысит уровень качества.
Выбор языка программирования, фреймворка и дизайн программы также могут оказать большое влияние на качество программы. Хотя у каждого языка есть свои сторонники, определенно существуют причины, по которым большинство вебприложений не пишется на ассемблере, а встраиваемое ПО не создается на Ruby. Разные языки, библиотеки и другие средства разработки имеют различные преимущества, и использование тех, что подходят для вашей создаваемой системы, принесет свои дивиденды в терминах качества. Хотя данный курс фокусируется на тестировании, следует признать, что оно выступает только одной из составляющих качественного ПО. Качество в современном проекте по разработке ПО является обязанностью всех участников команды, не только тестировщиков.