June 29th, 2009

Цитата



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



Откуда цитата? Без гугля!

Автоматическое тестирование

За 10 лет опыта в хайтеке, сменив несколько фирм и должностей, я думаю, что знаю как писать софт. И в плане дизайна, и в плане методологии.

Но есть области в которых я всё еще мучаюсь в сомнениях, не знаю как лучше.

Одна из них - автоматический тестинг.

Ясно что должно быть много автоматических тестов. По 1000 причин, не буду их перечислять.
Но какие должны быть эти тесты?

Допустим класс (сервис) А использует В, а В читает что то из файла.

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

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

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

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

Т.е. оба подхода имеют серьезные минусы.


Что посоветуете?