Теория тестирования (начальный уровень) Flashcards
Что такое Исследовательское тестирование (Exploratory Testing)?
Теория тестирования
Исследовательское тестирование — это метод тестирования ПО, который совмещает процесс обучения, проектирования тестов и само тестирование в реальном времени. Это динамичный процесс, в котором тестировщик использует свой опыт, интуицию и творческий подход для идентификации и проверки потенциальных проблем в программном продукте. Однако несмотря на то, что метод не требует написания тест-кейсов заранее, он предполгает, что каждый последующий тест выбирается на основании предыдущих. Перед началом тестирования всё равно ставится цель и прикидывается план, т.е. тестирование происходит не хаотично, а преследует конкретный результат. Полученная в ходе тестирования информация может использоваться для проектирования новых и улучшенных классических тестов.
Основные принципы исследовательского тестирования:
- Самоуправляемость: Тестировщики самостоятельно определяют, какие аспекты ПО тестировать, в какой последовательности и как глубоко.
- Личный опыт и интуиция: Важным инструментом являются знания и предчувствия тестировщика, позволяющие ему эффективно навигировать по процессу тестирования.
- Обучение в процессе тестирования: Тестировщик постоянно учится в процессе работы ПО, а затем применяет новые знания для расширения и углубления тестирования.
- Адаптивность: Методика предполагает гибкость и способность быстро адаптироваться к новой информации о программном продукте и изменениям в тестовой среде.
https://easyoffer.ru/question/7823
https://vladislaveremeev.gitbook.io/qa_bible/vidy-metody-urovni-testirovaniya/issledovatelskoe-testirovanie-exploratory-testing
Каковы преимущества Исследовательского тестирования?
Теория тестирования
Преимущества исследовательского тестирования:
- Гибкость: Возможность быстро адаптироваться к изменениям в программном обеспечении и требованиях.
- Выявление сложных дефектов: Благодаря творческому подходу и опыту тестировщиков могут быть обнаружены ошибки, которые сложно выявить с помощью традиционных методов тестирования.
- Эффективность: Может быть очень эффективным в условиях ограниченного времени, так как позволяет сосредоточиться на наиболее важных аспектах программного продукта.
- Повышение качества: Способствует более глубокому пониманию продукта и, как следствие, к повышению его качества.
Когда стоит применять Исследовательское тестирование?
Теория тестирования
Когда применять исследовательское тестирование:
- В условиях неопределённости или когда требования к продукту не полностью известны или часто меняются.
- Для дополнения других форм тестирования, например, автоматизированных тестов или тестов, основанных на требованиях.
- В рамках комплексного тестирования пользовательского интерфейса, функциональности или производительности.
Приведите пример Исследовательского тестирования.
Теория тестирования
Методика проведения тестовых туров — это один из вариантов исследовательского тестирования, предложенный Джеймсом Уиттакером. Каждый тур имеет свои конкретные цели. После изучения целей тура, тестировщик прикидывает план исследования системы и движется по нему, корректируя его в процессе при необходимости, но не отходя от основных целей. После достижения целей, все результаты фиксируются.
Примеры исследовательских туров:
- Тур, отменённый из-за дождя (The Rained-Out Tour). Идея заключается в том, чтобы начать какую-нибудь операцию в системе, а затем остановить.
- Тур “Второй бесплатно” (The TOGOF Tour). Тур, созданный для тестирования многократно повторяющихся копий одного приложения, запущенных одновременно.
Что такое Сценарное тестирование?
Теория тестирования
Сценарное тестирование — это классическое тестирование по предварительно написанным и задукоментированным сценариям.
Что такое Интуитивное тестирование (Ad-hoc Testing)?
Теория тестирования
Под ad-hoc тестированием понимается тестирование без использования спецификаций, планов и разработанных тест-кейсов: чистая импроваизация.
У ad-hoc есть своя классификация:
- Buddy testing — процесс, когда разработчик и тестировщик работаю параллельно и находят дефекты в одном модуле. Такой вид тестирования помогает тестировщику проводить необходимые проверки, а разработчику исправлять дефекты на ранних этапах.
- Pair testing — процесс, когда два тестировщика проверяют один модуль и помогают друг другу. Один может дефекты находить, другой — их документировать.
- Monkey testing — произвольное тестирование продукта с целью как можно быстрее, используя различные вариации входных данных, нарушить работу программы или вызвать её сбой.
Какая бывает документация?
Теория тестирования
Документация делится на три вида:
1) Пользовательская и маркетинговая документация — руководства, инструкции и справочные материалы, предназначенные для конечных пользователей.
* Примеры использования системы:
* Файл-образец
* Предзаполненные поля в форме ввода
* Примеры вызова API-методов
* Инструкции по установке
* Обучающие материалы:
* Статьи
* FAQ
* Презентации
* Маркетиговые материалы:
* Упаковочные текст и графика
2) Техническая документация — материалы, описывающие архитектуру, функциональность и реализацию программного обеспечения, предназначенные для разработчиков и тестировщиков.
* Требования
* Документация интерфейса взаимодействия:
* Письма от системы
* Сообщения об ошибках
* Pop-up сообщения
3) Регламентирующая документация — документы, содержащие требования к продукту, стандарты и процедуры, которым должно соответствовать программное обеспечение.
* Пользовательское соглашение/оферта
https://sky.pro/media/kak-provodit-testirovanie-dokumentaczii/
Как тестировать документацию?
Теория тестирования
Документацию можно тестировать на следующие характеристики:
* Полнота — весь ли функционал описан?
* Однозначность — требования должны трактоваться всеми одинакова.
* Непротиворечивость —требования не должны противоречить сами себе.
* Необходимость — документация должна быть краткой, но ёмкой.
* Осуществимость — реализуем ли описанный функционал в принципе?
* Тестируемость — можно ли протестировать описанный функционал?
Какие бывают виды требований?
Теория тестирования
- Техническое задние (ТЗ) — сухое описание того, как система должна работать, что уметь делать и как реагировать на ошибки.
- Вариант использования — описание через взаимодействие пользователя с системой.
- Пользовательский сценарий — тоже описание через взаимодействие пользователя с системой, только содержит больше нюансов, к примеру, тип и характеристики пользователя, а так же его мотивацию. В большей степени похоже больше на историю, чем на сухое описание.
-
Графика:
- Блок-схема
- Диаграмма состояний и переходов
- Скриншот с пояснениями
- Схема движения транзакций
- И т.д.
Что такое частное техническое задание? Для чего оно нужно?
ЧТЗ (частное техническое задание) – создается на основе ТЗ. Обычно содержит полное описание конкретной части разрабатываемого продукта и ВИ (варианты использования, сценарии использования предмета разработки пользователями, макеты разрабатываемой части предмета разработки, его логику и суть).
Почему необходимо?
- Помогает разработчикам реализовать разрабатываемый продукт точно так, как задумывалось. Помогает понять логику и правила оформления.
- Помогает новым сотрудникам разобраться в крупных и масштабных проектах, так как на некоторые системы нужны недели изучения. Имея под рукой ЧТЗ, сотрудник с легкостью сможет найти в нем необходимую информацию, сразу приступив к тестированию. Не нужно будет привлекать других сотрудников, знающих продукт, тем самым отвлекая их от работы. Очевидная экономия времени!
- Дает возможность примерно оценить трудозатраты на разработку и тестирование еще до начала работ.
- Помогает тестировщикам создать ЧЛ и тест-кейсы до начала работ и тестирования.
https://software-testing.ru/library/around-testing/requirements/2494-purpose-of-test-documentation
Что такое тестовая документация (артефакты тестирования)?
Тестовая документация — это совокупность документов, которые описывают процесс тестирования программного обеспечения. Она создаётся для того, чтобы определить, как и что будет тестироваться, какие задачи и результаты ожидаются, а также фиксирует результаты самого тестирования. Тестовая документация важна для организации процесса тестирования, контроля качества и отслеживания прогресса в проекте.
Какие есть виды тестовой документации?
Теория тестирования
Виды тестовой документации:
- Документы описания проверок:
- План тестирования (Test Plan)
- Тестовый сценарий (Test Case)
- Тестовый набор (Test Suite)
- Чек-лист
- Остальные документы:
- Протокол тестирования (Test Log)
- Отчёт о тестировании (Test Report)
- Отчёт о дефектах (Defect Report)
- Тестовые данные (Test Data)
https://easyoffer.ru/question/7821
Что такое тест-план?
Тест-план — это стратегический документ, который описывает общий подход к тестированию программного обеспечения. Он включает цели, задачи, объём, методы и ресурсы, необходимые для тестирования. Тест-план помогает организовать и структурировать процесс тестирования, а также обеспечивает понимание всех аспектов тестирования среди участников команды. Тест-план обычно составляется тест-менеджером или лидом команды тестировщиков (Test Lead).
Чем тест-план отличается от набора тестов?
Тест-план — это глобальный документ, описывающий организацию и стратегию тестирования, а набор тестов — это совокупность конкретных тест-кейсов, которые реализуют тестирование той или иной части системы.
Что такое отчёт о тестировании?
Отчёт о тестировании (Test Report) — это документ, который содержит информацию о проведённых тестах, их результатах и общей оценке качества тестируемого программного обеспечения. Он подготавливается по итогам завершённого цикла тестирования и помогает заинтересованным сторонам (менеджерам, разработчикам, клиентам и т.д.) получить чёткое представление о текущем состоянии продукта, выявленных проблемах и уровне готовности продукта к релизу.
Как определить, какую именно документацию необходимо внедрить в проект?
-
На проекте до 15 человек (проекты низкой сложности):
- техническое задание (предотвращает неверное понимание задачи разработчиками, т. к. документации нет);
- чек-листы (легко поддерживать, не отнимают много времени);
- отчеты в виде краткого письма или отписки в специальном сервисе ведения проектов, с указанием критических багов для выпуска.
-
На проекте от 15 до 50 человек (проекты средней сложности):
- техническое задание;
- чек-листы;
- тест-кейсы;
- база знаний (например, в Wiki);
- отчеты в виде письма с приложенным пройденным ЧЛ с указанием критических багов.
-
Большой проект – от 50 человек и больше (проекты высокой сложности):
- техническое задание;
- частное техническое задание;
- чек-листы;
- тест-кейсы;
- база знаний (например, в Wiki);
- медиа-материалы;
- отчеты в принятом в компании виде (обычно, в виде письма с подробными графиками и приложенными файлами);
- прочее (зависит от типа, целей и нужд компании).
https://software-testing.ru/library/around-testing/requirements/2494-purpose-of-test-documentation
Какие типы тестирования вы можете назвать?
- По доступности кода:
- Black box
- Grey box
- White box
- По позитивности:
- Позитивные
- Негативные
- По целям (по объекту):
- Функциональное
- Нефункциональное:
- Производительности (performance testing)
- Нагрузочное тестирование (load testing, capacity testing):
- Стресс-тестирование (stress testing)
- Надёжности (reliability testing)
- Usability (удобства использования)
- Тестирование GUI
- Доступности (accessibility testing)
- Безопасности
- Локализации (localization testing)
- Совместимости (compatibility testing, interoperability testing)
- По исполнителям:
- Альфа-тестирование
- Бета-тестирование
- Связанное с изменениями:
- Регрессионное (Regression testing)
- Тест работоспособности (Sanity testing)
- Дымовое (Smoke testing)
- По степени автоматизации:
- Ручное
- Автоматизированное
- Полуавтоматизированное
- По исполнению кода (по состоянию системы):
- Статическое
- Динамическое
- По формальности документирования:
- Сценарное тестирование
- Исследовательское тестирование
- Интуитивное тестирование (Ad-hoc testing)
- По уровням тестирования:
- Компонентное или Модульное (Component testing, Unit testing)
- Интеграционное (Integration testing)
- Системное (System testing)
- Приемочное (Acceptance testing)
https://vladislaveremeev.gitbook.io/qa_bible/vidy-metody-urovni-testirovaniya/osnovnye-vidy-testirovaniya-po
Что такое тестирование?
Теория тестирования
Проверка продукта на соответствие требованиям.
Тестирование - процесс в рамках жизненного цикла разработки программного обеспечения, который оценивает качество компонента или системы, а также связанных с ними рабочих продуктов. [ISTQB Glossary]
Тестирование программного обеспечения — процесс анализа программного средства и сопутствующей документации с целью выявления дефектов и повышения качества продукта. [Святослав Куликов]
Тестирование ПО — проверка соответствия между реальным и ожидаемым поведением программы [Что-то из интернета]
Контроль качества (QC) - набор действий, предназначенных для оценивания качества компонента или системы. [ISTQB Glossary]
Обеспечение качества (QA) - активности, направленные на обеспечение уверенности в том, что требования к качеству будут выполнены [ISTQB Glossary]
Давайте разберемся на примере создания мобильного приложения, потому что определения не всегда отражают суть:
- В рамках тестирования мы выполним проверки и задокументируем дефекты, убедимся, что продукт соответствует требованиям.
- В рамках контроля качества мы проанализируем полученные данные и убедимся, что соблюдены все требования, предъявляемые к качеству как продукта, так и самого процесса. Мы должны убедиться, что уровень качества нашего продукта высокий и он готов к релизу.
- В рамках обеспечения качества мы формируем процесс QA для соответствия стандартам качества на всех этапах SDLC, еще до этапа создания нашего продукта, который будет минимизировать количество дефектов и предупреждать их.
Основные отличия процессов:
Контроль качества и тестирование (как его часть) направлены на продукт, а обеспечение качества на процесс.
Тестирование и контроль качества являются контролирующими мерами, а обеспечение качества - превентивными, или предупреждающими.
https://stepik.org/lesson/1036731/step/3?auth=login&unit=1045216
https://easyoffer.ru/question/7800
Зачем тестировать ПО?
Теория тестирования
Чтобы убедиться, что продукт работает как задумано, а так же найти возможные недостатки для их последующего устранения.