Обобщил текущие знания на основе источников, указанных в этом посте
Обеспечение качества (QA — Quality Assurance)
Контроль качества (QC — Quality Control)
Тестирование (Testing)
Принципы тестирования
Принцип 1 — Тестирование демонстрирует наличие дефектов (Testing shows presence of defects).
Т может показать, что дефекты присутствуют, но не может доказать, что дефектов нет.
Принцип 2 — Исчерпывающее тестирование невозможно (Exhaustive testing is impossible).
Полное тестирование с использованием всех входных комбинаций данных, результатов и предусловий физически невыполнимо.
Принцип 3 — Раннее тестирование (Early testing).
Следует начинать тестирование на ранних стадиях жизненного цикла разработки ПО, чтобы найти дефекты как можно раньше.
Принцип 4 — Скопление дефектов (Defects clustering).
Большая часть дефектов находится в ограниченном количестве модулей.
Принцип 5 — Парадокс пестицида (Pesticide paradox).
Если повторять те же тестовые сценарии снова и снова, в какой-то момент этот набор тестов перестанет выявлять новые дефекты.
Принцип 6 — Тестирование зависит от контекста (Testing is context depending). Тестирование проводится по-разному в зависимости от контекста. Например, программное обеспечение, в котором критически важна безопасность, тестируется иначе, чем новостной портал.
Принцип 7 — Заблуждение об отсутствии ошибок (Absence-of-errors fallacy). Отсутствие найденных дефектов при тестировании не всегда означает готовность продукта к релизу. Система должна быть удобна пользователю в использовании и удовлетворять его ожиданиям и потребностям.
Качество ПО составляет:
- функциональность - ожидание юзеров, соответствие требованиям
- UX, UI, юзабилити
- эффективность
- надежность – скорость, стабильность, безопасностью, устойчивая работа
- удобство сопровождения
- портативность
- анализ ТЗ
- smoke
- позитив
- негатив
- другие виды
- идея – заказчик (бизнес, пользователи)
- анализ требований
- проектирование (м-р проекта – ТЗ, анализ ТЗ)
- разработка и тестирование (кодировка и проверка)
- внедрение (beta тест, релиз)
- эксплуатация и поддержка
- анализ/тестирование требований (Requirement Analysis)
- планирование Т (Test planning) – определение цели, составление Т плана, определение трудоемкости, составление расписания Т.
- разработка Т (Test development) – составление Т кейсов, чек-листов, создание Т данных, Т окружения
- выполнение Т (Test execution) – выполнение Т, создание отчетов (баг-трекинг)
- оценка результатов (Test reporting) – составление отчета по Т, определение состояния ПО, оповещение заинтересованных лиц о результатах.
- ретроспектива
Этапы Т:
Этап 1. Анализ/тестирование требований (Requirement Analysis)Атрибуты требований:
- Непротиворечивость
- Однозначность
- Атомарность
- Приоритетность
- Выполнимость
- Прослеживаемость
- Модифицируемость
- Корректность
- Проверяемость
- Полнота
Методы генерирования тестов:
- Черновик-чистовик (dirty list-white list).
- Матричная раскладка (matrices).
- Блок-схемы (flowchart).
Методы отбора тестов:
- Оценка риска (risk estimate).
- Эквивалентные классы (equivalent classes).
- Пограничные значения (boundary values).
Эквивалентная область (equivalence partition) – часть области входных или выходных данных, для которой поведение компонента или системы, основываясь на спецификации, считается одинаковым.
Алгоритм использования техники эквивалентных классов:
Этап 4. Выполнение Т (Test execution) – выполнение Т, создание отчетов (баг-трекинг).
Этап 5. Оценка результатов (Test reporting) – составление отчета по Т, определение состояния ПО, оповещение заинтересованных лиц о результатах.
Этап 6. Ретроспектива.
Алгоритм использования техники эквивалентных классов:
- Определить классы эквивалентности.
- Выбрать одного представителя от каждого класса,
- Выполнить тесты.
- Выделить классы эквивалентности.
- Определить граничные значения этих классов.
- Определить к какому классу будет относиться каждая граница.
- По каждой границе нужно провести Т значений: до границы, на границе, после границы.
Этап 4. Выполнение Т (Test execution) – выполнение Т, создание отчетов (баг-трекинг).
Этап 5. Оценка результатов (Test reporting) – составление отчета по Т, определение состояния ПО, оповещение заинтересованных лиц о результатах.
Этап 6. Ретроспектива.
Виды тестирования:
по запуску кода на исполнение
Статическое тестирование
Динамическое тестирование
по доступу к коду и архитектуре
Т белого ящика
Unit T
Т серого ящика
Т чёрного ящика
UI
Т по требованиям
по уровню детализации приложения
Модульное тестирование
Unit T
Интеграционное тестирование
Т связей м/у модулям
Т связей м/у частями
Т связей м/у системами
Системное тестирование
Приёмочное тестирование
по степени автоматизации
Ручное
Автоматизированное
ПолуАвтоматизированное
по принципам работы с приложением
Позитивное
Негативное
по уровню важности тестируемых функций
Дымовое (smoke test)
Т критического пути (critical path)
Расширенное тестирование (extended)
в зависимости от целей тестирования
Функциональное Т (functional testing)
Нефункциональное Т (non-functional testing)
Тестирование производительности (performance testing)
Нагрузочное тестирование (load testing)
Тестирование масштабируемости (scalability testing)
Объёмное тестирование (volume testing)
Стрессовое тестирование (stress testing)
Инсталляционное тестирование (installation testing)
Тестирование интерфейса (GUI/UI testing)
Тестирование удобства использования (usability testing)
Тестирование локализации (localization testing)
Тестирование безопасности (security testing)
Тестирование надёжности (reliability testing)
Конфигурационное Т
Регрессионное тестирование (regression testing)
Повторное/подтверждающее тестирование (re-testing/confirmation testing)
связанные с изменениями в коде
Дымовое (smoke test)
Т сборки
Санитарное Т
Комментариев нет:
Отправить комментарий