В большинстве случаев тестирование интернет-приложений – это более сложный процесс, чем тестирование обычного программного обеспечения. Сложность обусловлена:

  1. Специфика работы с веб-приложениями в том, что к этим приложениям открыт публичный доступ, поэтому необходимо особо тщательно организовывать защиту передаваемых пользователем данных;
  2. Архитектурой веб-приложения. Обычно приложение имеет следующую архитектуру:
    • веб-сервер;
    • сервер с приложением;
    • база данных.

Проблемы тестировании веб-приложений

Распределенные компоненты системы приумножает трудности тестирования:

  • Сложности локализации произошедшей ошибки в разных частях сетевой системы;
  • При функциональном тестировании, со стороны клиента мы видим симптомы ошибки, но не ее саму.
  • Сроки отводимые на тестирование и нечеткие/неполными требованиями к разрабатываемым продуктам;
  • Некорректные практики разработки программного обеспечения.

Мы решаем проблемы функционального тестирования веб-приложений, разрабатывая такие наборы тестов, который:

  1. Могут бы быть выполнены за отводимое на тестирование время;
  2. Обеспечивают достаточное покрытие имеющегося функционала тестами;
  3. Позволяют отбирать необходимое подмножество тестов в различных ситуациях процесса разработки (например, внесение изменений только в отдельный модуль, сокращение отводимого времени на выпуск разрабатываемой версии и так далее).

Готовы начать!

Построение качественного процесса тестирования

  1. Начинать процесс тестирования на этапе формирования требований либо самого интернет-приложения, либо добавляемого функционала;
  2. Оценка рентабельности применения автоматизации тестирования. И его дальнейшая организация в случае его применения;
  3. Ведение отчетности. Описываются различные документы для контроля и хранения результатов процесса тестирования: ТЗ на тестирование, ежедневные отчеты, отчеты полного тестирования приложения с рекомендациями по выпуску;
  4. Разделение задач. Предлагается поручать такие задачи как тест-дизайн, автоматизация тестирования, выполнение тестов различным сотрудникам отдела;
  5. Делегирование полномочий. Если работающий над конкретной задачей сотрудник лучше понимает ситуацию, чем руководитель данного проекта, то ему необходимо передать часть руководящих функций. Потому что ему будет проще найти выход из спорной ситуации и решить возможные проблемы;
  6. Использование ротации. Суть состоит в перемещении тестировщиков между отделами IT департамента для лучшего понимания процесса разработки и развития новых профессиональных навыков у сотрудников.

Инструменты и сценарии тестирования веб-приложений

Boundary Value Testing – использование граничных значений. Техника тест дизайна, призванная помогать тестировщику выбирать наиболее эффективные значения из диапазонов значений. Она применима на всех уровнях тестирования: unit, integration, system, and system-integration test levels. Эта техника довольна проста и включает в себя 3 шага: определение диапазона значений; определение границ диапазонов; создание тест кейсов (3-4 на каждую границу);

Equivalence Class Testing – разбиение на классы эквивалентности. Эта техника используется для написания тестов для входных и выходных данных, которые обрабатываются приложением одинаково или обработка которых приводит к одному и тому же результату. Она резонно уменьшает количество создаваемых тестов. Использовать ее можно на всех уровнях тестирования: unit, integration, system, and system-integration test levels;

Decision Table Testing – таблицы требований. Техника для фиксирования требований и описания дизайна приложения. Decision Tables описывают логику приложения основываясь на условиях/свойствах состояния системы. Этими таблицами очень удобно описывать бизнес-логику приложения, если на тестируемое приложение нет адекватной документации. Представление требований в простой и компактной форме служит отличной основой для тест кейсов;

Use Case Testing – тестирование вариантов использования. Варианты использования – это описание последовательности действий, которые может осуществлять система в ответ на внешние воздействия пользователей или других программных систем. В процессе тестирования варианты использования позволяют оценить точность реализации требований пользователей и позволяют провести пошаговую проверку этих требований.

State-Transition Testing – описание состояний. Эта техника, как и decision tables testing, отличный инструмент для фиксирования требований и описания дизайна приложения. Но в отличие от decision tables testing, данная техника описывает, как эти состояния приложения могут меняться. Диаграммы определяют все события, которые возникают во время работы приложения, и как приложение реагирует на эти события. Существует два вида визуального представления этих событий:

  • State-Transition Diagrams (диаграммы). В этом представлении каждое состояние системы обозначается кругом, стрелками показываются возможные переходы в другие состояния, под стрелкой сначала записывают описание события, исходящего из вне системы, а потом действие системы в ответ на это событие;
  • State-Transition Tables (таблицы). При использовании данного подхода создается таблица состоящая из четырех столбцов: текущее состояние (Current State); событие (Event); действие (Action); следующее состояние (Next State). В этой таблице определяются все возможные State-Transition варианты (и не только валидные).

