Что нужно знать тестировщику ПО?
Актуальность предмета по тестированию заключается в обеспечении качества, которое является неотъемлемой частью производства.
Качество продукции:
— Снижает стоимость производства
— Дает конкурентные преимущества
Обеспечение качества (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. Юзабилити тестирование