пятница, 7 сентября 2012 г.

Мысли

Дип флегматик пишет о классификации автоматизации: http://blog.shumoos.com/archives/272

Цитирую:

Можно предложить разные классификационные признаки. Ограничимся следующими: “кто пишет”, “когда пишет”, “кто выполняет”, “какой интерфейс использует тест”.

Наиболее значимые различия:
“кто пишет.[программист | тестировщик]”;
“когда.[до кода(test first) | плюс-минус пара минут от кода (TDD) | после кода (регрессионное тестирование)]”;
“кто выполняет.[ программист | тестировщик ]”;
“интерфейс[ GUI | API ]”.


Далее он рассматривает варианты.
1. {пишет.тестировщик; когда.после кода; выполняет.тестировщик; интерфейс.GUI} - ругает.
2. {пишет.тестировщик; когда.до кода; выполняет.программист; интерфейс.GUI} - хвалит, более менее.

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

Мы, кстати, используем этот вариант из его классификации:
{пишет.тестировщик; когда.после кода; выполняет.программист; интерфейс.GUI}
Вроде ок.

Ну и непонятно, почему не рассмотрены остальные варианты. Рассмотрю я.

1. -{пишет.тестировщик; когда.после кода; выполняет.тестировщик; интерфейс.GUI}- - этот вариант флегматик уже признал убогим.
2. -{пишет.тестировщик; когда.после кода; выполняет.тестировщик; интерфейс.API}- - эта хрень не нужна.
3. -{пишет.тестировщик; когда.после кода; выполняет.программист; интерфейс.GUI}- - юзаем мы. И нормально. между прочим. По принципу - "программист отцепился от зеленых тестов, программист коммитит зеленые тесты".
4. -{пишет.тестировщик; когда.после кода; выполняет.программист; интерфейс.API}- - как дополнение к предыдущему.

5. -{пишет.тестировщик; когда.до кода; выполняет.тестировщик; интерфейс.GUI}- - это предлагает нам флегматик. Нафик-нафик, выполнять тесты должен тот, кто меняет код.
6. -{пишет.тестировщик; когда.до кода; выполняет.тестировщик; интерфейс.API} -- ни смысла ни радости.
7. -{пишет.тестировщик; когда.до кода; выполняет.программист; интерфейс.GUI}- - к этому мы стремимся. Но пока не получается.
8. -{пишет.тестировщик; когда.до кода; выполняет.программист; интерфейс.API}- - смысл есть, радости нет.

9. -{пишет.программист; когда.после кода; выполняет.тестировщик; интерфейс.GUI}-
10. -{пишет.программист; когда.после кода; выполняет.тестировщик; интерфейс.API}-
11. -{пишет.программист; когда.после кода; выполняет.программист; интерфейс.GUI}-
12. -{пишет.программист; когда.после кода; выполняет.программист; интерфейс.API}-
- хотел бы я посмотреть, как вы заставите программистов делать это.

13. {пишет.программист; когда.до кода; выполняет.тестировщик; интерфейс.GUI}-
14. {пишет.программист; когда.до кода; выполняет.тестировщик; интерфейс.API}-
15. {пишет.программист; когда.до кода; выполняет.программист; интерфейс.GUI}-
16. {пишет.программист; когда.до кода; выполняет.программист; интерфейс.API}-
- а нафига нужны в таком случае тестировщики?

Да, я не ответил флегматику в его блоге ибо у него нет openId, а регаццо влом.

5 комментариев:

  1. ахуеть, как писать тесты ДО кода, когда иногда не то что гуй не написан, спецификация не закончена=) и круто что денег стоят лишь тестировщики в команде, а аналитики в довесок видать :D
    а последний бравый абзац у него видать под защитой мягких стен сформулировался - а ручные тестировщики на что???

    ОтветитьУдалить
  2. Тесты до кода писать можно. Но придется думать и работать качественней. Тестировщикам. Аналитикам. Разработчикам.

    А это не нравится никому.

    И да, цель Ат - не поиск дефектов. Цель АТ - их не находить.

    ОтветитьУдалить
  3. Это не столько не нравится, это не так просто распланировать и оценить - в особенности с точки зрения лишь одного из участников.

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

    самыми адекватными вариантами считаю 3 и 7.

    так как тестировщики у нас ручные, я 3 вариант использую чтобы снять с себя ответственность разбора спеков (еси тестировщик не пропустил код, значит я не так понял спеки, он мне разъяснит, я код поменяю). возможно не очень честно, но оправдываюсь тем, что он в компании дольше работает, а значит лучше понимает аналитиков (клиентов, еси задача суппорта).

    ОтветитьУдалить
  5. Аналогично, думаю что тесты выполнять нужно тем, кому править код. Иначе получается просто удлиннение цепочки.

    А если для разбора результатов тестов нужен специально обученный человек, то это неправильные пчелы и непрпавильная автоматизация.

    У нас отчасти неправильная, но мы стремимся к понятности.

    ОтветитьУдалить