Автоматизированное тестирование

Поделись знанием:
(перенаправлено с «Автоматическое тестирование»)
Перейти к: навигация, поиск

Автоматизированное тестирование программного обеспечения — часть процесса тестирования на этапе контроля качества в процессе разработки программного обеспечения. Оно использует программные средства для выполнения тестов и проверки результатов выполнения, что помогает сократить время тестирования и упростить его процесс.





История

Первые попытки «автоматизации» появились в эпоху операционных систем DOS и CP/M. Тогда она заключалась в выдаче приложению команд через командную строку и анализе результатов. Чуть позднее добавились удаленные вызовы через API для работы по сети. ВпервыеК:Википедия:Статьи без источников (тип: не указан)[источник не указан 3852 дня] автоматизированное тестирование упоминается в книге Фредерика Брукса «Мифический человеко-месяц», где говорится о перспективах использования модульного тестирования. Но по-настоящему автоматизация тестирования стала развиваться только в 1980-х годах.

Подходы

Существует два основных подхода к автоматизации тестирования: тестирование на уровне кода и тестирование пользовательского интерфейса (в частности, GUI-тестирование). К первому типу относится, в частности, модульное тестирование. Ко второму — имитация действий пользователя с помощью специальных тестовых фреймворков.

GUI-автоматизация

Наиболее распространенной формой автоматизации является тестирование приложений через графический пользовательский интерфейс (англ. GUI). Популярность такого вида тестирования объясняется двумя факторами: во-первых, приложение тестируется тем же способом, которым его будет использовать человек, во-вторых, можно тестировать приложение, не имея при этом доступа к исходному коду.

GUI-автоматизация развивалась в течение 4 поколений инструментов и техник:

  • Утилиты записи и воспроизведения (англ. capture/playback tools) записывают действия тестировщика во время ручного тестирования. Они позволяют выполнять тесты без прямого участия человека в течение продолжительного времени, значительно увеличивая продуктивность и устраняя «тупое» повторение однообразных действий во время ручного тестирования. В то же время, любое малое изменение тестируемого ПО требует перезаписи ручных тестов. Поэтому это первое поколение инструментов не эффективно и не масштабируемо.
  • Написание сценария (англ. scripting) — форма программирования на языках, специально разработанных для автоматизации тестирования ПО — смягчает многие проблемы инструментов записи и воспроизведения. Но разработкой занимаются программисты высокого уровня, которые работают отдельно от тестировщиков, непосредственно запускающих тесты. К тому же скрипты более всего подходят для тестирования GUI и не могут быть внедренными, пакетными или вообще каким-либо образом объединены в систему. Наконец, изменения в тестируемом ПО требуют сложных изменений в соответствующих скриптах, и поддержка все возрастающей библиотеки тестирующих скриптов становится в конце концов непреодолимой задачей.
  • Управляемое данными тестирование (англ. Data-driven testing) — методология, которая используется в автоматизации тестирования. Особенностью является то, что тестовые скрипты выполняются и верифицируются на основе данных, которые хранятся в центральном хранилище данных или базе данных. Роль базы данных могут выполнять ODBC-ресурсы, csv или xls файлы и т. д. Управляемое данными тестирование — это объединение нескольких взаимодействующих тестовых скриптов и их источников данных во фреймворк, используемый в методологии. В этом фреймворке переменные используются как для входных значений, так и для выходных проверочных значений: в тестовом скрипте обычно закодированы навигация по приложению, чтение источников данных, ведение логов тестирования. Таким образом, логика, которая будет выполнена в скрипте, также зависит от данных.
  • Тестирование по ключевым словам (англ. Keyword-based) автоматизация подразумевает разделение процесса создания кейсов на 2 этапа: этап планирования и этап реализации. В этом случае конечный тест представляет собой не программный код, а описание последовательности действий с их параметрами (например, «завести в базе данных пользователя с логином XXX и паролем YYY»). При этом фреймворк отвечает за непосредственную реализацию ключевых слов (действий), а дизайнеру тестов достаточно иметь представление о всём наборе действий, реализованных во фреймворке. Это даёт возможность создавать тесты людям, не имеющим навыков программирования.

Проблемы

К:Википедия:Статьи без источников (тип: не указан)

Одной из главных проблем автоматизированного тестирования является его трудоемкость: несмотря на то, что оно позволяет устранить часть рутинных операций и ускорить выполнение тестов, большие ресурсы могут тратиться на обновление самих тестов. Это относится к обоим видам автоматизации. При рефакторинге часто бывает необходимо обновить и модульные тесты, а изменение кода тестов может занять столько же времени, сколько и изменение основного кода. С другой стороны, при изменении интерфейса приложения необходимо заново переписать все тесты, которые связаны с обновленными окнами, что при большом количестве тестов может отнять значительные ресурсы.

Приложения

