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

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

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

Обеспечение качества (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. Юзабилити тестирование

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