Виды программного тестирования

Комментарии давал Артём, руководитель отдела тестировщиков в компании Flexis Group.

Тестирование программного обеспечения (ПО) – это такой исследовательский процесс, задача которого – продемонстрировать качество программного продукта заказчику, а также выявить возможные слабые, уязвимые места и ошибки в работе. Как правило, тестирование является неотъемлемой частью разработки ПО.

Как и многие другие процессы, которые включает программная разработка, тестирование имеет комплексную структуру и отличается методиками и техниками.

Артём, Flexis Group

Артём: "Основные виды - ручное и функциональное тестирование. Ручное – это когда тестировщик эмулирует действия реального пользователя, и вручную пытается проверить всю эргономику, которая в системе реализована, в том числе выполняя стресс-тесты и проверяя на различных нестандартных кейсах поведение системы".

Ручное тестирование – этот тот тип работ, который, теоретически, может выполнять любой человек с минимальным опытом в сфере IT-технологий и обладающий общей компьютерной грамотностью. Некоторые компании-разработчики подключают к такому тестированию пользователей, которые в процессе работы с программным продуктом в форме отзывов составляют описание ошибок (ссылка на гугл стори, например), и, тем самым, помогают разработчикам улучшать качество.

Артём: "Есть такой большой блок как автоматизированное тестирование. Оно, соответственно, исходя из названия, автоматизирует некоторые процессы, позволяя тестировщику руками не делать многие вещи, а системе воспроизводить его шаги. Это в одном из вариантов. В другом варианте происходит обмен данными с системой как бы «под капотом», и смотреть, как она себя поведет".

Для того, чтобы заниматься автоматизированным тестированием, нужно уметь программировать автотесты. Полноценное знание какого-либо языка программирования не требуется, в виду чего на позицию «авто-тестера» часто берут начинающих программистов.

 

Эффективное использование TestNG и JUnit


В этом тренинге рассматриваются два наиболее популярных тестовых фреймворка для языка программирования Java -- JUnit и TestNG.

 

Тестирование защищенности веб-приложений


Одно из ключевых мест в процессе тестирования занимает тестирование защищенности (security testing) или проверка отсутствия известных уязвимостей.

 

Школа успешных тестировщиков, v. 2.0


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

Артём: "Существуют дополнительные специфические виды тестирования, которые далеко не везде нужны. Это, например, нагрузочное тестирование, посредством которого проверяется устойчивость системы к высокому трафику. Есть «юзабилити-тестирование» - проверка по аспекту удобства использования".

В тестировании, как и в любой другой сфере IT есть свои особенности и условия, которые необходимо выполнять и которые непрофессионалу могут показаться излишеством и ненужной тратой времени и сил.

Артём: "Страшный бич вообще всего процесса – это регрессионное тестирование. Оно очень важное, но его в какой-то момент начинают ненавидеть. Предположим, разработка программного продукта длилась два года, и после огромного количества тестов он, наконец-то, вышел на рынок. По истечению трех месяцев разработчики добавляют в продукт новый функционал, который отдельно протестировали. Но, помимо этого, нужно еще протестировать все, что было сделано за прошедшие два года, потому что прирост нового мог спровоцировать поломки в системе. В большинство случаев покрывается автотестами, но иногда необходимо все «пропихивать руками»".

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