Оценка риска. Суть техники состоит в том, чтобы получить информацию о вариантах использования функциональных возможностей и оценить риск по каждой из функций, которые предстоит протестировать. Эту информацию получают либо из объективных источников (например, функциональный срез приложения), либо у компетентных лиц. На ее основе каждому элементу тестируемого программного обеспечения или   уже готовым тестам присваивается свой приоритет. Это позволяет тестировать элементы с более высоким приоритетом:

  • В первую очередь;
  • Более тщательно.

Готовы начать!

Pairwise Testing – попарное тестирование. Эта техника применяется в случае наличия большого количества комбинаций, которые необходимо протестировать, причем исключение каких-либо комбинаций выглядит рискованно. И если количество комбинаций настолько велико, то, скорее всего не хватит ресурсов, чтобы спроектировать и пройти тест кейсы. При использовании Pairwise Testing проверяются комбинации пар значений переменных, а не все комбинации значений для всех переменных. Эта техника существенно уменьшает количество комбинаций для тестирования. Существуют два способа ее реализации:

Orthogonal Arrays – подход заключается в разработке двумерного массива комбинаций значений входных данных со следующими свойствами:

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

Для построения такого массива используют специальные утилиты, позволяющие генерировать ортогональные массивы на основе входных данных и количества их возможных значений;

AllPairs Algorithm – эта комбинаторная техника была специально создана для Pairwise Testing. Суть ее состоит в выборе таких комбинаций переменных, чтобы существовали все возможные комбинации значений каждой пары переменных. При использовании данного способа также используют специальные утилиты, позволяющие строить все пары переменных на AllPairs Algorithm по таблице со всеми переменными и их значениями;

Постановка задачи с использованием scrum методологий

Релизная схема разработки интернет-приложений подразумевает выход новой версии каждые 2-3 недели. В этой ситуации на тестирование уход на порядок меньше времени , чем при разработке обычного программного обеспечения. Мы организовываем процесс тестирования решая следующие проблемы:

  •    Отбор тестов (выбор правил и критериев отбора);
  •    Обработка элементов с нечеткими требованиями;
  •    Разделение задач между членами команды;
  •    Выбор метрик оценки результатов тестирования и качества работы;
  •    Формирование подходящей отчетности.
  •    Тестирование в нечетком процессе разработки.

Наши клиенты

Почему Вам стоит доверить работу нам?

timeСократите время на поиск специалистов привлекая профессионалов Getbug. Наши инженеры по тестированию станут неотъемлемой частью вашей команды и позволят получать результат с первого дня.
earnПодбор персонала – дорогостоящий процесс несущий значительные риски, в т.ч. текучесть кадров. Сотрудничество с Getbug позволит быстро сформировать профессиональную команду в проект.
effectGetbug поможет обеспечить эффективный процесс тестирования, автоматизируя и упрощая уже существующие методы, формулируя единый подход к контрою качества ваших продуктов.
bestGetbug непрерывно изучает лучшие мировые практики и уделяет особое внимание разработке собственных методологий, процессов и процедур, осуществляемых в процессе тестирования.
proИнженеры по тестированию и контролю качества с суммарным профильным опытом более 100 лет. Разнообразие навыков команды Getbug позволит вывести ваши продукты на новый качественный уровень.
team Getbug предлагает сплоченную команду тестеров, которые знают друг друга, работали вместе и способны приступить к проекту немедленно. Getbug построит сплоченную команду тестирования под ваши потребности.
creat Мы не отвергаем менеджмент качества, но для нас тестирование это творчество и креатив, такой подход помогает нам находить ошибки и уязвимости в совершенно непредсказуемых местах.
practic1 Getbug обладает собственной лабораторией с разнообразными платформами и инструментами для тестирования широкого спектра программного обеспечения и электронных устройств.

Наш блог

Plutora – управление тестированием

October 28th, 2017|Comments Off on Plutora – управление тестированием

Особенности тестирования облачных сервисов

August 24th, 2017|Comments Off on Особенности тестирования облачных сервисов

Автоматизация тестирования с TestComplete

August 10th, 2017|Comments Off on Автоматизация тестирования с TestComplete

Настройка фреймворка для тестирования в Node.js

July 27th, 2017|Comments Off on Настройка фреймворка для тестирования в Node.js

Поможем достичь желаемого качества ваших продуктов и повысить удобство пользования ими

Тестирование программного обеспечения и контроль качества

Готовы начать!