Тестирование программного обеспечения. Базовый курс. 3-е издание



Pdf көрінісі
бет282/307
Дата03.07.2023
өлшемі5,03 Mb.
#179304
1   ...   278   279   280   281   282   283   284   285   ...   307
Байланысты:
Software Testing - Base Course (Svyatoslav Kulikov) - 3rd edition - RU


часть процесса отладки). 


Поиск причин возникновения дефектов
Тестирование программного обеспечения. Базовый курс. 
© EPAM Systems, 2015–2023
 
Стр: 256/301 
 
Рисунок 2.7.j — Алгоритм поиска первопричины дефекта 
На этом мы завершаем основную часть данной книги, посвящённую «тести-
рованию в принципе». Далее будет рассмотрена автоматизация тестирования как 
совокупность техник, повышающих эффективность работы тестировщика по мно-
гим показателям. 
Определить 
проявление 
проблемы
Собрать 
необходимую 
информацию
Выдвинуть гипотезу 
о причине проблемы
Проверить 
выдвинутую гипотезу
Гипотеза 
подтвердилась?
Сформировать 
рекомендации по 
устранению
Это первопричина?
Да
Да
Нет
Нет


Раздел 3: автоматизация тестирования
Тестирование программного обеспечения. Базовый курс. 
© EPAM Systems, 2015–2023
 
Стр: 257/301 
Раздел 3: автоматизация тестирования 
3.1. 
Выгоды и риски автоматизации 
3.1.1. 
Преимущества и недостатки автоматизации 
В разделе, посвящённом подробной классификации тестирования
{69}
, мы 
кратко рассматривали, что собой представляет автоматизированное тестирова-
ние
{76}
: это набор техник, подходов и инструментальных средств, позволяющий ис-
ключить человека из выполнения некоторых задач в процессе тестирования. В таб-
лице 2.3.b
{76}
 
был приведён краткий список преимуществ и недостатков автоматиза-
ции, который сейчас мы рассмотрим подробно. 

Скорость выполнения тест-кейсов может в разы и на порядки превосходить 
возможности человека. Если представить, что человеку придётся вручную 
сверять несколько файлов размером в несколько десятков мегабайт каждый, 
оценка времени ручного выполнения становится пугающей: месяцы или даже 
годы. При этом 36 проверок, реализуемых в рамках дымового тестирования 
командными скриптами
{284}

выполняются менее чем за пять секунд и требуют 
от тестировщика только одного действия — запустить скрипт. 

Отсутствует влияние человеческого фактора в процессе выполнения тест-
кейсов (усталости, невнимательности и т.д.). Продолжим пример из преды-
дущего пункта: какова вероятность, что человек ошибётся, сравнивая (по-
символьно!) даже два обычных текста размером в 100 страниц каждый? А 
если таких текстов 10? 20? И проверки нужно повторять раз за разом? Можно 
смело утверждать, что человек ошибётся гарантированно. Автоматика не 
ошибётся. 

Средства автоматизации способны выполнить тест-кейсы, в принципе непо-
сильные для человека в силу своей сложности, скорости или иных факторов. 
И снова наш пример со сравнением больших текстов является актуальным: 
мы не можем позволить себе потратить годы, раз за разом выполняя крайне 
сложную рутинную операцию, в которой мы к тому же будем гарантированно 
допускать ошибки. Другим прекрасным примером непосильных для человека 
тест-кейсов является исследование производительности
{91}
, в рамках кото-
рого необходимо с высокой скоростью выполнять определённые действия, а 
также фиксировать значения широкого набора параметров. Сможет ли чело-
век, например, сто раз в секунду измерять и записывать объём оперативной 
памяти, занимаемой приложением? Нет. Автоматика сможет. 

Средства автоматизации способны собирать, сохранять, анализировать, аг-
регировать и представлять в удобной для восприятия человеком форме ко-
лоссальные объёмы данных. В нашем примере с дымовым тестированием 
«Конвертера файлов» объём данных, полученный в результате тестирова-
ния, невелик — его вполне можно обработать вручную. Но если обратиться 
к реальным проектным ситуациям, журналы работы систем автоматизиро-
ванного тестирования могут занимать десятки гигабайт по каждой итерации. 
Логично, что человек не в состоянии вручную проанализировать такие объ-
ёмы данных, но правильно настроенная среда автоматизации сделает это 
сама, предоставив на выход аккуратные отчёты в 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


Достарыңызбен бөлісу:
1   ...   278   279   280   281   282   283   284   285   ...   307




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет