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

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

Иногда рядом с термином тестирования употребляют термин 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

Новые заметки:

Про что мы забываем когда делаем оценку задачи по времени

Список вопросов для собеседования разработчика по телефону

Symfony2 авторизация без Doctrine2 для чайника

Phpstorm7 LiveEdit

Жесткий хабр или не хабр, тогда кто?

Яндекс.Деньги мошенничество

Как узнать какие страницы в поиске яндекса или это секрет

Последние комменты:

Yapro CMS:

Здравствуйте, Гость | Войти | Регистрация | Карта сайта | RSS ленты | Ошибка в тексте? Выделите её мышкой и нажмите: Ctrl + Enter

youtube.com/watch?v=7hFivbgIEqk

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

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