Дип флегматик пишет о классификации автоматизации: 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, а регаццо влом.
ахуеть, как писать тесты ДО кода, когда иногда не то что гуй не написан, спецификация не закончена=) и круто что денег стоят лишь тестировщики в команде, а аналитики в довесок видать :D
ОтветитьУдалитьа последний бравый абзац у него видать под защитой мягких стен сформулировался - а ручные тестировщики на что???
Тесты до кода писать можно. Но придется думать и работать качественней. Тестировщикам. Аналитикам. Разработчикам.
ОтветитьУдалитьА это не нравится никому.
И да, цель Ат - не поиск дефектов. Цель АТ - их не находить.
Это не столько не нравится, это не так просто распланировать и оценить - в особенности с точки зрения лишь одного из участников.
ОтветитьУдалитькруто, когда тестировщики умеют писать. у нас в компашке, увы, таких нету, только ручные. а так - эти варианты, я так понимаю рассматривают идеальные случаи, когда спеки описаны адекватно и однозначно (пусть даже меняюттся по ходу разработки)?
ОтветитьУдалитьсамыми адекватными вариантами считаю 3 и 7.
так как тестировщики у нас ручные, я 3 вариант использую чтобы снять с себя ответственность разбора спеков (еси тестировщик не пропустил код, значит я не так понял спеки, он мне разъяснит, я код поменяю). возможно не очень честно, но оправдываюсь тем, что он в компании дольше работает, а значит лучше понимает аналитиков (клиентов, еси задача суппорта).
Аналогично, думаю что тесты выполнять нужно тем, кому править код. Иначе получается просто удлиннение цепочки.
ОтветитьУдалитьА если для разбора результатов тестов нужен специально обученный человек, то это неправильные пчелы и непрпавильная автоматизация.
У нас отчасти неправильная, но мы стремимся к понятности.