Что такое тестирование ПО и кто такой тестировщик
Тестирование программного обеспечения – это проверка того, что программа делает обещанное и разумно ведёт себя, когда её используют не по правилам. Проверки придумывают заранее, проходят по ним и описывают каждое расхождение с требованиями, чтобы его могли воспроизвести и исправить.
- QA ≠ QC
- разные вещи, и на собеседовании это спрашивают
- 4 уровня
- модульный, интеграционный, системный, приёмочный
- 12 терминов
- словарь из вакансий – ниже на странице
Определение простыми словами
Тестирование – это проверка соответствия программы требованиям и поиск ситуаций, в которых она ведёт себя не так, как ожидается. Ожидание берётся не из головы: его источник – требования, документация, здравый смысл пользователя и поведение похожих систем.
Тестирование не доказывает, что ошибок нет. Оно показывает, что ошибки есть, и уменьшает риск того, что дорогая ошибка доживёт до пользователя. Это один из семи принципов тестирования, и именно из него следует всё остальное: приоритеты, границы проверок и то, почему полное тестирование невозможно.
Как выглядит рабочий день
Утро обычно начинается с того, что пришло за ночь: новые задачи, исправленные дефекты, результаты ночного прогона. Дальше идёт проверка исправлений, проверка новой функциональности и регрессия – повторные проверки того, что уже работало.
Между этим тестировщик читает требования к тому, что будет делаться на следующей неделе, и задаёт вопросы, пока функциональность ещё не написана. Вопрос, заданный вовремя, дешевле найденного потом дефекта, и это самая недооценённая часть работы.
QA, QC и тестирование
Три слова, которые в вакансиях стоят рядом, а означают разное. QA (quality assurance) – это про процесс: как в команде устроена разработка, чтобы дефектов появлялось меньше. QC (quality control) – про результат: проверка готового продукта на соответствие требованиям. Тестирование – конкретная часть QC, то есть сами проверки.
На практике границы размыты, и в маленькой команде один человек делает всё сразу. Но на собеседовании разницу спрашивают почти всегда, и путаница в ней читается как незнание основ.
Виды, уровни и типы проверок
Уровни отвечают на вопрос, что именно проверяется: отдельный модуль, связка модулей, система целиком или готовность системы для заказчика. Типы отвечают на вопрос, какое свойство проверяется: функциональность, скорость, удобство, безопасность, совместимость.
Методы описывают, сколько известно о внутреннем устройстве: чёрный ящик – только поведение снаружи, белый – код, серый – частичное знание. Эти три оси независимы, поэтому одна и та же проверка одновременно относится к системному уровню, функциональному типу и методу чёрного ящика.
Ручное и автоматизированное
Ручное тестирование – это человек, который проходит сценарий и смотрит на результат. Автоматизированное – программа, которая проходит тот же сценарий вместо человека и сравнивает результат с ожидаемым.
Автоматизация не заменяет ручное тестирование, а забирает у него повторяющееся. Новая функциональность, исследование незнакомого экрана и оценка удобства остаются за человеком: автотест проверяет ровно то, что в него заложили, и не замечает, что кнопка уехала за край экрана.
Словарь из вакансий
Двенадцать слов, которые встречаются в описаниях вакансий junior-тестировщика чаще прочих.
Баг-репорт
Описание дефекта: шаги, ожидаемый и фактический результат, окружение.
Тест-кейс
Проверка по шагам с заранее известным ожидаемым результатом.
Чек-лист
Список того, что нужно проверить, без подробных шагов.
Регрессия
Повторная проверка того, что работало, после изменений в коде.
Смоук
Короткая проверка самого важного: запускается ли и работает ли главное.
Тест-дизайн
Техники, по которым выбирают, какие проверки писать.
Граничные значения
Проверки на краях допустимого диапазона, где ошибки встречаются чаще всего.
API
Интерфейс, через который программы общаются между собой, без экрана.
Постман
Инструмент для ручных запросов к API и проверки ответов.
SQL
Язык запросов к базе данных: им проверяют, что сохранилось на самом деле.
Jira
Трекер задач, в котором живут задачи и заведённые дефекты.
Приёмочное тестирование
Проверка готовности системы с точки зрения заказчика.
С чего начать изучение
Начинать стоит с теории и тест-дизайна: это язык, на котором говорят в профессии, и без него инструменты учить бессмысленно. Дальше идут документация и работа с API и базой данных, потому что именно их проверяют на собеседовании и используют в первый рабочий месяц.
Курсы по теме
Вопросы и ответы
Тестировщик и QA-инженер – это одно и то же?
В вакансиях названия используют как синонимы, но по смыслу это разные роли. Тестировщик проверяет готовый продукт, QA-инженер отвечает ещё и за процесс: за то, чтобы дефектов появлялось меньше. На первой работе разницу чаще всего не делают.
Сколько видов тестирования существует?
Точного числа нет: виды выделяют по разным основаниям, и списки в учебниках отличаются. Практический минимум – уровни (модульный, интеграционный, системный, приёмочный), методы (чёрный, серый и белый ящик) и типы по проверяемому свойству.
Что важнее на старте – теория или инструменты?
Теория и тест-дизайн. Инструмент осваивается за неделю и меняется от компании к компании, а умение выбрать проверки остаётся с человеком и спрашивается на каждом собеседовании.
Можно ли научиться тестированию самостоятельно?
Можно, и многие так делают. Сложность в двух местах: собрать порядок тем, чтобы не изучать случайное, и получить разбор своих работ – ошибку в собственном тест-кейсе почти невозможно увидеть самому.
Посмотреть программы курсов
Программа каждого курса открыта целиком: видны все модули, уроки и число шагов.