avatarakali (avatarakali) wrote,
avatarakali
avatarakali

Category:

Рабочее: 7 кругов тестирования

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

Всем непричастным к IT - извините, накипело, высказаться - некому, ибо руководству говорить - себе дороже, коллегам - ну зачем их еще нервировать.
И не думайте, что у нас в компании всегда так: не всегда, все зависит от конкретных людей в проекте. Просто у нас - очередная версия ставится. А я как-то уже писала о том, что каждая версия - это мини-война , и каждый раз - со своей спецификой.

На этот раз дело было так:
Пару месяцев назад вручают мне и одной девушке в Израиле функциональность в зубы и говорят, мол, тестируйте. Документация: в стиле "Все должно работать", с толпой противоречий внутри документации.


Круг 1. Системное тестирование - предварительный просмотр
Прогнали предварительное тестирование за недельку - по всем параметрам не работает ничего. Подчищаем документ, перепираясь с Автором Документа - гордым гадким человеком, любящим доставать людей и считающим себя истиной во всех инстанциях вообще. Программисты в Израиле работают в выходные, чинят все соответственно новому документу, ставят.


Круг 2. Системное тестирование - основной прогон
Тестируем с нуля еще раз. Теперь не работает 1/3 функциональности, остальные 2/3 работают с оговорками. Документ вообще перестал отображать действительность. Тем временем команду программистов в Израиле, хоть что-то понимающих в функциональности сокращают всвязи с кризисом, то же самое случается и с моей напарницей. Я остаюсь один-на-один с Автором Документа и кучкой юных индийских программистов в далекой Индии, ни в зуб ногой не разбирающихся в функциональности. Каждый замеченный мною дефект становится предметом игры в пинг-понг с Автором Документа и индийскими программистами потому, что Автор считает, что оно просто не может не работать, а с индийскими программистами - потому, что они вообще не понимают, почему я считаю, что это - не работает. В результате дефекты со скрипом, но чинятся, но время, потраченное на пинг-понг - это время, отобранное от тестирования.


Круг 3. Системное тестирование исправлений
Перетестирую фиксы по дефектам по одному. В смысле - не так, чтобы вот все фиксы скомпелить, поставить и проверить, а по фиксу за раз. По одному - вроде бы пофиксено то, что не работало. О том, что там еще не работало даже думать страшно и времени уже нет: время сдавать функциональность юзверям на растерзание.


Круг 4. Системное тестирование End 2 End
Поднимаю флаг руководству - мол, господа, у нас непонятно какие фиксы по одному протестированы, вместе не тестировалось, погорим ведь. Руководство говорит: "Спокойно, Автор Документа же сказал, что все работает, индийские программисты тоже сказали, что починили все. Ну ты пока прогони основные сценарии End2End, посмотри, не поломали ли они чего"
Сцепляю зубы, тестирую 3й раз сначала, но с минимумом сценариев, так, галопом по Европам, ибо времени нет.


Круг 5. Пользовательское тестирование
Юзверя получают функциональность и вопиют о том, что не работает вообще ничего. Истерика быстренько поднимается до топ-менеджмента, вопрошающего "Как же так?"
Иду лично к юзверям, начинаю разбираться, что же они именно считают не работающим. Оказывается пара-тройка сценариев.
- Тьфу, паникеры, - думаю, - да вы не видели, как оно в начале было!
Команда местных программистов-индийцев, занимающиеся поддержкой юзверей смотрят на код, говорят: "Ну эти израильские программисты и напортачили, вот мы сейчас так починим, что все будет работать". Одновременно выясняется, что при составлении Документа по функциональности Автор Документа не только бестолковый и противоречивый документ в принципе написал, что и стало причиной всех ошибок, замеченных ранее, но еще и просто пропустил огромный функционал. Упс, ну не заметил.
В документе про этот функционал, соответственно, ни слова. Юзверя о нем знают только потому, что давно с живой системой работают. Я - не знала.

Местные программисты тем временем сносят нафиг весь код, написанный и протестированный до этого момента, вместо этого вставляют свою функцию, которая чинит ту пару-тройку сценариев, что заметили юзверя, ну и этот функционал дополнительный обрабатывает заодно.
Фикс отправляют на тестирование юзверям и мне одновременнo

Я начинаю посылать сигналы руководству, мол, люди, нельзя же так, в последний момент менять все, все тестирование же насмарку. Руководство говорит "Спокойно, Автор Документа же сказал, что все работает, местные индийсцие программисты тоже сказали, что починили все. А ты пока прогони основные сценарии для этого фикса, посмотри, не поломали ли они чего"

Так как фикс делает функциональность совершенно не соответствующей Документу, поднимаю на уши всех причастных, выбиваю описание сценариев для тестирования фикса. Сценариев - все равно что всю функциональность с нуля смотреть. Сообщаю руководству, что могу, конечно, и 7 шапок сшить, но маленьких. Но документ поправить надо, а то непонятно, что мы вообще сдаем и что тестировали. Руководство говорит "Спокойно, Автор Документа же сказал, что все работает, местные индийсцие программисты тоже сказали, что починили все. Так что документ править не имеет смысла"

Бизнес-аналитики игриво пожурили Автора Документа, мол, что ж ты, Семен-Семеныч. Но править документ тоже не стали.

- Ну и ... с вами, - говорю я и прогоняю основные сценарии для тестирования фикса. Они проходят с небольшими замечаниями с моей стороны, о коих сообщаю. Вчера. Днем. После очередной игры в пинг-понг.


Круг 6. Приемочное тестирование
Сегодня с утра перед пробежкой, в 5-30, решила глянуть в почту - ба! - там призыв от руководства присоединиться через 3 часа к приемочному тестированию, ибо фиксы на дефекты, найденные мною и одновременно юзверями вчера, показали, что тот фикс, что я тестировала поломал одну небольшую, но важную функциональность.



Круг 7. Разбор полетов. Lessons Learned.

А мораль сей басни такова:
- Не надо доверять документу, в котором написано общими словами "Да будет свет" - и нет детализации того, что было пофиксено и как это соотносится с требовании Заказчика - с таким описанием не может функциональность приниматься к тестированию!
80% ошибок происходит из-за кривой документации и соответствующего дизайна!
Программисты, Авторы Документов - нарисуйте это себе на лбу!

- Надо доверять, блин, тестировщикам, когда они говорят: "Хьюстон, у нас проблема!" Ибо скорее всего замеченная проблема - верхушка айсберга.

- Не надо стирать код, написанный ранее коллегами только из гордости, мол, я лучше сделаю: не дураки писали, особенно - если код уже был протестирован. Велика вероятность того, что снесено будет не только то, что не работало, но и то, что работало - тоже.

- Не надо ставить фиксы в последний момент, как бы соблазнительным не казалась мечта о светлом будущем и вера в то, что фикс фиксит вообще всё. Есть такая вещь: дата заморозки кода, и она тоже не дураками была придумана, а именно для того, чтобы избежать вот такого ге мучения. Все, кто не успел - тот опоздал. Все, что не было пофиксено - айда в следующий релиз.

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

- Не надо обвинять команду тестирования в дефектах, замеченных другими командами тестирования: есть четкий список сценариев, которые можно проверить в заданных условиях. Все, что не вошло в сценарии и было замеченно где-то еще: опять же - ошибка дизайна сценариев. Но протестировать все вообще - невозможно. Особенно невозможно протестировать то, о чем в Документе по описанию функциональности - не сказано.
Tags: work
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 17 comments