Для автоматизации тестирования существует большое количество приложений. Наиболее популярные из них по итогам 2007 года:[1]

Использование этих инструментов помогает тестировщикам автоматизировать следующие задачи:

  • установка продукта
  • создание тестовых данных
  • GUI взаимодействие
  • определение проблемы

Однако автоматические тесты не могут полностью заменить ручное тестирование. Автоматизация всех испытаний — очень дорогой процесс, и потому автоматическое тестирование является лишь дополнением ручного тестирования. Наилучший вариант использования автоматических тестов — регрессионное тестирование.

Инструментарий

См. также

Напишите отзыв о статье "Автоматизированное тестирование"

Примечания

  1. [www.softjournal.ru/archive/2007-09.html SoftJournal 'Сентябрь 2007/ SoftJournal 'September 2007]

Ссылки

  • [automated-testing.info Портал об автоматизации тестирования ПО]
  • Лекции В. В. Кулямина. Методы автоматизации тестирования. [panda.ispras.ru/~RedVerst/RedVerst/Lectures%20and%20training%20courses/MSU%20course%20Formal%20specification%20of%20software/Lecture1.doc Лекция 1], [panda.ispras.ru/~RedVerst/RedVerst/Lectures%20and%20training%20courses/MSU%20course%20Formal%20specification%20of%20software/Lecture2.doc Лекция 2], [panda.ispras.ru/~RedVerst/RedVerst/Lectures%20and%20training%20courses/MSU%20course%20Formal%20specification%20of%20software/Lecture3.doc Лекция 3].
  • [openquality.ru/software-testing/automation.php Что такое автоматизация тестирования и в каких случаях она может быть полезной]
  • [citforum.ru/SE/testing/ Академические статьи о тестировании]


Отрывок, характеризующий Автоматизированное тестирование

