|
English version
|
О проекте
Что такое «Автоматизированное тестирование»? сначала опишу
«ручное тестирование». Ручное тестирование программного обеспечения –
проверка человеком вручную соответствия программного продукта
требованиям к его функциональности. В качестве примера можно привести программу
«калькулятор». Вероятно, в его требованиях было указано, что, например 2+3
должно быть равно пяти и так далее. Ручное тестирование включало бы в себя
набор действий, таких как «Нажмите следующую последовательность кнопок: 2, + ,
3, =. Ожидаемый результат – на экране должно быть отображено «5». Потом был бы
тест с использованием комбинаций 2+4, 2+5 и так далее, до какого-нибудь
известного предела. Понятно, что ручное тестирование в данном
случае очень утомительно и медленно . В этом случае намного
эффективнее использование автоматизированного тестирования,
при котором компьютер сам будет набирать нужные комбинации исходных данных,
нажимать = и сравнивать полученный результат с ожидаемым. При этом, компьютер
не пропустит случайно какую-нибудь комбинацию или неверный результат расчёта и
сделает всё намного быстрее.
Автоматизированное тестирование не может полностью заместить ручное
. Например, неудачно подобранное сочетание цветов никак не сможет помешать
компьютеру, но человек, заметит сразу, что, например, светло серые подписи
кнопок плохо читаемы на сером фоне этих кнопок. Конечно, можно научить
автоматизированный тест проверять удобочитаемость, но это как раз тот случай,
где автоматизированное тестирование нецелесообразно.
Вторая, наиболее частая причина использования автоматизированного тестирования
– тестирование после внесения изменений. Например, у Вас есть
веб сайт, содержащий общедоступную область и персональные страницы, доступ к
которым осуществляется после авторизации. Предположим, что общедоступная часть
была написана ранее, протестирована, размещена в интернет и её используют
клиенты. Ведётся разработка персональной части и после окончания каждого
модуля необходимо проверить, не повлекло ли это нарушения работы в
общедоступной части. Здесь как раз и удобно использование автоматизированного
тестирования. Намного быстрее и эффективнее запустить автоматизированный тест
для проверки, скажем, 500 страниц, чем использовать для этого команду
тестировщиков, пусть даже и очень квалифицированных. То же самое может
потребоваться и после исправления ошибки, а людям, обычно, не нравится делать
одно и то же несколько раз (в данном случае имеется в виду тестирование, а не
сон, например). Автоматизированное тестирование проводят после ручного. В
случае с калькулятором, оптимально использовать ручное тестирование на основе
граничных значений, то есть, когда проверяются операции с максимально и
минимально допустимыми числами, а также около нуля. После этого, идеально
использование автоматизированного тестирования для проверки всех возможных
операций со всеми возможными числами. Также,
автоматизированное тестирование обычно применяется только для позитивных
тестов.
Когда можно обойтись без автоматизированного тестирования? -если
Вы ответите "да" по всем пунктам:
-разработчики не ошибаются;
-тестировщики в силах хорошо проверить все возможные комбинации за имеющееся
время;
-ручной труд всегда лучше (несмотря на то, что дороже).
Кому может понадобиться автоматизированное тестирование.
Прежде всего людям, участвующим в разработке больших или динамических систем.
Другими словами, если у Вас персональный сайт с двумя статическими страницами
"Обо мне" и "Контакты" (как, например, этот сайт ;-) , то автоматизированное
тестирование нецелесообразно. Если же пройти по всем страничкам за несколько
минут не удаётся, информация на них меняется (Вашими разработчиками при
добавлении новых возможностей или за счёт использования информации с других
ресурсов), вероятно Вам стоит подумать об автоматизации тестирования.
Создание автоматизированных тестов возможно двумя способами:
1. Использованием инструментов для записи и воспроизведения последовательности
действий (нажатия клавиш, движения мыши, операций с объектами программы и
т.д.);
2. Программирование.
Первый способ подошёл бы для вышеописанного сайта с двумя статическими
страницами. Для создания такого теста не требуется квалификации такого уровня,
которая необходима для второго способа. То есть, любой пользователь может
включить инструмент тестирования в режиме записи, произвести тестировочные
действия, завершить запись, включить её на выполнение и получить скрипт для
автоматизированного теста. Но, если Ваш сайт – это, например, онлайн
радио (как например, http://bee.fm или
http://www.musicgoal.com) , и
на страницах пишутся проигрываемые в данный момент мелодии по разным каналам,
похожие на них мелодии, количество слушателей, новости с других музыкальных
сайтов, то нужно использовать второй способ автоматизированного
тестирования.
Сколько это стоит? Разработка автоматизированных тестов
ведётся программистами, и их время работы стоит также как и
время обычных программистов. Например, разработка четырёх тестов,
показанных в демонстрации, стоила бы 90 USD, при наличии
корректно сформированных шагов плана тестирования (пример
тестплана). Если плана тестирования нет, мы тоже можем его разработать.
Срок окупаемости автоматизированных тестов зависит от
сложности Вашей системы. Например. Для выполнения 4 тестов, описанных в
демонстрации, тестировщику потребовалось бы 4 минуты (ни разу не
ошибившись). Автоматизированный тест проходит около 15 секунд, что в 16
раз быстрее. Учитывая, что автоматизированный тест может работать ночью, без
кофе, не ходит курить, не болеет и не общается с другими тестами по ICQ, можно
предположить, что количество проведённых тестов будет отличаться в сотни раз.
Платить за разработку автоматизированного теста нужно только один раз, а
тестировщикам нужно платить всегда. Конечно, тестировщик не останется совсем
без работы, так как ему нужно будет запускать автоматизированные тесты,
анализировать результаты и описывать шаги воспроизведения неожиданного
поведения программы, если такое имеется. Но, теперь это сможет сделать один
тестировщик вместо команды.
Заказ, оплата, выполнение заказа. Предлагается следующий
порядок действий: клиент предоставляет план тестирования. План уточняется
и согласовывается разработчиками теста и клиентом. Формируется и
согласовывается цена написания автоматизированных тестов. Начинается
поэтапная разработка тестов. По завершению этапа, клиенту предоставляется
видеодемонстрация работы автоматизированного теста. Клиент оплачивает
оговоренную сумму за выполненную часть работы. Разработчик предоставляет
исходный код автоматизированных тестов и набор необходимых сторонних библиотек,
если они используются. Этапы "разработка-оплата" повторяются по мере
необходимости.
Запуск тестов производится клиентом на его оборудовании.
Программное обеспечение, необходимое для запуска
автоматизированных тестов:
.NET 1.1
Selenium RC
Firefox или
Internet Explorer (существуют некоторые проблемы при использовании
Internet Explorer)
В этом случае тест (набор тестов) может быть скомпилирован в .exe
файл.
Возможна также разработка на Java. В этом случае вам понадобится иметь
следующее программное обеспечение:
Java Runtime Environment (JRE)
Eclipse IDE
Selenium RC
Firefox или
Internet Explorer (существуют некоторые проблемы при использовании
Internet Explorer)
|