Критерии
Автотесты: критерии завершенности
Опубликовано KaNoN в 11.08.2010При написании автоматических тестов, как и любых других видов програмных компонент, мы должны добиться целого ряда показателей:
- Читаемость
- Расширяемость
- Переносимость
- Оптимальность
- Соответствие требованиям
- Удобство модификации
- Прочее (добавить по вкусу)
Предела совершенству нет, поэтому соотношения и приоритеты разных показателей определяются нуждами конкретных задач. Чтобы не доводить процесс совершенствования реализации того или иного компонента до бесконечности, нужно ввести критерии, по которым можно судить, что данный компонент уже достаточно хорош для того, чтобы дальше его не совершенствовать. Если рассматривать конкретно такой вид програмных компонент как автоматические тесты, то у них есть вполне конкретная специфика, исходя из которой можно определять требования.
Во-первых, каждый тест пишется один раз, но при этом используется множество раз и зачастую на меняющемся продукте. Более того, высока вероятность, что тест со временем придется модифицировать/адаптировать под последние изменения. Как следствие, очень важную роль следует отвести таким моментам, как удобство чтения и модификации. Во многом здесь помогает единый стиль кодирования, даже если работает только один человек. Есть общие правила именования, форматирования, которых надо придерживаться - вырабатываются стандартные приемы чтения подобного кода. Соответственно, нужны какие-то стандарты кодирования, которые либо вырабатываются конкретной командой, либо берутся уже готовые (для популярных языков программирования уже существуют определенные наборы правил, формирующих некоторые стандарты). Удобство модификации во многом зависит от архитектурных решений.
Во-вторых, поскольку тесты предназначены для выполнения машиной, то в этом случае нужно помнить о том, что скорее всего эти тесты будут делегированы машине полностью. То есть никто не будет вручную дублировать проверки, предусмотренные тестом. По-крайней мере рано или поздно это происходит. Соответственно, мы должны быть уверены, что тест делает всё, что на него возлагают.
В-третьих, в общем случае тесты работают не на тех машинах, на которых они разрабатывались, соответственно, привязка к особенностям конкретной системы должна быть минимальной. В идеале, тесты должны работать во всех условиях, при которых должна работать тестируемая система. Это особенно важно для конфигурационного тестирования
В-четвертых, одним из субъективных (почему субъективных - это тема отдельного разговора) преимуществ автоматических тестов является то, что машина проводит тестирование быстрее человека. Так должно быть. И если это не так, то смысл автоматизации данного конкретного участка ставится под сомнение, если нет других веских доводов в пользу автоматизации (именно веских доводов). То есть выполняемые задачи должны быть реализованы наиболее оптимальным способом.
»
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- Читать далее







