Теория тестирования (начальный уровень) Flashcards
(49 cards)
Что такое Исследовательское тестирование (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
Зачем тестировать ПО?
Теория тестирования
Чтобы убедиться, что продукт работает как задумано, а так же найти возможные недостатки для их последующего устранения.
Какие этапы тестирования?
Теория тестирования
1) Инициация
2) Выявление требований прямых и косвенных
3) Создание тест-кейсов
4) Отбор тест-кейсов
5) Проведение проверок
6) Фиксация результатов
7) Анализ результатов
8) Передача результатов о соответствии продукта требованиям
https://easyoffer.ru/question/8134
Какие уровни тестирования знаете?
Теория тестирования
Уровни тестирования:
* Модульное
* Интеграционное
* Системное
* Приёмочное
Модульное тестирование (Unit Testing)
Это процесс проверки отдельных компонентов программного обеспечения, таких как функции, методы или классы. Цель этого уровня тестирования — убедиться, что каждый отдельный компонент работает корректно в изоляции от остальной части системы.
Пример: Проверка функции сложения в программе калькулятора.
Интеграционное тестирование (Integration Testing)
На нем проверяется взаимодействие между различными модулями или компонентами системы. Цель интеграционного тестирования — обнаружить дефекты в взаимодействии и передаче данных между различными частями программы.
Пример: Проверка того, как модуль калькулятора обрабатывает данные, полученные от пользовательского интерфейса.
Системное тестирование (System Testing)
Проверяется вся система в целом. Системное тестирование направлено на выявление дефектов в комплексе, включая требования к функциональности, надёжности, производительности и безопасности.
Пример: Тестирование веб-приложения в различных браузерах и на разных устройствах.
Приемочное тестирование (Acceptance Testing)
Это финальный этап тестирования, на котором проверяется, соответствует ли программа ожиданиям и требованиям конечных пользователей.
Пример: Бета-тестирование программы с участием реальных пользователей.
https://easyoffer.ru/question/7802
Какие техники тест-дизайна знаете?
Теория тестирования
Чёрный ящик (Black-box techniques):
- Эквивалентное разбиение (Equivalence Partitioning): Разделение входных данных на группы (классы эквивалентности), которые можно обрабатывать одинаково. Достаточно тестировать по одному представителю от каждой группы.
- Граничные значения (Boundary Value Analysis): Тестирование на значениях на границах или около границ классов эквивалентности.
- Комбинаторные
- Попарное тестирование (Pairwise testing) - тестирование всех комбинаций пар параметр-значение
- Таблицы решений (Decision Table Testing): тестировщик определяет условия (входы) и результирующие действия системы (выходы). Пары условий и действий образуют строки таблицы, при этом условия указываются сверху, а действия – снизу.
- Тестирование переходов состояний (State Transition Testing): Проверка переходов между различными состояниями системы на основе событий или условий.
- Use Case Testing (Случаи использования): Создание тестов на основе сценариев использования программы пользователями.
Техники основанные на опыте (Experience-based techniques):
- Предугадывание ошибки (Error Guessing): Основано на опыте и интуиции тестировщика, который предполагает, где могут возникнуть ошибки.
- Тестирование на основе чек-листов (Checklist-based Testing): Использование чек-листов, основанных на предыдущем опыте, для проверки определённых аспектов программы.
- Исследовательское тестирование (Exploratory testing)
- Произвольное тестирование (Ad-hoc testing)
- Attack Testing: Software attacks (sometimes called fault attacks) are focused on trying to induce a specific type of failure. When performing attack testing, you should consider all areas of the software and its interaction with its environment as opportunities for failures. Attacks target the user interface, the operating system, interfacing systems, database interfaces, APIs, and any file system interaction. Anytime data is being exchanged, it is potentially vulnerable to a failure and consequently is an excellent target for an attack.
Белый ящик (White-box techniques):
- Тестирование путей (Path Testing): Анализ выполнимых путей через код для проверки всех возможных путей выполнения.
- Тестирование на основе управляющих структур (Control Structure Testing): Фокусируется на логических операциях и условиях в коде, проверяя все условные операторы.
https://vladislaveremeev.gitbook.io/qa_bible/test-dizain
https://easyoffer.ru/question/7819
Что такое техника анализа классов эквивалентности?
Теория тестирования
Техника при которой разделяются все возможные входные данные на группы или классы таким образом, чтобы все значения внутри одного класса считались эквивалентными.
Принципы:
- Определение эквивалентных классов: Входные данные или условия тестирования разделяют на классы, внутри которых система должна вести себя одинаково. Эти классы могут быть как допустимыми (валидными), так и недопустимыми (невалидными).
- Выбор представителей: Для каждого эквивалентного класса выбирается хотя бы один представитель (тестовый случай), который будет использован в тестировании.
- Тестирование: Проводится тестирование на основе выбранных представителей каждого класса. Результаты тестирования для представителя класса экстраполируются на весь класс.
https://easyoffer.ru/question/7825
Что такое техника анализа граничных значений? В чем ценность этой техники?
Теория тестирования
Суть: Проверяются все значения на границах эквивалентных классов
Метод анализа граничных значений является продолжением метода эквивалентного разбиения, но может быть применим, только если классы состоят из упорядоченных числовых значений. Максимальное и минимальное значение класса являются его границами [Beizer 1990]. Некорректное поведение более вероятно на границах класса, чем внутри класса. [ISTQB CTFL Syllabus 2018]
Почему она важна:
- Высокая эффективность: большое количество ошибок с минимальным количеством тестов.
- Экономия времени и ресурсов: Сосредоточение усилий на наиболее вероятных местах возникновения ошибок - сокращает время на тестирование и оптимизирует использование ресурсов.
- Улучшение качества продукта: Гарантия корректной обратоки данных на границах значений
https://easyoffer.ru/question/7835
https://stepik.org/lesson/1036738/step/6?auth=login&unit=1045223