Теория тестирования ПО

Актуальность предмета по тестированию заключается в обеспечении качества, которое является неотъемлемой частью производства.

Качество продукции:
- Снижает стоимость производства
- Дает конкурентные преимущества

Обеспечение качества (QA) ПО = это процесс или результат формирования требуемых свойств и характеристик продукции по мере ее создания, а также поддержание этих характеристик при хранении, трасформировании и эксплуатации продукта.

Предпосылки для развития QA:
1) Экономическая целесообразность.
2) Конкурентные преимущества.
3) Репутационная составляющая.

Основные этапы QA:
1. Оценка уровня качества имеюихся на рынке аналогичных изделий, анализ требований покупателей.

2. Долгосрочное прогнозирование.
3. Планирование уровня качества.
4. Разработка стандартов.
5. Проектирование качества в процессе конструирования и разработки.
6. Контроль качества исходного сырья и покупных материалов.
7. Пооперационный контроль в процессе производства.
8. Приемочный контроль.
9. Контроль качества изделия в условиях эксплуатации (после продажи).
10. Анализ отзывов и рекламаций покупателей.

Процедуры внутреннего QA:
- UNIT тесты
- CODE review
- Менеджерская приемка.

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

UNIT тесты = позволяют произвести проверки на уровне самого кода, проверяя отдельные функции и методы.

CODE review = позволяет определить степень соответствия кода реализации регламентированными нормами и обеспечить его прозрачную поддерживаемость в будущем.

Менеджеская приемка = позволяет определить общее соответствие фактической реализации ожидаемому результату заказчика.

Тестирование = процесс исследования ПО с целью получения информации о качестве продукта.

"Тестирование программ может использоваться для демонстрации наличия ошибок, но оно никогда не покажет их отсутствие" (с) Дейстра 1970г.

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

Обработка обратной связи:
1. Альфа/бета - тестирование
2. Обработка заявок в техническую поддержку
3. Взаимодействие в соц.сетях/интернете
4. А-Б тесты
5. Фокус-тесты

Ручное тестирование

По объектам тестирования:
1) Функциональное тестирование
2) Тестирование UI (user interface)
3) Тестирование специфкации

По степени изолированности тестирования:
1) Модульное тестирование.
2) Компонентное тестирование.
3) Интеграционное тестирование.
4) Системное тестирование.

По моменту проведения:
- Тестирование при приемке
- Тестирование новой функциональности
- Регрессионное тестирование

По характеру тестирования:
- Позитивное
- Негативное

По степени подготовленности:
- Тестирование по дукоментации.
- Интуитивное тестирование (метод свободного поиска).

Зачем документируют баги?
1. Чтобы не забыть.
2. Чтобы собирать метрики.
3. Чтобы иметь возможноссть исправлять конкретные проблемы.

Оформление ошибок => Название - Локатор - Действие для появления - Появление - Ожидаемы результат. ==>> Где? Что делал? Что получилось? Что ожидал?

Оформление ошибок (описание).
1. Предусловия воспроизведения.
2. Последовательность действий для воспроизведения.
3. Фактический результат.
4. Ожидаемый результат.

Основные типы документации:
1) До тестирования.
2) После тестирования.

Тест план должен отвечать на вопросы:
- Что тестируем?
- Где тестируем?
- Когда тестируем?
- Как тестируем?

Чек лист = содержит список проверок необходимых в рамках тестирования.

Тест-кейс = документ, который описывает последовательность шагов, условий и параметров, необходимых для проверки объекта тестирования.

Тест-дизайн = это этап процесса тестирования ПО, на котором проектируются и создаются тестовые случаи (тест-кейсы), в соответствии с определенными ранее критериями качества и целями тестирования.

Техники тест-дизайна:
- Эквивалентное разделение
- Анализ граичных значений
- Причина/Следствие
- Предугадывание ошибки
- Исчерпывающее тестирование

Какие бывают объекты тестирования?
1. Web
2. Desktop
3. Web Services (API)
4. СУБД
5. Mobile

Критерии выбора инструмента:
1. Простота написания скриптов и их поддержка (знание языков).
2. Возможность записи скриптов (качество, удобство кода).
3. Стоимость.
4. Поддержка DATA DRIVEN TESTING (тесты управляемые данными).
5. Наличие техподдержки.
6. Наличие развитого сообщества.
7. Наличие понятных и информативных отчетов.
8. Поддержка кроссбраузерности.

Платные инструменты:
1. QuickTest Professional
WinRunner

2. Rational Robot
Rational functioal Test

3. Testcomplete

4. Microsoft VS

Бесплатные инструменты:
- Selenium
- Sikuli
- Watir; Watij; Watin
- AutoIT

Организация тестирования.
1. Фреймворки тестирования:
- JUnit, TestNG (Java)
- NUnit, Gallio (.Net)
- RSpec, Cucumber (Ruby)
- Unittest, PyUnit, nose, py.test (Python)

2. Среда разработки:
* Eclipse
* Intellij
* IDEA
* Visual Studio
* RubyMine
и т.д.

3. Система автоматической сборки:
- Maven
- Gradle
- Ant
и т.д.

4. Сервер непрерывной интеграции:
- Jenkins
- Bamboo
- TeamCity
и т.д.

Локаторы

Локатор = это строка, уникально идентифицирующая элемент веб-страницы.

- xpath = используется для поиска элементов по XPATH выражению, которое представляет собой путь к нужному элементу по XML разметке веб-страницы.

Привет: xpath="//*[@data-name='reply']"

- CSS = данный тип локаторов основан на описаниях таблиц стилей (CSS), может учитывать иерархию объектов, а также значения атрибутов, что делает его ближайшим аналогом XPATH.

Пример: css="[data-name='reply']"

Фреймворки для построения "красивых" отчетов:
1. Serenity
2. Allure

Преимущества автоматизации:
- Быстрый фидбэк о состоянии системы в целом (регулярные прогоны)
- Экономит время прогона теста
- Исключает человеческий фактор в тестировании
- Экономит время на генерации тестовых данных
- Тесты становятся автономными

Недостатки автоматизации:
1. Требует специфические знания (программист + тестировщик)
2. Требуются машинные ресурсы
3. Ограничение в проверке результатов теста
4. Нецелесообразно при частых изменениях продукта

Сложно автоматизировать:
1. Проверка содержимого видео
2. Проверку воспроизведения аудио
3. Юзабилити тестирование

Метки записи: