Тестирование - это одно или несколько мероприятий, производимых с целью проверки соответствия характеристик программного продукта (ПП) заявленным требованиям и определения всевозможных дефектов. Дефектами могут быть и ошибки в функционировании, и неприемлемая работа в определенных условиях. В результате тестирования получается список выявленных дефектов, обычно без указания причин. Тестирование программы проводят на всех этапах разработки, от создания до технического сопровождения.
К первому этапу относят тестирование во время создания ПП, которые, как всегда и ИТ, разделяются на несколько видов. Функциональное тестирование - проверка правильной работы программы при выполнении заложенных в нее функций. Так же существует и нефункциональное тестирование, в которое входят другие методы испытаний, включающие в себя тестирование в разных условиях эксплуатации, удобства пользовательского интерфейса и т.п.
Для тестирования функционала ПП сотрудники технического контроля разрабатывают документ, называемый "Программа и методика испытаний функционала приложения" (ПМИ). Методика испытаний должна имитировать работу пользователя с ПП. Функциональное тестирование так же делится на два подвида: покомпонентное тестирование и интеграционное тестирование, назначение интуитивно понятно. Для сложных ПП получается иерархическая структура тестирования. Выделение же уровней иерархии чаще всего происходит по принципу общей функциональности, либо по частям проектного решения. Тестирование можно проводить в любом направлении иерархии. Нефункциональное тестирование оценивает второстепенные качества ПП. Но второстепенные не в смысле важности, а в том, что они никому не нужны, если продукт неверно выполняет то, для чего он создан.
При тестировании производительности, относящемся тоже относящееся к нефункциональному, проводят испытание ПП в нескольких режимах: нагрузочное тестирование и стрессовое тестирование, объемное тестирование и тестирование надежности. К нефункциональному тестированию относят и проверку процесса установки, и тестирование эргономики интерфейса, и тестирование способностей к восстановлению. Отдельно проводят испытания на различных клиентских и серверных ОС.
На этапе сопровождения ПП проводят регрессионное тестирование. Его проводят уже после исправления выявленных в результате эксплуатации ПП ошибок. К этому же виду относят и проверку ПП после внесения мелких изменений, вызванных переходом на новую ОС.
Для новой версии ПП существует предварительное тестирование, после которого программу отправляют уже на полное "обследование". Существует и еще несколько видов тестирования, но это уже зависит от самого ПП.