Тестируем веб-приложения

Тестировщики – это своеобразная совесть всего слаженного организма, который создает программные продукты. То есть тестирование предназначено для выявления несоответствий требованиям и ошибок различного рода.

Иногда рядом с термином тестирования употребляют термин Quality Assurance. Но на деле данный инструмент предназначен не для поиска или исправления ошибок, а для их предотвращения, профилактики.

В идеале, тестеру хорошо бы проверять не только код или интерфейс программы, но и ТЗ, общий план проекта и бизнес-стратегию на наличие ошибок. Сама эта профессия довольно молода, она родилась в начале лихих девяностых, когда мы, наконец, развернулись лицом к клиенту и к таким показателям, как качество и скорость разработки.

Где-то, например, в программах для медицинской техники или для оборудования космодрома, этот этап работы может стоить кому-то жизни, а государству - пары миллионов долларов убытка.

Принципы деятельности специалистов-тестировщиков регламентированы в таком документе, как ISTQB, и в книге под названием «Foundations of software testing» ("Основы тестирования программного обеспечения").

Что касается организации процесса, то тестирование может проходить в режиме waterfall-подхода. В этом случае тестеры работают в завершающей стадии проекта либо по методологии agile - здесь мы получаем готовую версию после каждой итерации. Собственно итерация процесса тестирования состоит из планирования, условий, определенной истории взаимодействий, документации, многоплановой проверки и завершения с архивацией тестов.

Иерархическая структура интересна и занимательна не меньше, чем иерархия потребностей человека. Например, по размерам площадок, тесты можно разделить на:

модульные (или unit-testing, полуавтоматическое тестирование),
интеграционные (или integration testing, проверяются связи между модулями),
системные (проверка системы в целом) и
аcceptance-тест – приемочный тест (проводится в присутствии клиента при сдаче проекта).
На последнем этапе появляются альфа- и бета-версии продукта.

Согласно своему предназначению тесты принято делить на такие типы:

функциональные (что приложение делает?) / нефункциональные (как оно это делает?);
внешние (они же black box – тестирование черного ящика) / внутренние (они же структурные или white box – тестирование белого ящика);
регрессионное тестирование (проверка после внесения изменений);
тест-поддержка (она же maintenance testing - поддержка обновлений);
динамические / статические тесты.
Популярный мнемонический прием для самоконтроля в работе тестировщиков и составителей ТЗ звучит как «все должно быть SMART»:

Specific — как можно более точное описание требований;
Measureable — доступная измеряемость всех задействованных величин;
Attainable — достижимые с технической точки зрения требования;
Realizeable — практически достижимые требования в отношении трудовых ресурсов;
Traceable — точное соответствие продукта изначальной идее, цели и процесса.
К техникам тестирования черного ящика относятся:

метод группировки ошибок по так называемым эквивалентным классам (он же equivalence liartitioning);
методика boundary value analysis – анализа граничных значений, которая применяется по большей части при целочисленных значениях;
техника проверки перехода состояний (она же state transition testing);
таблица решений (или decision table testing) - минимизирует количество уникальных комбинаций;
тестирование с применением сценариев (или use-case based);
интуитивно-опытное тестирование (соответственно, exlierience-based) основано на знании о базовых ошибках;
«случайное» тестирование – методом проб и ошибок (аd-hoc или monkey);
исследовательское тестирование (оно же exliloratory testing).
К целям тестирования белого ящика, или структурных техник, относится такое явление как code coverage (покрытие кода разработчика тестами). К единицам тестирования здесь причисляют и таблицы баз данных, функции в самом коде, запросы к внешним компонентам. Единицы же в свою очередь составляют предложения, которые также нужно покрывать (это уже будет statement coverage). Следующий уровень – это покрытие разветвлений (оно же decision coverage), он включает в себя всю иерархию.

Инструментарий, которым пользуется тестировщик, он определяет сам и формирует с опытом. К основным системам можно отнести системы отслеживания ошибок, или bug/issue tracking. Это, например, Trac, Bugzilla и Mantis. Более общие системные продукты – это IBM Rational Quality Manager и HP (Mercury) Quality Center. В автоматизированном тестинге интерфейса популярны TestPartner Selenium, SilkTest, QF-Test, TestComplete, Rational Robot, Watir, HP QuickTest Pro.

Нагрузочное тестирование принято считать более сложным, но и тут есть более масштабный инструментарий (JMeter, HP LoadRunner (Mercury), IBM Rational Performance Tester, Oracle Application Quality Management) и упрощенный (hammerora, Apache ab, openload, Neoload).

Оцени публикацию:
  • 0,0
Оценили человек: 0

Похожие статьи:

Справочники и учебники:


Предложения и пожелания:
Ваше имя:
Ваш E-mail:
Сколько будет Οдин + Τри
Главная
X

youtube.com/watch?v=7hFivbgIEqk

При полном или частичном использовании материалов данного сайта, ссылка на сайт "yapro.ru" обязательна как на источник информации.
Автоматический импорт материалов и информации с сайта запрещен.
Copyrights © 2007 - 2018 YaPro.Ru

Главная » Веб-мастеру » PHP »