Цель работы: изучение методов тестирования логики програм¬мы, формализованные описания результатов тестирования и стандарты по составлению схем программ; формирование навыков тестирования и отладки приложений в среде Delphi.
Оборудование:
Тестирование программного обеспечения включает в себя це¬лый комплекс действий, аналогичных последовательности про¬цессов разработки программного обеспечения. В него входят:
Наиболее важным является проектирование тестов. Сущест¬вуют разные подходы к проектированию тестов.
Первый состоит в том, что тесты проектируются на основе внешних спецификаций программ и модулей либо специфика¬ций сопряжения модуля с другими модулями, программа при этом рассматривается как «черный ящик». Смысл теста заключа¬ется в том, чтобы проверить, соответствует ли программа внеш¬ним спецификациям. При этом содержание модуля не имеет значения. Такой подход получил название – стратегия «черного ящика».
Второй подход – стратегия «белого ящика», основан на ана¬лизе логики программы. При таком подходе тестирование за¬ключается в проверке каждого пути, каждой ветви алгоритма. При этом внешняя спецификация во внимание не принимается.
Ни один из этих подходов не является оптимальным. Реали¬зация тестирования методом «черного ящика» сводится к про¬верке всех возможных комбинаций входных данных. Невозмож¬но протестировать программу, подавая на вход бесконечное множество значений, поэтому ограничиваются определенным набором данных. При этом исходят из максимальной отдачи теста по сравнению с затратами на его создание. Она измеряется вероятностью того, что тест выявит ошибки, если они имеются в программе. Затраты измеряются временем и стоимостью подго¬товки, выполнения и проверки результатов теста.
Тестирование методом «белого ящика» также не дает 100%-ной гарантии того, что модуль не содержит ошибок. Даже если предположить, что выполнены тесты для всех ветвей алго¬ритма, нельзя с полной уверенностью утверждать, что программа соответствует ее спецификациям. Например, если требовалось написать программу для вычисления кубического корня, а про¬грамма фактически вычисляет корень квадратный, то реализация будет совершенно неправильной, даже если проверить все пути. Вторая проблема – отсутствующие пути. Если программа реали¬зует спецификации не полностью (например, отсутствует такая специализированная функция, как проверка на отрицательное значение входных данных программы вычисления квадратного корня), никакое тестирование существующих путей не выявит такой ошибки. И наконец, проблема зависимости результатов тестирования от входных данных. Одни данные будут давать пра-вильные результаты, а другие нет. Например, если для определе¬ния равенства трех чисел программируется выражение вида:
Процесс тестирование программного обеспечения Процесс тестирования ПО осуществляется в следующей последовательности, для того чтобы найти недостатки в программном обеспечении системы:
Ниже приведены примеры тестирования:
Тестирование программного обеспечения для входа на страницу системы:
Цель: пользователь должен иметь возможность перейти на главную страницу. Предпосылки:
Программное обеспечение должно быть совместимо с операционной системой.
Должна появиться страница «ввода логина».
Текстовые поля идентификатора пользователя и пароля должны быть доступны с соответствующими метками.
Должны быть в наличии кнопки «Войти» и «Отмена» с соответствующими подписями.
Тест 1 Название теста: проверка требований пользовательского интерфейса.
Шаги/действия: Пользователь просматривает страницу, чтобы проверить, включает ли она в себя ID пользователя и пароль в текстовых полях с соответствующими наклейками. Кроме того, кнопки «Войти» и «Отмена» должны быть доступны с соответствующими подписями. Ожидаемые результаты: экран отображает интерфейс пользователя согласно требованиям пользователя.
Тест 2 Название теста: Текстовое поле для идентификатора пользователя следует:
Содержание отчета:
Защита отчета по практической работе заключается в предъявлении преподавателю полученных результатов (на экране монитора), демонстрации полученных навыков и ответах на вопросы преподавателя.