- •Правила тестирования программ
- •Терминология
- •Выбор стратегии тестирования
- •Категории программных ошибок
- •Правила тестирования
- •Правила тестирования пользовательского интерфейса (взаимодействия программы с пользователем)
- •Правила тестирования функциональности
- •Правила тестирования производительности.
- •Правила тестирования надежности.
- •Правила тестирования пользовательской документации.
- •Правила тестирования инсталляции/деинсталляции.
- •Правила воспроизводимости ошибок.
- •Правила тестирования граничных условий.
- •Отчет о проблеме
- •Приложение 1 Примеры некоторых наиболее распространенных проблем Ошибки пользовательского интерфейса
- •Функциональность
- •Приложение 2 Примеры применения некоторых приемов тестирования
-
Правила воспроизводимости ошибок.
Главное требование к результатам тестирования - это их воспроизводимость.
Воспроизводимость результатов, полученных одним тестером на одной машине, подразумевает возможность повторения этих результатов независимо от первого тестера другим тестером на другой машине при одних и тех же условиях тестирования.
Необходимо напомнить, что результатом тестирования (по данному правилу тестирования) является либо подтверждение работоспособности продукта по этому правилу, либо записанная в баг-лист ошибка. Соответственно, этот результат должен воспроизводиться. Невоспроизводимый результат никакой практической ценности для обеспечения качества продукта не имеет.
Для обеспечения воспроизводимости результатов тестирования необходимо соблюдать следующие правила:
-
для оценки функциональных возможностей продукта (при применении вышеописанных правил тестирования) каждую предусмотренную операцию необходимо повторить несколько раз, то есть судить о выполнении конкретного теста необходимо на основе представительной выборки результатов выполнения операции. Обычно, если, специально не оговорено, сколько раз необходимо повторить циклические действия по конкретному тесту, то можно ограничиться тремя циклами.
-
не заносить «нестабильные» («unstable») баги, так как их в дальнейшем не удастся повторить. Границей между стабильной и нестабильной багой является минимальное число циклов действий воспроизведения баги (при условии перезагрузки системы, перезапуска сервера и т.п.). Статистически достаточным является три проводимых последовательно цикла воспроизведения баги. Если бага все три раза воспроизвелась (после перезагрузки системы, перезапуска сервера и т.п.), то ее можно считать стабильной.
Чаще всего, когда есть сомнения в стабильности баги, для перепроверки баги “на стабильность” достаточно:
-
закрыть главное окно продукта (выйти из программы) и затем снова запустить продукт и повторить действия, вызывающие багу;
-
перезапустить SQL-сервер (для приложений баз данных) и повторить действия, вызывающие багу;
-
перезапустить Internet Information Server (для Web-приложений) и повторить действия, вызывающие багу;
-
перезапустить терминальную программу (при работе с удаленным хостом Unix) и повторить действия, вызывающие багу;
-
перезапустить программу демон (при работе с Unix);
-
перезагрузить операционную систему.
После того, как все эти действия были проведены, а “сомнительная” бага проявляется, ее можно считать стабильной и заносить в баг-лист.
-
Правила тестирования граничных условий.
Необходимо протестировать работу программного продукта для граничных условий - при работе с данными всех видов.
Большинство программных продуктов с одной стороны границы обрабатывает данные одним способом, а с другой стороны границы обрабатывает данные другим способом, либо выдает программное предупреждение и отбрасывает данные.
Основными правилами тестирования являются:
-
ввод максимально допустимого (граничного) значения для данного конкретного поля, процедуры, функциональности. Например, если допускается максимальное граничное значение 100, то необходимо вводить 100.
-
ввод минимально допустимого (граничного) значения для данного конкретного поля, процедуры, функциональности. Например, если допускается минимальное граничное значение 5, то необходимо вводить 5.
-
проверка на нулевое значение. Весьма часто нулевое значение обрабатывается некорректно.
-
проверка на особый случай – ввод и работу с пустым значением. Пустое значение (NULL) и собственно 0 как числовое значение – принципиально разные понятия. Необходимо подчеркнуть, что пустое значение (NULL) – не несет в себе никакой информации, пустое значение – это не ноль! С пустым значением нельзя проводить никаких арифметических (вычислительно-программных) операций, как с нулем. «Пусто» нельзя сложить, вычесть, умножить, вычислить среднее и т.д.
-
ввод значения за границей обрабатываемых данных (если это допускается элементами GUI). Например, если допускается значение от 5 до 100, то необходимо вводить 4 и 101.
-
ввод значения за границей обрабатываемых данных для нулевого значения (0 как число) - если это допускается элементами GUI. Например, если допускается значение от 0 до 10, то необходимо вводить -1 (минус единица) и 11.
-
специальная проверка корректности работы программы при арифметическом делении на ноль. Должно выводиться предупреждающее сообщение с предложением пользователю изменить значение на ненулевое значение. Проверка других операций с нулем должна проводиться в рамках тестирования функциональности программного продукта.
-
При нормальной работе программного продукта в допустимом диапазоне значений некоторое результирующее значение (сумма, произведение, факториал, ряд, и т.п.) может выходить за границы допустимого интервала значений. Это правило тестирования также необходимо применять при тестировании граничных условий, хотя программа и работает в установленном диапазоне. Пример: если допускается значение в интервале от 5 до 100, то при суммировании 50 и 60 итог выйдет за границы интервала.
-
проверка значений «на равенство». Равные значения должны обрабатываться корректно и операции со сравнением равных значений должны проходить без «зависаний». Например, часто могут быть проблемы при сортировке.
-
проверка на логические граничные условия «по здравому смыслу». Это правило тестирования имеет самое широкое применение – ко всем логически ограниченным диапазонам изменения данных, интервалам чисел и т.п. Например, у треугольника должно быть только три стороны – не больше и не меньше, его сумма углов равна 180 градусам. Возраст сотрудника должен быть больше нуля.