
Профессия тестировщика набирает всё больший и больший оборот востребованности. В данной статье, я опишу своё виденье, какими навыками и знаниями должен обладать квалифицированный тестировщик, которому можно доверить работу над проектом.
Актуальность предмета по тестированию заключается в обеспечении качества, которое является неотъемлемой частью производства.
Качество продукции:
- Снижает стоимость производства
- Дает конкурентные преимущества
Обеспечение качества (QA) ПО = это процесс или результат формирования требуемых свойств и характеристик продукции по мере ее создания, а также поддержание этих характеристик при хранении, трасформировании и эксплуатации продукта.
Предпосылки для развития QA:
- Экономическая целесообразность.
- Конкурентные преимущества.
- Репутационная составляющая.
Основные этапы QA:
- Оценка уровня качества имеюихся на рынке аналогичных изделий, анализ требований покупателей.
- Долгосрочное прогнозирование.
- Планирование уровня качества.
- Разработка стандартов.
- Проектирование качества в процессе конструирования и разработки.
- Контроль качества исходного сырья и покупных материалов.
- Пооперационный контроль в процессе производства.
- Приемочный контроль.
- Контроль качества изделия в условиях эксплуатации (после продажи).
- Анализ отзывов и рекламаций покупателей.
Процедуры внутреннего QA:
- UNIT тесты
- CODE review
- Менеджерская приемка.
Тестирование документации включает в себя проверку документации на:
- логику
- полноту
- функциональность
- однозначность
UNIT тесты = позволяют произвести проверки на уровне самого кода, проверяя отдельные функции и методы.
CODE review = позволяет определить степень соответствия кода реализации регламентированными нормами и обеспечить его прозрачную поддерживаемость в будущем.
Менеджеская приемка = позволяет определить общее соответствие фактической реализации ожидаемому результату заказчика.
Тестирование= процесс исследования ПО с целью получения информации о качестве продукта.
«Тестирование программ может использоваться для демонстрации наличия ошибок, но оно никогда не покажет их отсутствие» (с) Дейстра 1970г.
Типизация тестирования может делиться по: — объекту тестирования — знанию тестируемого объекта — степени автоматизации — степени изолированноти компонентов — моменту проведения испытаний — характеру сценариев — степени подготовленности к испытаниям
Обработка обратной связи:
- Альфа/бета — тестирование
- Обработка заявок в техническую поддержку
- Взаимодействие в соц.сетях/интернете
- А-Б тесты
- Фокус-тесты
Ручное тестирование
По объектам тестирования: 1) Функциональное тестирование 2) Тестирование UI (user interface) 3) Тестирование специфкации
По степени изолированности тестирования:
- Модульное тестирование.
- Компонентное тестирование.
- Интеграционное тестирование.
- Системное тестирование.
По моменту проведения:
- Тестирование при приемке
- Тестирование новой функциональности
- Регрессионное тестирование
По характеру тестирования:
- Позитивное
- Негативное
По степени подготовленности:
- Тестирование по дукоментации.
- Интуитивное тестирование (метод свободного поиска).
Зачем документируют баги?
- Чтобы не забыть.
- Чтобы собирать метрики.
- Чтобы иметь возможноссть исправлять конкретные проблемы.
Оформление ошибок => Название — Локатор — Действие для появления — Появление — Ожидаемы результат. ==>> Где? Что делал? Что получилось? Что ожидал?
Оформление ошибок (описание).
- Предусловия воспроизведения.
- Последовательность действий для воспроизведения.
- Фактический результат.
- Ожидаемый результат.
Основные типы документации:
- До тестирования.
- После тестирования.
Тест план должен отвечать на вопросы:
- Что тестируем?
- Где тестируем?
- Когда тестируем?
- Как тестируем?
Чек лист = содержит список проверок необходимых в рамках тестирования.
Тест-кейс = документ, который описывает последовательность шагов, условий и параметров, необходимых для проверки объекта тестирования.
Тест-дизайн = это этап процесса тестирования ПО, на котором проектируются и создаются тестовые случаи (тест-кейсы), в соответствии с определенными ранее критериями качества и целями тестирования.
Техники тест-дизайна:
- Эквивалентное разделение
- Анализ граичных значений
- Причина/Следствие
- Предугадывание ошибки
- Исчерпывающее тестирование
Какие бывают объекты тестирования?
- Web
- Desktop
- Web Services (API)
- СУБД
- Mobile
Критерии выбора инструмента:
- Простота написания скриптов и их поддержка (знание языков).
- Возможность записи скриптов (качество, удобство кода).
- Стоимость.
- Поддержка DATA DRIVEN TESTING (тесты управляемые данными).
- Наличие техподдержки.
- Наличие развитого сообщества.
- Наличие понятных и информативных отчетов.
- Поддержкакроссбраузерности.
Платныеинструменты:
- QuickTest Professional
WinRunner - Rational Robot
Rational functioal Test - Testcomplete
- 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’]»
Фреймворки для построения «красивых» отчетов:
- Serenity
- Allure
Преимущества автоматизации:
- Быстрый фидбэк о состоянии системы в целом (регулярные прогоны)
- Экономит время прогона теста
- Исключает человеческий фактор в тестировании
- Экономит время на генерации тестовых данных
- Тесты становятся автономными
Недостатки автоматизации:
- Требует специфические знания (программист + тестировщик)
- Требуются машинные ресурсы
- Ограничение в проверке результатов теста
- Нецелесообразно при частых изменениях продукта
Сложно автоматизировать:
- Проверка содержимого видео
- Проверку воспроизведения аудио
- Юзабилити тестирование