Автоматизированное тестирование — одна из самых обсуждаемых тем среди инженеров по обеспечению качества.
Постоянно появляются новые системы тестирования программного обеспечения, и каждый новый фреймворк получает звание лучшего.
Однако автоматическое тестирование основано на предположении, что программа используется так, как задумали разработчики.
Если вы полагаетесь только на автоматизированные тесты, вы вскоре обнаружите ошибки в своем коде, но в то же время не сможете получить представление о качестве интерфейса приложения.
Что касается ручного тестирования, то ему уделяется все меньше внимания, поскольку такой процесс утомляет сотрудников, а на роль исполнителя подходит только специалист с особым складом ума.
Однако «ручные» тесты ни в чем не уступают автоматизированным.
Дело здесь в том, что подходы имеют разные области применения, поэтому сегодня мы рассмотрим некоторые преимущества и недостатки каждого решения.
Автоматизированное тестирование
К мнение Сара Фиттье, инженер по обеспечению качества в Project A Ventures, считает, что если тест включает в себя большое количество повторяющихся задач, то имеет смысл его автоматизировать.Классический пример — регрессионное тестирование, которое позволяет обнаружить серьёзные ошибки, поэтому важно регулярно проводить его в полном объёме до запуска конечного продукта (кстати, если вам интересно, вы можете прочитать руководство для QA-специалистов от Сары, вы можете найти его по адресу связь ).
При этом не стоит думать, что настройка автоматических тестов сэкономит вам много денег.
Написание и поддержка написанных скриптов требует определенных навыков в области QA, которыми обладают не все тестировщики, поэтому компании придется платить своим специалистам больше (однако штат тестировщиков по-прежнему невелик).
преуспеет уменьшать).
Также стоит отметить, что реализовать автоматизированные тесты для большого приложения с большим функционалом довольно сложно — так вы рискуете упустить из виду общую картину и не сможете охватить тестами весь функционал.
Однако, настроив автоматизированную систему тестирования с первых дней проекта, вы имеете возможность ускорить циклы контроля качества и наладить последовательную проверку приложения.
Однако важно понимать, что автоматизированное тестирование не поможет выявить недостатки во внешнем виде интерфейса и качестве взаимодействия пользователя с продуктом.
Рассмотрим области применения автоматизации: Тестирование графического интерфейса Данный вид тестирования направлен на проверку фронтенд-части приложения.
Без помощи автоматизации очень сложно учесть все возможные комбинации взаимодействия пользователя с интерфейсом в веб-браузерах, мобильных устройствах и других системах (важно понимать, что такой тест не сможет оценить UX, как указано выше).
Регрессионное тестирование С помощью этого типа тестирования разработчики находят ошибки, вызванные улучшением функциональности приложения.
Под давлением частых обновлений разработчикам приходится работать в бешеном темпе и порой идти на компромиссы, чем непременно пользуются ошибки, «заползая» в программный код. Вручную отслеживать недостатки каждого релиза довольно проблематично.
Функциональное тестирование Это тестирование для проверки того, что функциональные требования выполняются, то есть работает ли приложение так, как ожидалось.
Определяется, насколько точно реализованы намеченные функции, проводится анализ на соответствие стандартам, оценивается безопасность решения.
Повторное функциональное тестирование занимает много времени даже при небольшом изменении приложения, поэтому делать все вручную может быть дорого.
Ручное тестирование
Автоматизированное тестирование помогает добиться высокого качества, но на данный момент оно еще не полностью заменило ручные тесты.Это связано с тем, что пользователи могут совершать совершенно неожиданные действия, которые сложно учесть в автоматизированных тестах.
Пока пользователь привыкает к приложению, он может допускать ошибки, не выполнять необходимые шаги, вводить неожиданные значения и так далее.
Пользователи знают гораздо меньше о вашем продукте, но в конечном итоге именно они будут им пользоваться.
Поэтому одобрение клиентов — самый ценный показатель качества интерфейса.
Когда ключевую роль в оценке работоспособности программы начинают играть человеческие поведенческие особенности и интуиция, тогда стоит обратить внимание на ручное тестирование — здесь важнее поставить себя на место пользователя.
Тестировщик может проявлять творческий подход в процессе тестирования функциональности: придумывать неожиданные идеи, моделировать необычные варианты использования — это помогает выявить критические ошибки, которые автоматическое тестирование «не заметит».
Несколько вариантов использования ручного тестирования: Юзабилити-тестирование Это тестирование служит для проверки удобства использования приложения с точки зрения пользователя.
Компьютер не может решить такую задачу, расплывчатую по своим целям; машина нуждается в четких формулировках.
Специальное тестирование Разовое тестирование, направленное на проверку одного аспекта программы.
Для этого типа тестирования не существует формально определенных правил; проводится импровизационно — тестировщик может использовать любые доступные средства для поиска ошибок.
По сути, специальные тесты — это попытка «угадать» возможную ошибку.
Комбинированный вариант
Как мы уже отмечали выше, разные виды тестирования имеют разные области применения.Автоматизированные тесты не заменят ручные, но их можно использовать для экономии рабочего времени при работе над большими монотонными наборами действий.
Ручное тестирование занимает много времени, но без него не обойтись, если вы хотите добиться высокого качества продукта.
На данный момент только сочетание этих подходов может обеспечить высокие стандарты функциональности и удобства использования продукта.
В качестве примера такого подхода Сара Фитжи ведет процесс тестирования интернет-магазина natue, когда после успешного внедрения новых функций в тестовый проект команда QA запускала автоматическое регрессионное тестирование.
«Пока шла автоматическая проверка, мы параллельно вручную тестировали новые функции, принимая во внимание промежуточные результаты регрессионного теста», — говорит Сара.
«Если во время ручного или автоматического тестирования обнаруживались ошибки, их исправляли и тесты запускались заново».
Если все шло хорошо, команда Сары повторяла тест перед запуском финальной версии.
Другой пример приводит Стивен Аллен, инженер TestGrid.io. Он говорит , что полноценное автоматизированное тестирование долгое время было недоступно в iOS. Несколько лет назад Apple начала выпускать инструменты автоматизации, но они еще не идеальны.
Поэтому использовать только инструменты автоматизации не получится — придется прибегнуть к ручному тестированию.
Разработчики автоматизируют тесты, чтобы работать более эффективно и достигать большего, но скрипты не могут описать все возможные варианты использования приложения и учесть все ошибки.
Очень легко пропустить некоторые вещи, например наличие дополнительного поля имени пользователя на экране входа в систему, но все остальное работает правильно.
«Очень сложно написать идеальный код для автоматизированных тестов», говорит Джозеф Миллар, специалист по обеспечению качества в Lucid Software. — Если разработчик допустит ошибку в скриптах, он рискует пропустить большой пласт ошибок, тогда как при ручном тестировании эти дефекты, скорее всего, будут обнаружены.
Вот почему важно использовать оба метода при разработке приложений.
Один для экономии времени, второй для «полировки».
P.S. Другие наши материалы: Дайджест об облаках, сетевых технологиях и развитии сервисов .
Теги: #1сloud #тестирование #автоматизация #разработка приложений #Разработка сайтов #Разработка мобильных приложений #Разработка игр #Разработка Интернета вещей
-
Как Настроить Компьютер
19 Oct, 24 -
Ubuntu: 12 Миллионов Пользователей
19 Oct, 24 -
Мэйнфрейм Ibm Как Альтернатива Облаку
19 Oct, 24 -
Uwp – Выпуск 251
19 Oct, 24 -
Руби На Рит++
19 Oct, 24 -
Напишите Нам Программу...
19 Oct, 24