На сегодняшний день существует множество различных производителей программного обеспечения. Каждый выпускаемый продукт проходит определенное тестирование, которое позволяет на раннем этапе выявить те или иные уязвимости, что позволит избежать в будущем проблем на стороне клиентов, которые могут потребовать возврата уплаченных средств в случае выявленных недостатков, а в некоторых случаях и покрыть понесенный ими ущерб. На сегодняшний день ценность информации достаточно высока, поэтому пренебрегать тестированием программного обеспечения не следует.
Приведем банальный пример. Приобрели вы пакет программного обеспечения и он не хочет устанавливаться, так как dll файлы не найдены на компьютере. Зачастую данная проблема связана с тем, что некоторые производители программных продуктов не поставляют dll библиотеки со своими продуктами и как бы предполагают, что они уже установлены на компьютере пользователя. Существуют программы, которые позволяют устранить данную проблему, но по факту их используют лишь продвинутые пользователи, остальные со скандалом требуют вернуть уплаченные за продукт средства - будь-то у Интернет магазина или оффлайн ритейлера.
На сегодняшний день выделяют несколько вариантов тестирования программного обеспечения - функциональное, взаимодействия, безопасности, нагрузочное, дымовое, сборки, санитарное, регрессивное. Также отдельно выделяют тестирование установки, юзабилити, на отказ и конфигурационное. Каждый из этапов тестирования программного обеспечения состоит из множества подпунктов, что делает сам процесс похожим на тесты лекарств фармакологическими компаниями. У последних тестирование нередко затягивается на десятилетия, с программными продуктами все в разы быстрее, так как имеется возможность осуществить основной объем тестов в рамках бета-тестовой версии.