Файл: Обеспечения Базовый курс (3е издание) Версия книги 2 от 17. 04. 2023.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 07.11.2023
Просмотров: 869
Скачиваний: 31
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
«Конвертера файлов» объём данных, полученный в результате тестирова- ния, невелик — его вполне можно обработать вручную. Но если обратиться к реальным проектным ситуациям, журналы работы систем автоматизиро- ванного тестирования могут занимать десятки гигабайт по каждой итерации.
Логично, что человек не в состоянии вручную проанализировать такие объ-
ёмы данных, но правильно настроенная среда автоматизации сделает это сама, предоставив на выход аккуратные отчёты в 2–3 страницы, удобные гра- фики и таблицы, а также возможность погружаться в детали, переходя от аг- регированных данных к подробностям, если в этом возникнет необходи- мость.
Преимущества и недостатки автоматизации
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 258/301
• Средства автоматизации способны выполнять низкоуровневые действия с приложением, операционной системой, каналами передачи данных и т.д. В одном из предыдущих пунктов мы упоминали такую задачу, как «сто раз в секунду измерить и записать объём оперативной памяти, занимаемой при- ложением». Подобная задача сбора информации об используемых приложе- нием ресурсах является классическим примером. Однако средства автома- тизации могут не только собирать подобную информацию, но и воздейство- вать на среду исполнения приложения или само приложение, эмулируя ти- пичные события (например, нехватку оперативной памяти или процессор- ного времени) и фиксируя реакцию приложения. Даже если у тестировщика будет достаточно квалификации, чтобы самостоятельно выполнить подоб- ные операции, ему всё равно понадобится то или иное инструментальное средство — так почему не решить эту задачу сразу на уровне автоматизации тестирования?
Итак, с использованием автоматизации мы получаем возможность увеличить тестовое покрытие
{215}
за счёт:
• выполнения тест-кейсов, о которых раньше не стоило и думать;
• многократного повторения тест-кейсов с разными входными данными;
• высвобождения времени на создание новых тест-кейсов.
Но всё ли так хорошо с автоматизацией? Увы, нет. Очень наглядно одну из серьёзных проблем можно представить рисунком 3.1.a:
Рисунок 3.1.a — Соотношение времени разработки и выполнения тест-кейсов в ручном и автоматизированном тестировании
В первую очередь следует осознать, что автоматизация не происходит сама по себе, не существует волшебной кнопки, нажатием которой решаются все про- блемы. Более того, с автоматизацией тестирования связана серия серьёзных не- достатков и рисков:
• Необходимость наличия высококвалифицированного персонала в силу того факта, что автоматизация — это «проект внутри проекта» (со своими требо- ваниями, планами, кодом и т.д.). Даже если забыть на мгновение про «проект внутри проекта», техническая квалификация сотрудников, занимающихся ав- томатизацией, как правило, должна быть ощутимо выше, чем у их коллег, занимающихся ручным тестированием. t
Разработка и отладка
В
ы по л
- не н
ие
В
ы по л
- не н
ие
Разработка
В
ы по л
- не н
ие
В
ы по л
- не н
ие
В
ы по л
- не н
ие
В
ы по л
- не н
ие
Ручное тестирование
Автоматизированное тестирование
Преимущества и недостатки автоматизации
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 259/301
• Разработка и сопровождение как самих автоматизированных тест-кейсов, так и всей необходимой инфраструктуры занимает очень много времени. Ситуа- ция усугубляется тем, что в некоторых случаях (при серьёзных изменениях в проекте или в случае ошибок в стратегии) всю соответствующую работу при- ходится выполнять заново с нуля: в случае ощутимого изменения требова- ний, смены технологического домена, переработки интерфейсов (как пользо- вательских, так и программных) многие тест-кейсы становятся безнадёжно устаревшими и требуют создания заново.
• Автоматизация требует более тщательного планирования и управления рис- ками, т.к. в противном случае проекту может быть нанесён серьёзный ущерб
(см. предыдущий пункт про переделку с нуля всех наработок).
• Коммерческие средства автоматизации стоят ощутимо дорого, а имеющиеся бесплатные аналоги не всегда позволяют эффективно решать поставленные задачи. И здесь мы снова вынуждены вернуться к вопросу ошибок в плани- ровании: если изначально набор технологий и средств автоматизации был выбран неверно, придётся не только переделывать всю работу, но и покупать новые средства автоматизации.
• Средств автоматизации крайне много, что усложняет проблему выбора того или иного средства, затрудняет планирование и определение стратегии те- стирования, может повлечь за собой дополнительные временные и финан- совые затраты, а также необходимость обучения персонала или найма соот- ветствующих специалистов.
Итак, автоматизация тестирования требует ощутимых инвестиций и сильно повышает проектные риски, а потому существуют специальные подходы
365
,
366
,
367
по оценке применимости и эффективности автоматизированного тестирования. Если выразить всю их суть очень кратко, то в первую очередь следует учесть:
• Затраты времени на ручное выполнение тест-кейсов и на выполнение этих же тест-кейсов, но уже автоматизированных. Чем ощутимее разница, тем бо- лее выгодной представляется автоматизация.
• Количество повторений выполнения одних и тех же тест-кейсов. Чем оно больше, тем больше времени мы сможем сэкономить за счёт автоматизации.
• Затраты времени на отладку, обновление и поддержку автоматизированных тест-кейсов. Этот параметр сложнее всего оценить, и именно он представ- ляет наибольшую угрозу успеху автоматизации, потому здесь для проведе- ния оценки следует привлекать наиболее опытных специалистов.
• Наличие в команде соответствующих специалистов и их рабочую загрузку.
Автоматизацией занимаются самые квалифицированные сотрудники, кото- рые в это время не могут решать иные задачи.
365
«Implementing Automated Software Testing — Continuously Track Progress and Adjust Accordingly», Thom Garrett
[
http://www.methodsandtools.com/archive/archive.php?id=94
]
366
«The ROI of Test Automation», Michael Kelly [
https://www.stickyminds.com/sites/default/files/presenta- tion/file/2013/04STRER_W12.pdf
]
367
«Cost Benefits Analysis of Test Automation», Douglas Hoffman [
https://www.cmcrossroads.com/sites/default/files/arti- cle/file/2014/Cost-Benefit%20Analysis%20of%20Test%20Automation.pdf
]
Преимущества и недостатки автоматизации
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 260/301
В качестве небольшого примера беглой оценки эффективности автоматиза- ции можно привести следующую формулу
368
:
????
????????????????????????
=
????∙????
????????????????????????
????????????????????????????
????∙????
????????????????????????????????????
???????????? ???????????? ????????????????????????????
+????
????????????????????????????????????
???????????????????????????????????????????? ???????????? ????????????????????????????
, где
????
????????????????????????
— коэффициент выгоды от использования автоматизации,
????
— планируемое количество билдов приложения;
????
????????????????????????
????????????????????????????
— расчётное время разработки, выполнения и анализа результатов ручного тестиро- вания;
????
????????????????????????????????????
???????????? ???????????? ????????????????????????????
— расчётное время выполнения и анализа результатов автоматизированного тестирования;
????
????????????????????????????????????
???????????????????????????????????????????? ???????????? ????????????????????????????
— расчётное время разработки и сопровождения автоматизирован- ного тестирования.
Чтобы нагляднее представить, как эта формула может помочь, изобразим график коэффициента выгоды автоматизации в зависимости от количества билдов
(рисунок 3.1.b). Допустим, что в некотором проекте значения параметров таковы:
????
????????????????????????
????????????????????????????
= 30 часов на каждый билд;
????
????????????????????????????????????
???????????? ???????????? ????????????????????????????
= 5 часов на каждый билд;
????
????????????????????????????????????
???????????????????????????????????????????? ???????????? ????????????????????????????
= 300 часов на весь проект.
Рисунок 3.1.b — Коэффициент выгоды автоматизации в зависимости от количе- ства билдов
Как видно на рисунке 3.1.b, лишь к 12-му билду автоматизация окупит вложе- ния и с 13-го билда начнёт приносить пользу. И тем не менее существуют области, в которых автоматизация даёт ощутимый эффект почти сразу. Их рассмотрению посвящена следующая глава.
368
«Introduction to automation», Vitaliy Zhyrytskyy.
Области применения автоматизации
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 261/301
3.1.2.
Области применения автоматизации
Сначала мы ещё раз посмотрим на список задач, решить которые помогает автоматизация:
• Выполнение тест-кейсов, непосильных человеку.
• Решение рутинных задач.
• Ускорение выполнения тестирования.
• Высвобождение человеческих ресурсов для интеллектуальной работы.
• Увеличение тестового покрытия.
• Улучшение кода за счёт увеличения тестового покрытия и применения спе- циальных техник автоматизации.
Эти задачи чаще всего встречаются и проще всего решаются в следующих случаях (см. таблицу 3.1.a).
Таблица 3.1.a — Случаи наибольшей применимости автоматизации
Случай / задача
Какую проблему решает автоматизация
Регрессионное тестиро- вание
{87}
Необходимость выполнять вручную тесты, количество которых неуклонно растёт с каждым билдом, но вся суть которых сводится к проверке того факта, что ранее работавшая функциональность про- должает работать корректно.
Инсталляционное тести- рование
{86}
и настройка тестового окружения.
Множество часто повторяющихся рутинных операций по проверке работы инсталлятора, размещения файлов в файловой системе, содержимого конфигурационных файлов, реестра и т.д. Подготовка приложения в заданной среде и с заданными настройками для про- ведения основного тестирования.
Конфигурационное тести- рование
{89}
и тестирова- ние совместимости
{89}
Выполнение одних и тех же тест-кейсов на большом множестве входных данных, под разными платформами и в разных условиях.
Классический пример: есть файл настроек, в нём сто параметров, каждый может принимать сто значений: существует 100 100
вариан- тов конфигурационного файла — все их нужно проверить.
Использование комбина- торных техник тестирова- ния
{107}
(в т.ч. доменного тестирования
{95}
,
{242}
).
Генерация комбинаций значений и многократное выполнение тест- кейсов с использованием этих сгенерированных комбинаций в каче- стве входных данных.
Модульное тестирова- ние
{77}
Проверка корректности работы атомарных участков кода и элемен- тарных взаимодействий таких участков кода — практически невы- полнимая для человека задача при условии, что нужно выполнить тысячи таких проверок и нигде не ошибиться.
Интеграционное тестиро- вание
{77}
Глубокая проверка взаимодействия компонентов в ситуации, когда человеку почти нечего наблюдать, т.к. все представляющие инте- рес и подвергаемые тестированию процессы проходят на уровнях более глубоких, чем пользовательский интерфейс.
Тестирование безопасно- сти
{89}
Необходимость проверки прав доступа, паролей по умолчанию, от- крытых портов, уязвимостей текущих версий ПО и т.д., т.е. быстрое выполнение очень большого количества проверок, в процессе кото- рого нельзя что-то пропустить, забыть или «не так понять».
Тестирование производи- тельности
{91}
Создание нагрузки с интенсивностью и точностью, недоступной че- ловеку. Сбор с высокой скоростью большого набора параметров ра- боты приложения. Анализ большого объёма данных из журналов работы системы автоматизации.
Дымовой тест
{79}
для круп- ных систем.
Выполнение при получении каждого билда большого количества до- статочно простых для автоматизации тест-кейсов.
Приложения (или их ча- сти) без графического ин- терфейса.
Проверка консольных приложений на больших наборах значений параметров командной строки (и их комбинаций). Проверка прило- жений и их компонентов, вообще не предназначенных для взаимо- действия с человеком (веб-сервисы, серверы, библиотеки и т.д.).
Области применения автоматизации
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 262/301
Длительные, рутинные, утомительные для чело- века и/или требующие по- вышенного внимания опе- рации.
Проверки, требующие сравнения больших объёмов данных, высо- кой точности вычислений, обработки большого количества разме- щённых по всему дереву каталогов файлов, ощутимо большого вре- мени выполнения и т.д. Особенно, когда такие проверки повторя- ются очень часто.
Проверка «внутренней функциональности» веб- приложений (ссылок, до- ступности страниц и т.д.).
Автоматизация предельно рутинных действий (например, прове- рить все 30’000+ ссылок на предмет того, что все они ведут на ре- ально существующие страницы). Автоматизация здесь упрощается в силу стандартности задачи — существует много готовых решений.
Стандартная, однотипная для многих проектов функциональность.
Даже высокая сложность при первичной автоматизации в таком случае окупится за счёт простоты многократного использования по- лученных решений в разных проектах.
«Технические задачи».
Проверки корректности протоколирования, работы с базами дан- ных, корректности поиска, файловых операций, корректности фор- матов и содержимого генерируемых документов и т.д.
С другой стороны, существуют случаи, в которых автоматизация, скорее всего, приведёт только к ухудшению ситуации. Вкратце — это все те области, где требуется человеческое мышление, а также некоторый перечень технологических областей.
Чуть более подробно список выглядит так (таблица 3.1.b):
Таблица 3.1.b — Случаи наименьшей применимости автоматизации
Случай / задача
В чём проблема автоматизации
Планирование
{208}
Компьютер пока не научился думать.
Разработка тест-кейсов
{120}
Написание отчётов о дефектах
{170}
Анализ результатов тестирования и отчёт- ность
{208}
Функциональность, которую нужно (доста- точно) проверить всего несколько раз.
Затраты на автоматизацию не окупятся.
Тест-кейсы, которые нужно выполнить всего несколько раз (если человек может их выполнить).
Низкий уровень абстракции в имеющихся инструментах автоматизации.
Придётся писать очень много кода, что не только сложно и долго, но и приводит к появлению множе- ства ошибок в самих тест-кейсах.
Слабые возможности средства автомати- зации по протоколированию процесса те- стирования и сбору технических данных о приложении и окружении.
Есть риск получить данные в виде «что-то где-то сломалось», что не помогает в диагностике про- блемы.
Низкая стабильность требований.
Придётся очень многое переделывать, что в случае автоматизации обходится дороже, чем в случае ручного тестирования.
Сложные комбинации большого количе- ства технологий.
Высокая сложность автоматизации, низкая надёж- ность тест-кейсов, высокая сложность оценки тру- дозатрат и прогнозирования рисков.
Проблемы с планированием и ручным те- стированием.
Автоматизация хаоса приводит к появлению авто- матизированного хаоса, но при этом ещё и требует трудозатрат. Сначала стоит решить имеющиеся проблемы, а потом включаться в автоматизацию.
Нехватка времени и угроза срыва сроков
Автоматизация не приносит мгновенных результа- тов. Поначалу она лишь потребляет ресурсы ко- манды (в том числе время). Также есть универ- сальный афоризм: «лучше руками протестировать хоть что-то, чем автоматизированно протестиро- вать ничего».
Области применения автоматизации
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 263/301
Области тестирования, требующие оценки ситуации человеком (тестирование удоб- ства использования
{88}
, тестирование до- ступности
{88}
и т.д.).
В принципе, можно разработать некие алгоритмы, оценивающие ситуацию так, как её мог бы оценить человек. Но на практике живой человек может сде- лать это быстрее, проще, надёжнее и дешевле.
Вывод: стоит помнить, что эффект от автоматизации наступает не сразу и не всегда. Как и любой дорогостоящий инструмент, автоматизация при верном приме- нении может дать ощутимую выгоду, но при неверном принесёт лишь весьма ощу- тимые затраты.
Особенности автоматизированного тестирования
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 264/301
1 ... 30 31 32 33 34 35 36 37 38