Слегка под напряжением

Совершенно этого не хочу, но нахожусь на гране истерики. Не знаю почему. Возможно, уже проснулся таким? Слишком острая реакция на всё, и, как на зло, в доме нет валерьянки. С другой стороны, ну нервы, ну справлюсь. А если не справлюсь, то это тоже хорошо. Появится обоснованный повод сменить место жительства и фасон рубашки.

Это даже забавно, видеть мир в оттенках зловонно-коричневого. Иногда. Ненадолго. Ну знаешь, новые ощущения, новые мысли… Например, вдруг увидел как целый отдел занимается непонятной хренью.

Я понимаю, что тебе нужны подробности. Их есть у меня. Сейчас поведаю, но сперва маленькая капелька теории.

Есть тест. Исходов его работы может быть только два:

  1. Passed — полученный результат соответствует ожиданию.
  2. Fail — полученный результат не соответствует ожиданию.

Всё.

Если имеешь Passed, то полученный результат соответствует ожиданию. Не больше, но и не меньше. Функция может работать неправильно, но результат ее работы, в рамках данного теста, верный.

Если Fail, то тут возможны варианты:

  1. Тест перестал быть актуальным и его нужно доработать (актуализировать).
  2. Функция, которую тестировал этот тест, работает некорректно и нужно заводить багрепорт, где указать шаги воспроизведения бага.

Перед началом теста иногда нужно соблюсти некоторые условия. Это называется Прекондишин.

Например: перед началом теста требуется открыть страницу в заголовке которого есть три буквы «A» или больше.

Еще у теста могут быть данные, которые он будет использовать.

Например: логин/пароль, ссылка на сайт.

Вот и вся теория.

На самом деле нет. Теория тестирования (контроля качества и прочего) может занять довольно толстую книгу. Особенно, если приложить туда побольше иллюстраций. Но я обещал только «каплю» теории.

Теперь практика.

В тестах одной конторы, в прекондишине, очень часто требуется выполнить другой тест.

Для чего? Для того, чтобы, к примеру, создался новый документ с нужными характеристиками, или этот документ переместился в нужное место или состояние.

Но! Перед этим нужно запустить ещё два, перед ними ещё по одному… Эта цепочка может состоять из десятка тестов и более.

В одном из тестов я попробовал раскрутить цепочку до конца и провалился в рекурсию (бесконечный повтор). И такое бывает.

А теперь (внимание!) вопрос: при таких вводных, если мой тест завершился с Fail, то что это значит?

  1. Тест перестал быть актуален и его нужно доработать (актуализировать).
  2. Функция, которую тестировал этот тест, работает некорректно и нужно заводить багрепорт, где указать шаги воспроизведения бага.
  3. Полетел какой-то тест из цепочки, указанной в прекондишине.
При этом, третий вариант (учитывая количество этих тестов и шагов в них) наиболее вероятен.

Ок. Мы видим, что упал тест номер такой-то из прекондишина. Замечательно. Что нам это даёт?

А ничего не даёт.

  1. Потому, что этот тест из прекондишина может зависеть от ещё десяти других.
  2. Потому, что мы по прежнему не знаем работает-ли та функция, которую тестировал наш тест, или нет.

И таких тестов там сотни. И почти ежедневно запускаются прогоны этих тестов. И каждый раз столько-то из стольки-то падает. И что даёт эта информация? А ни-че-го.

Прямо сейчас я автоматизирую тест-кейс, который зависит от другого теста, и этот тест падает. Но прежде чем запускать этот падающий, нужно запустить семь других.

Прекондишин не должен вызывать Fail ни при каких условиях! Это важно!

А что на сайте изменилось название одной единственной кнопки?

Почему-то именно сегодня меня это выбесило. Да так, что места себе не находил. Хорошо, что в этот момент не случилось очередного созвона.

Зачем нужен этот блог? В том числе для вот этого вот. Чтобы заземлять в текст скачки напряжения.

Потом поостыл, обсудил ситуацию с коллегами. Оказалось, что это вынужденный подход. Проект сложный, сервисы тянутся из разных мест, несколько тестовых стендов поднять не дают (сложно, дорого, нужно обслуживать). При этом, структура базы меняется часто, а обновления выходят вообще по два раза в день.

После покрытия тестами ключевого функционала, планируется прекращение создания новых тестов. Упор будет делаться на поддержку, актуализацию и повышение стабильности старых.

В принципе, у тестирования, как такового, нету единых стандартов и требований. Главный критерий — здравый смысл. Остальное — методы, облегчающие процесс работы. Так что, и описанный подход правомерен тоже.

В общем, начал потихоньку приходить в норму. Чай, пироженка, приближающийся вечер, да и ситуацию с тестами вроде-бы удалось немного сгладить… Ну и славно. Работаем.

=== Заметки ===

Вот так цветёт ель. Между-прочим, красиво.

День внезапно упёрся в вечер. Как у него это получается? Только что было утро.

Потрогал корпус безвентилляторного ПК. Горячий!
Придумал навесную систему охлаждения, собрал прототип, заказал детали, ждал их несколько месяцев, стал собирать, прочитал материалы и понял, что для данной модели температура в 65С чуть-ли не штатная. Упс, потрачено.

Ещё...

Напишите комментарий