– Да ну, будет, – говорил другой.
– А мне что за дело, пускай слышит! Что ж, мы не собаки, – сказал бывший исправник и, оглянувшись, увидал Алпатыча.
– А, Яков Алпатыч, ты зачем?
– По приказанию его сиятельства, к господину губернатору, – отвечал Алпатыч, гордо поднимая голову и закладывая руку за пазуху, что он делал всегда, когда упоминал о князе… – Изволили приказать осведомиться о положении дел, – сказал он.
– Да вот и узнавай, – прокричал помещик, – довели, что ни подвод, ничего!.. Вот она, слышишь? – сказал он, указывая на ту сторону, откуда слышались выстрелы.
– Довели, что погибать всем… разбойники! – опять проговорил он и сошел с крыльца.
Алпатыч покачал головой и пошел на лестницу. В приемной были купцы, женщины, чиновники, молча переглядывавшиеся между собой. Дверь кабинета отворилась, все встали с мест и подвинулись вперед. Из двери выбежал чиновник, поговорил что то с купцом, кликнул за собой толстого чиновника с крестом на шее и скрылся опять в дверь, видимо, избегая всех обращенных к нему взглядов и вопросов. Алпатыч продвинулся вперед и при следующем выходе чиновника, заложив руку зазастегнутый сюртук, обратился к чиновнику, подавая ему два письма.
– Господину барону Ашу от генерала аншефа князя Болконского, – провозгласил он так торжественно и значительно, что чиновник обратился к нему и взял его письмо. Через несколько минут губернатор принял Алпатыча и поспешно сказал ему:
– Доложи князю и княжне, что мне ничего не известно было: я поступал по высшим приказаниям – вот…
Он дал бумагу Алпатычу.
– А впрочем, так как князь нездоров, мой совет им ехать в Москву. Я сам сейчас еду. Доложи… – Но губернатор не договорил: в дверь вбежал запыленный и запотелый офицер и начал что то говорить по французски. На лице губернатора изобразился ужас.
– Иди, – сказал он, кивнув головой Алпатычу, и стал что то спрашивать у офицера. Жадные, испуганные, беспомощные взгляды обратились на Алпатыча, когда он вышел из кабинета губернатора. Невольно прислушиваясь теперь к близким и все усиливавшимся выстрелам, Алпатыч поспешил на постоялый двор. Бумага, которую дал губернатор Алпатычу, была следующая:
«Уверяю вас, что городу Смоленску не предстоит еще ни малейшей опасности, и невероятно, чтобы оный ею угрожаем был. Я с одной, а князь Багратион с другой стороны идем на соединение перед Смоленском, которое совершится 22 го числа, и обе армии совокупными силами станут оборонять соотечественников своих вверенной вам губернии, пока усилия их удалят от них врагов отечества или пока не истребится в храбрых их рядах до последнего воина. Вы видите из сего, что вы имеете совершенное право успокоить жителей Смоленска, ибо кто защищаем двумя столь храбрыми войсками, тот может быть уверен в победе их». (Предписание Барклая де Толли смоленскому гражданскому губернатору, барону Ашу, 1812 года.)
Народ беспокойно сновал по улицам.
Наложенные верхом возы с домашней посудой, стульями, шкафчиками то и дело выезжали из ворот домов и ехали по улицам. В соседнем доме Ферапонтова стояли повозки и, прощаясь, выли и приговаривали бабы. Дворняжка собака, лая, вертелась перед заложенными лошадьми.
Алпатыч более поспешным шагом, чем он ходил обыкновенно, вошел во двор и прямо пошел под сарай к своим лошадям и повозке. Кучер спал; он разбудил его, велел закладывать и вошел в сени. В хозяйской горнице слышался детский плач, надрывающиеся рыдания женщины и гневный, хриплый крик Ферапонтова. Кухарка, как испуганная курица, встрепыхалась в сенях, как только вошел Алпатыч.
– До смерти убил – хозяйку бил!.. Так бил, так волочил!..
– За что? – спросил Алпатыч.
– Ехать просилась. Дело женское! Увези ты, говорит, меня, не погуби ты меня с малыми детьми; народ, говорит, весь уехал, что, говорит, мы то? Как зачал бить. Так бил, так волочил!
Алпатыч как бы одобрительно кивнул головой на эти слова и, не желая более ничего знать, подошел к противоположной – хозяйской двери горницы, в которой оставались его покупки.
– Злодей ты, губитель, – прокричала в это время худая, бледная женщина с ребенком на руках и с сорванным с головы платком, вырываясь из дверей и сбегая по лестнице на двор. Ферапонтов вышел за ней и, увидав Алпатыча, оправил жилет, волосы, зевнул и вошел в горницу за Алпатычем.
– Аль уж ехать хочешь? – спросил он.
Не отвечая на вопрос и не оглядываясь на хозяина, перебирая свои покупки, Алпатыч спросил, сколько за постой следовало хозяину.
– Сочтем! Что ж, у губернатора был? – спросил Ферапонтов. – Какое решение вышло?
Алпатыч отвечал, что губернатор ничего решительно не сказал ему.
– По нашему делу разве увеземся? – сказал Ферапонтов. – Дай до Дорогобужа по семи рублей за подводу. И я говорю: креста на них нет! – сказал он.
– Селиванов, тот угодил в четверг, продал муку в армию по девяти рублей за куль. Что же, чай пить будете? – прибавил он. Пока закладывали лошадей, Алпатыч с Ферапонтовым напились чаю и разговорились о цене хлебов, об урожае и благоприятной погоде для уборки.
– Однако затихать стала, – сказал Ферапонтов, выпив три чашки чая и поднимаясь, – должно, наша взяла. Сказано, не пустят. Значит, сила… А намесь, сказывали, Матвей Иваныч Платов их в реку Марину загнал, тысяч осьмнадцать, что ли, в один день потопил.
Алпатыч собрал свои покупки, передал их вошедшему кучеру, расчелся с хозяином. В воротах прозвучал звук колес, копыт и бубенчиков выезжавшей кибиточки.
Было уже далеко за полдень; половина улицы была в тени, другая была ярко освещена солнцем. Алпатыч взглянул в окно и пошел к двери. Вдруг послышался странный звук дальнего свиста и удара, и вслед за тем раздался сливающийся гул пушечной пальбы, от которой задрожали стекла.
Алпатыч вышел на улицу; по улице пробежали два человека к мосту. С разных сторон слышались свисты, удары ядер и лопанье гранат, падавших в городе. Но звуки эти почти не слышны были и не обращали внимания жителей в сравнении с звуками пальбы, слышными за городом. Это было бомбардирование, которое в пятом часу приказал открыть Наполеон по городу, из ста тридцати орудий. Народ первое время не понимал значения этого бомбардирования.
Звуки падавших гранат и ядер возбуждали сначала только любопытство. Жена Ферапонтова, не перестававшая до этого выть под сараем, умолкла и с ребенком на руках вышла к воротам, молча приглядываясь к народу и прислушиваясь к звукам.
К воротам вышли кухарка и лавочник. Все с веселым любопытством старались увидать проносившиеся над их головами снаряды. Из за угла вышло несколько человек людей, оживленно разговаривая.
– То то сила! – говорил один. – И крышку и потолок так в щепки и разбило.
– Как свинья и землю то взрыло, – сказал другой. – Вот так важно, вот так подбодрил! – смеясь, сказал он. – Спасибо, отскочил, а то бы она тебя смазала.
Народ обратился к этим людям. Они приостановились и рассказывали, как подле самих их ядра попали в дом. Между тем другие снаряды, то с быстрым, мрачным свистом – ядра, то с приятным посвистыванием – гранаты, не переставали перелетать через головы народа; но ни один снаряд не падал близко, все переносило. Алпатыч садился в кибиточку. Хозяин стоял в воротах.