четверг, 9 июня 2022 г.

Тестирование. 2-ой уровень

Вводная от себя

К сожалению информация во втором уровне оказалась крайне не последовательная, слабо структурированная и местами вообще непонятная. Не объясняются базовые понятия, которые заложены в названиях глав (уроков).
Поэтому придется искать дополнительную информацию и добавлять её к материалу.

Тест-анализ. Исследование ПО.

Материалы курса 2-го уровня.

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


Анализ системы помогает изучить систему, основывается на изучении составных частей системы. 

Тест-анализ позволяет проверить все составляющие тестирования.


Системный анализ базируется на типах ПО: ERP, SRM, SCM, WMS; настольные, мобильные, web, облачные (SaaS); медицинское, банковское, игровое, телекоммуникационное и пр. и т.д. 

Декомпозиция - это рассмотрение сложной системы как множества её частей.

Декомпозиция помогает:
  • понять структуру системы,
  • выявить особенности частей системы,
  • определить связи между частями системы.





Как можно производить декомпозицию:



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

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

Декомпозиция требований - то м чего нужно начинать в первую очередь.


Доп. материалы:

Декомпозиция — научный метод, использующий структуру задачи и позволяющий заменить решение одной большой задачи, решением серии меньших задач, пусть и взаимосвязанных, но более простых. (wikipedia)

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

Декомпозиция системы чаще всего представляется в виде иерархического дерева, вершина которого – сама система, а уровни – выделенные подсистемы.

https://pointschool.ru/dekompozirui-eto/ - здесь более менее статья про декомпозицию.
Это научный метод разделения или разбиения чего-либо на части. Применительно к сфере тестирования мы используем декомпозицию в тест-анализе и исследовательском тестировании продукта.

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

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

Применительно к тестированию продуктов декомпозицию можно рассматривать по нескольким принципам:
  • Функциональная декомпозиция
  • Компонентная декомпозиция
  • Декомпозиция графического пользовательского интерфейса (GUI)
  • Декомпозиция этапов взаимодействия
Далее в статье разбираются подробнее эти принципы.

Доменное тестирование и комбинации параметров

Материалы курса 2-го уровня.

Тест-дизайн - всё что относится к тестовой документации: чек-листы, тест-кейсы, тест планы, стратегии.


Тест-дизайн
Техники тест-дизайна:
  • Тестирование Классами Эквивалентности (Equivalence Class Testing).
  • Тестирование Граничных Значений (Boundary Value Testing).
  • Таблица Принятия Решений (Decision Table Testing).
  • Тестирование Состояний и Переходов (State-Transition Testing).
  • Метод Парного Тестирования (Pairwise testing).
  • Доменный анализ (Domain Analysis Testing).
  • Сценарий использования (Use Case Testing).
В статье дается расшифровка каждой техники.
+можно посмотреть здесь

Метод комбинаторного покрытия условий.
Критерий комбинаторного покрытия условий удовлетворяет также и критериям покрытия решений, покрытия условий и покрытия решений/условий.

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

Доменное тестирование.
Доменное тестирование.
Техника заключается в комбинации эквивалентного разбиения и анализа граничных значений.

Доменное тестирование (domain analysis) — методика разработки тестов, относящаяся к методу черного ящика, использующаяся для определения действенных и эффективных тестовых сценариев в случаях, когда множественные параметры могут или должны быть протестированы одновременно. Методика базируется и обобщает методы эквивалентного разбиения и анализа граничных значений.

Доменное тестирование — это вид тестирования, направленный на анализ различных значений, поиск их взаимосвязи и составление эффективных тестов.

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

Ещё про доменное тестирование:

Материалы курса 2-го уровня.



Fuzzing - высоко-негативная техника тестирования, при которой вместо ожидаемых валидных входных данных в программу нужно ввести случайные или невалидные данные нарочно.

Материалы курса 2-го уровня.

Тестовая комбинаторика

Тестовая комбинаторика - методика формирования тестов, при котором тест могут покрывать куда большее количество параметров и области их применения, нежели 1 к 1. Оптимальный набор комбинаций данных для достижения полного уровня покрытия.

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


Что делать дальше с этими сочетаниями? - Разбить по техникам тестирования. 

Позитивное тестирование - по требованиям.
Негативное тестирование - не по требованиям.
Исследовательское тестирование - при отсутствии требований, для изучения продукта тестирования на основании опыта и пр. источников.

Техники тестовой комбинаторики
  • минимальной проверки
  • перебор значений
  • атомарные проверки
  • попарное тестирование
  • метод взаимосвязанных проверок










Материалы курса 2-го уровня.

Тестирование состояний и переходов

Что такое состояние и что такое переходы? И то и другое определяется через диаграммы и через таблицы. Диаграммы выводятся из требований и тест-дизайна. А таблица исходит из диаграмм и отображает все состояния приложения и переходы между каждым из состояний.

Т.е. таблица отвечает на вопросы: что из себя представляет программа в определенном промежутке времени и что нужно для преобразования состояния программы в другую форму с иными возможностями. Таблица также может отображать различные роли состояний, за что состояние ответственно и где они применяются. 

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

Как не пропустить все переходы?
Для этого нужно составить таблицу, в которой информация будет отображена. Таблица состоит из столбцов:
  • текущее состояние
  • событие
  • действие
  • следующее состояние
  • условие
null - обозначает точка входа и точка выхода, но лучше отображать по разному, чтобы было два разных состояния инициации и финала.

Материалы курса 2-го уровня.

Тест-анализ на основе бизнес-логики

Требования - то:
  1. условия или возможности программного продукта, необходимые пользователю для решения определенных задач или достижения определенных целей.
  2. условия или возможности программного продукта, которые должны быть достигнуты для выполнения контракта, стандартов, спецификации или других формальных документов.

Таблицы принятия решений  - техника тестирования черного ящика. Таблицы строятся из множества наборов условий; выполнение конкретного набора условий приводит к определенному результату.
Таблица принятия решений помогает:
  • упорядочить и задокументировать сложную логику приложения;
  • протестировать все комбинации условий и состояний.










Тест анализ на основе рисков (предугадывание ошибок)

Виды ошибок








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

Стратегия тестирования



Этапы тестирования:
1. Анализ документации
2. Анализ продукта
3. Подготовка к тестированию (тест-дизайн)
4. Тестирование



Далее для каждого типа заполняется табица:










Нефункциональное тестирование:








Оценка эффективности тестов




 






Комментариев нет:

Отправить комментарий