Theory Flashcards
Learn qa theory
Тестирование ПО
Процесс анализа программного средства и сопутствующей документации с целью выявления
дефектов и повышения качества продук
Качество программного обеспечения
Это степень, в которой ПО обладает требуемой комбинацией свойств.
Разница Quality Assurance и Quality Control
- QA – это проактивный процесс, направленный на предотвращение возможных дефектов. Он выполняется во время разработки продукта. Основное внимание уделяется предотвращению появления дефектов в процессе разработки продукта.
- QC – это реактивный процесс, целью которого является подтверждение качества конкретного продукта посредством тестирования, выявления и устранения неисправностей. Он проводится после того, как продукт был разработан. Основное внимание уделяется тестированию готового продукта, выявлению и устранению дефектов.
Модели разработки ПО
Водопадная
V-образная
Итерационная инкрементальная
Гибкая модель (Agile)
Жизненный цикл разработки ПО
- Идея
- Сбор и анализ требований
- Проектирование. Дизайн и архитектура
- Разработка
- Тестирование
- Внедрение и сопровождение
- Вывод из эксплуатации
Жизненный цикл тестирования
- Анализ требований
- Уточнение критериев приемки
- Уточнение стратегии тестирования
- Разработка тест-кейсов
- Выполнение тест-кейсов
- Фиксация найденных багов
- Отчет с результатами тестирования
Тест план
документ, описывающий и регламентирующий перечень работ по тестированию, а также соответствующие техники и подходы, стратегию, области ответственности, ресурсы, расписание и ключевые даты.
Разделы тест-плана
- Цель (purpose)
- Области, подвергаемые тестированию (features to be tested)
- Области, не подвергаемые тестированию (features not to be tested)
- Тестовая стратегия (test strategy) и подходы (test approach)
- Критерии (criteria)
- Приемочные критерии, критерии качества (acceptance criteria)
a. Критерии начала тестирования (entry criteria)
b. Критерии приостановки тестирования (suspension criteria)
c. Критерии возобновления тестирования (resumption criteria)
d. Критерии завершения тестирования (exit criteria) - Ресурсы (resources) (необходимое ПО, аппаратные ресурсы, человеческие ресурсы, временные ресурсы, финансовые ресурсы)
- Расписание (test schedule)
- Роли и ответственность (roles and responsibility)
- Оценка рисков (risk evaluation)
- Документация (documentation)
- Метрики (metrics)
Тестовая документация
- Тест-план
- Чек-лист
- Тест кейс
- Тест репорт
- Requirement Traceability Matrix
Требование
описание того, какие функции и с соблюдением каких условий должно выполнять приложение в процессе решения полезной для пользователя задачи
Свойства качественных требований
- Завершённость (completeness)
- Корректность (correctness)
- Непротиворечивость (consistency)
- Недвусмысленность (ambiguousness)
- Проверяемость (verifiability)
Как анализировать требования?
Взаимный просмотр (беглый просмотр, технический просмотр, формальная инспекция) Задавать вопросы, писать тест-кейсы и рисовать рисунки, прототипирование
Чек-лист
Список, содержащий ряд необходимых проверок во время тестирования программного продукта
Тест-кейс
Набор тестовых входных данных, условий выполнения и ожидаемых результатов, разработанных с конкретной целью, такой как проверка некоторого пути выполнения программы или проверка соответствию некоторому требованию.
Принципы тестирования
- Тестирование показывает наличие дефектов.
- Исчерпывающее тестирование невозможно.
- Раннее тестирование.
- Скопление дефектов.
- Парадокс пестицида.
- Тестирование зависит от контекста.
- Заблуждение об отсутствии ошибок.
Верификация и Валидация
Процесс верификации. Это статическая практика проверки документов, дизайна, архитектуры, кода и так далее. Это значит, что
процесс верификации проходит без запуска кода. Верификация всегда отвечает на вопрос “делаем ли мы
продукт правильно?”. Эта проверка связана с тем, что мы убеждаемся в том, что система хорошо
спроектирована и безошибочно. Верификация всегда происходит ДО валидации.
Процесс валидации - это процесс оценки конечного продукта, когда необходимо проверить:
соответствует ли программное обеспечение ожиданиям и требованиям клиента. Это динамический процесс, в
отличии от верификации. Этот процесс всегда включает в себя запуск кода программы и отвечает на вопрос
“делаем ли мы правильный продукт?”. Процесс валидации всегда происходит ПОСЛЕ верификации, поэтому на
этапе валидации можно уловить ошибки, которые процесс верификации не позволил нам найти.
Классификация тестирования по уровням
- Unit тестирование (компонентное, модульное)
- Интеграционное тестирование
- Системное тестирование
- Приёмочное тестирование