| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Философия программирования > Такая ситуация с ответственностью |
| Автор: Rickert 21.5.2009, 09:02 |
| Сам начальник, непосредственно пишет большую часть кода большой системы биллинга. Я занимаюсь написанием тестов для этой системы, на основе существующего API. Смысл такой: находится бага, репорт летит начальнику, начальник репортит мне чтобы я написал тест на эту багу. Я его пишу, потом отчитываюсь: такую-то дырку залатали. Сегодня была такая предъява от начальника: я не смотрю как ты пишешь тесты, но если они будут каким-либо образом "неверно" проверять на наличие дырок ("заделаных" дыр) - то это будет твоя ответственность. Как вы считаете: такое перекладывание ответственности за ошибки - логичное решение? Так не считаю, потому что я ответственный за свой код - чтобы в нём дырок не было, но каждый может ошибаться, а отвечать по двойному тарифу и за свои, и за ошибки начальника - не собираюсь. |
| Автор: source777 24.5.2009, 15:14 | ||
Вполне логично, если ошибка в тесте, то ответственный - автор теста, если ошибка в спеке, то ответственный - автор спека. Задача автора теста - написать тест так, чтобы он соответствовал спеку. А задача программиста написать код так, чтобы он прошёл все тесты. И вся эта процедура зовётся TDD. |
| Автор: Rickert 24.5.2009, 17:26 |
| Вот именно. Я ответственен за ошибки в тесте. А если я написал тест с ошибкой, но при этом ошибка на которую я писал тест не была исправлена - то почему я должен быть за неё ответственен? Я ответсвенный за свою ошибку, а не за ошибку на которую пишу тест. Разве нет? Получается двойная ответственность: за своё + за то чего не писал. |
| Автор: source777 24.5.2009, 22:18 | ||
Ну, так а где тут двойная ответственность? Ты как-то путано объясняешь ситуацию... Если ты написал такой тест, который программа прошла, а ошибка в программе при этом осталась, то либо есть ошибка в тесте, либо набор тестов недостаточен(концептуальная ошибка). Т.е., грубо говоря, если твои тесты успешно пройдены, а баг, на который ты писал тесты, не изничтожен, то ответственность твоя, и она никакая не двойная. P.S. Хотя я вообще не понимаю в чём тут проблема? Просто философский вопрос или у тебя за пропущенные баги из з/п вычитают? |
| Автор: Rickert 25.5.2009, 01:04 | ||
Речь про ответсвенность не за башу в тесте, а за багу в ПО. Т.е. её не устранили до конца, а мой тест этого не выявил (в результате своей, тестовой, внутренней ошибки). В таком случае ответственность за ошибку НЕ в тесте, а в ПО за кем? Вопрос философский |
| Автор: source777 25.5.2009, 12:22 | ||
За тем, кто первый ошибся в последовательности ТЗ -> функ.дизайн -> спецификация -> юнит-тесты, блочные тесты -> интеграционные тесты -> код. |
| Автор: Rickert 25.5.2009, 14:02 |
| source777, Вот и я о том же. |
| Автор: Bitter 26.5.2009, 16:38 | ||
По-моему начальник абсолютно прав, и он не имел в виду свои ошибки, а именно ошибки в тесте. |
| Автор: Rickert 27.5.2009, 02:21 |
| Bitter, нет, имелись виду ошибки именно его. Которые из-за косяков в тестах не были идентифицированны. |
| Автор: Bitter 27.5.2009, 10:31 |
| Ну судя по тому, что ты написал (и если ты написал цитату его слов), то фраза "если они будут "неверно" проверять на наличие дырок" означает что он имел в виду твои тесты, а не свои ошибки. Всё остальное - эмоции |
| Автор: Rickert 27.5.2009, 14:14 |
| Bitter, я не дословно цитировал |
| Автор: source777 27.5.2009, 19:33 | ||
В рамках TDD у программиста одна задача - написать код, который проходит все тесты. Единственная разновидность ошибок программиста в этом подходе - это не пройденный тест, других ошибок программист, пишущий основной код, в рамках TDD сделать не может в принципе. Скорее наоборот, писать код, который делает что-то ещё кроме прохождения тестов, крайне возбраняется, как несоответствие принципу YAGNI. |