Слегка под напряжением
Совершенно этого не хочу, но нахожусь на гране истерики. Не знаю почему. Возможно, уже проснулся таким? Слишком острая реакция на всё, и, как на зло, в доме нет валерьянки. С другой стороны, ну нервы, ну справлюсь. А если не справлюсь, то это тоже хорошо. Появится обоснованный повод сменить место жительства и фасон рубашки.
Это даже забавно, видеть мир в оттенках зловонно-коричневого. Иногда. Ненадолго. Ну знаешь, новые ощущения, новые мысли… Например, вдруг увидел как целый отдел занимается непонятной хренью.
Я понимаю, что тебе нужны подробности. Их есть у меня. Сейчас поведаю, но сперва маленькая капелька теории.
Есть тест. Исходов его работы может быть только два:
- Passed – полученный результат соответствует ожиданию.
- Fail – полученный результат не соответствует ожиданию.
Всё.
Если имеешь Passed, то полученный результат соответствует ожиданию. Не больше, но и не меньше. Функция может работать неправильно, но результат ее работы, в рамках данного теста, верный.
Если Fail, то тут возможны варианты:
- Тест перестал быть актуальным и его нужно доработать (актуализировать).
- Функция, которую тестировал этот тест, работает некорректно и нужно заводить багрепорт, где указать шаги воспроизведения бага.
Перед началом теста иногда нужно соблюсти некоторые условия. Это называется Прекондишин.
Например: перед началом теста требуется открыть страницу в заголовке которого есть три буквы “A” или больше.
Еще у теста могут быть данные, которые он будет использовать.
Например: логин/пароль, ссылка на сайт.
Вот и вся теория.
На самом деле нет. Теория тестирования (контроля качества и прочего) может занять довольно толстую книгу. Особенно, если приложить туда побольше иллюстраций. Но я обещал только “каплю” теории.
Теперь практика.
В тестах одной конторы, в прекондишине, очень часто требуется выполнить другой тест.
Для чего? Для того, чтобы, к примеру, создался новый документ с нужными характеристиками, или этот документ переместился в нужное место или состояние.
Но! Перед этим нужно запустить ещё два, перед ними ещё по одному… Эта цепочка может состоять из десятка тестов и более.
В одном из тестов я попробовал раскрутить цепочку до конца и провалился в рекурсию (бесконечный повтор). И такое бывает.
А теперь (внимание!) вопрос: при таких вводных, если мой тест завершился с Fail, то что это значит?
- Тест перестал быть актуален и его нужно доработать (актуализировать).
- Функция, которую тестировал этот тест, работает некорректно и нужно заводить багрепорт, где указать шаги воспроизведения бага.
- Полетел какой-то тест из цепочки, указанной в прекондишине.
При этом, третий вариант (учитывая количество этих тестов и шагов в них) наиболее вероятен.
Ок. Мы видим, что упал тест номер такой-то из прекондишина. Замечательно. Что нам это даёт?
А ничего не даёт.
- Потому, что этот тест из прекондишина может зависеть от ещё десяти других.
- Потому, что мы по прежнему не знаем работает-ли та функция, которую тестировал наш тест, или нет.
И таких тестов там сотни. И почти ежедневно запускаются прогоны этих тестов. И каждый раз столько-то из стольки-то падает. И что даёт эта информация? А ни-че-го.
Прямо сейчас я автоматизирую тест-кейс, который зависит от другого теста, и этот тест падает. Но прежде чем запускать этот падающий, нужно запустить семь других.
Прекондишин не должен вызывать Fail ни при каких условиях! Это важно!
А что на сайте изменилось название одной единственной кнопки?
Почему-то именно сегодня меня это выбесило. Да так, что места себе не находил. Хорошо, что в этот момент не случилось очередного созвона.
Зачем нужен этот блог? В том числе для вот этого вот. Чтобы заземлять в текст скачки напряжения.
Потом поостыл, обсудил ситуацию с коллегами. Оказалось, что это вынужденный подход. Проект сложный, сервисы тянутся из разных мест, несколько тестовых стендов поднять не дают (сложно, дорого, нужно обслуживать). При этом, структура базы меняется часто, а обновления выходят вообще по два раза в день.
После покрытия тестами ключевого функционала, планируется прекращение создания новых тестов. Упор будет делаться на поддержку, актуализацию и повышение стабильности старых.
В принципе, у тестирования, как такового, нету единых стандартов и требований. Главный критерий – здравый смысл. Остальное – методы, облегчающие процесс работы. Так что, и описанный подход правомерен тоже.
В общем, начал потихоньку приходить в норму. Чай, пироженка, приближающийся вечер, да и ситуацию с тестами вроде-бы удалось немного сгладить… Ну и славно. Работаем.
Напишите комментарий