Lecture 10 5/5/2016 12:08:00 PM Покрытие требований (Requirements Coverage) Тестовое Покрытие - это одна из метрик оценки качества тестирования, представляющая из себя плотность покрытия тестами требований либо исполняемого кода. Покрытие требований (Requirements Coverage) - оценка покрытия тестами функциональных и нефункциональных требований к продукту Ограничения: Метод покрытия требований может оставить непроверенными некоторые участки кода, потому что не учитывает конечную реализацию. Расчет тестового покрытия относительно требований проводится по формуле: Tcov = (Lcov/Ltotal) * 100% где: Tcov - тестовое покрытие Lcov - количество требований, проверяемых тест кейсами Ltotal - общее количество требований Для измерения покрытия требований, необходимо проанализировать требования к продукту и разбить их на пункты. Опционально каждый пункт связывается с тест кейсами, проверяющими его. Проследив связи, можно понять какие именно требования проверяет тестовый случай. Тесты не связанные с требованиями не имеют смысла. Требования, не связанные с тестами - это "белые пятна", т.е. выполнив все созданные тест кейсы, нельзя дать ответ реализовано данное требование в продукте или нет. Automation testing Автоматизированное тестирование является составной частью тестирования. Оно использует программные средства для выполнения тестов и проверки результатов выполнения, что помогает сократить время тестирования и упростить его процесс. Существует два основных подхода к автоматизации тестирования: тестирование на уровне кода и GUIтестирование. К первому типу относится, в частности, модульное тестирование. Ко второму - имитация действий пользователя с помощью специальных тестовых фреймворков. Автоматические тесты не могут полностью заменить ручное тестирование. Автоматизация всех испытаний — очень дорогой процесс, и потому автоматическое тестирование является лишь дополнением ручного тестирования. Наилучший вариант использования автоматических тестов — регрессионное тестирование. Выгода и риски использования тестовных инструментов Тестовый инструмент подразумивает долгосрочные вложения, которые требуют поддержку для обеспечения долгосрочной прибыли. Вложения авансом – разработка и поддержка - подразумивают существенную прибыль в будущем. Затраты на поддержку использования программного инструмента и эти затраты должны быть меньше, чем затраты на исполнение техже задач вручную. 1 Lecture 10 5/5/2016 12:08:00 PM Преимущества автоматизации тестирования: Повторяемость – все написанные тесты всегда будут выполняться однообразно, то есть исключен «человеческий фактор». Тестировщик не пропустит тест по неосторожности и ничего не напутает в результатах. Результат более предсказуем по сравнению с тестированием, проделанным человеком: исключаются o Человеческие ошибки o Ошибки ввода тестируемых данных o Недопонимание o Забывчивость Быстрое выполнение – автоматизированному скрипту не нужно сверяться с инструкциями и документациями, это сильно экономит время выполнения. Меньшие затраты на поддержку – когда автоматические скрипты уже написаны, на их поддержку и анализ результатов требуется, как правило, меньшее время чем на проведение того же объема тестирования вручную. Отчеты – автоматически рассылаемые и сохраняемые отчеты о результатах тестирования. Выполнение без вмешательства – во время выполнения тестов инженер-тестировщик может заниматься другими полезными делами (такими как планирование, разработка тестов или анализ результатов), или тесты могут выполняться в нерабочее время (этот метод предпочтительнее, так как нагрузка на локальные сети ночью снижена). Недостатки автоматизации тестирования (их тоже немало): Повторяемость – все написанные тесты всегда будут выполняться однообразно. Это одновременно является и недостатком, так как тестировщик, выполняя тест вручную, может обратить внимание на некоторые детали и, проведя несколько дополнительных операций, найти дефект. Затраты на поддержку – несмотря на то, что в случае автоматизированных тестов они меньше, чем затраты на ручное тестирование того же функционала – они все же есть. Чем чаще изменяется приложение, тем они выше. Большие затраты на разработку – разработка автоматизированных тестов это сложный процесс, так как фактически идет разработка приложения, которое тестирует другое приложение. В сложных автоматизированных тестах также есть фреймворки, утилиты, библиотеки и прочее. Все это нужно тестировать и отлаживать, а это требует времени. Стоимость инструмента для автоматизации – в случае если используется лицензионное ПО, его стоимость может быть достаточно высока. Пропуск мелких ошибок - автоматический скрипт может пропускать мелкие ошибки на проверку которых он не запрограммирован. Это могут быть неточности в позиционировании окон, ошибки в надписях, которые не проверяются, ошибки контролов и форм с которыми не осуществляется взаимодействие во время выполнения скрипта. Риски использования автоматизации тестирования Большинство рисков, которые ассоциируются с использованием тест инструментов относятся к Переоцениванию возможностей автоматических инструментов Недооцениванию необходимых для разработки и поддержки инструмента ресурсов 2