Оценочное тестирование
После завершения комплексного тестирования приступают к оценочному тестированию, целью которого является тестирование программы на соответствие основным требованиям. Эта стадия тестирования особенно важна для программных продуктов, предназначенных для продажи на рынке.
Оценочное тестирование, которое также называют «тестированием системы в целом», включает следующие виды:
- тестирование удобства использования - последовательная проверка соответствия программного продукта и документации на него основным положениям технического задания;
- тестирование на предельных объемах - проверка работоспособности программы на максимально больших объемах данных, например, объемах текстов, таблиц, большом количестве файлов и т. п.;
- тестирование на предельных нагрузках - проверка выполнения программы на возможность обработки большого объема данных, поступивших в течение короткого времени;
- тестирование удобства эксплуатации - анализ психологических факторов, возникающих при работе с программным обеспечением; это тестирование позволяет определить, удобен ли интерфейс, не раздражает ли цветовое или звуковое сопровождение и т. п.;
- тестирование защиты - проверка защиты, например, от несанкционированного доступа к информации;
- тестирование производительности - определение пропускной способности при заданной конфигурации и нагрузке;
- тестирование требований к памяти - определение реальных потребностей в оперативной и внешней памяти;
- тестирование конфигурации оборудования - проверка работоспособности программного обеспечения на разном оборудовании;
- тестирование совместимости - проверка преемственности версий: в тех случаях, если очередная версия системы меняет форматы данных, она должна предусматривать специальные конвекторы, обеспечивающие возможность работы с файлами, созданными предыдущей версией системы;
- тестирование удобства установки - проверка удобства установки;
- тестирование надежности - проверка надежности с использованием соответствующих математических моделей;
- тестирование восстановления - проверка восстановления программного обеспечения, например системы, включающей базу данных, после сбоев оборудования и программы;
- тестирование удобства обслуживания - проверка средств обслуживания, включенных в программное обеспечение;
- тестирование документации - тщательная проверка документации, например, если документация содержит примеры, то их все необходимо попробовать;
- тестирование граничных значений;
- тщательную проверку руководства;
- тестирование процедуры - проверка ручных процессов, предполагаемых в системе.
Естественно, целью всех этих проверок является поиск несоответствий техническому заданию. Считают, что только после выполнения всех видов тестирования программный продукт может быть представлен пользователю или к реализации. Однако на практике обычно выполняют не все виды оценочного тестирования, так как это очень дорого и трудоемко. Как правило, для каждого типа программного обеспечения выполняют те виды тестирования, которые являются для него наиболее важными. Так базы данных обязательно тестируют на предельных объемах, а системы реального времени - на предельных нагрузках.
Контрольные вопросы и задания
1. Что является целью тестирования программ? Почему?
2. Перечислите известные вам виды контроля качества программного обеспечения. На каких этапах применяют каждый их них?
3. Какие подходы к тестированию вы знаете? В чем они заключаются?
4. Почему функциональное тестирование называют «тестированием по методу черного ящика»? Перечислите методы функционального тестирования и определите, в каких случаях следует использовать каждый из них.
5. Почему структурное тестирование называют «тестированием по методу белого или прозрачного ящика»? Перечислите методы структурного тестирования и определите возможности каждого из них. Какой метод структурного тестирования обеспечивает наибольшую вероятность обнаружения ошибок?
6. Используя методы обоих подходов, сформируйте пакет тестов для тестирования программы, вычисляющей действительные корни квадратного уравнения. Какие методы вы использовали и почему?
7. Чем нисходящее тестирование отличается от восходящего? Что понимают под комплексным тестированием и чем оно отличается от тестирования компонент? Когда можно прекращать тестирование компонентов?
8. Перечислите виды тестирования системы в целом. В каких случаях применяют каждый из них?