Регрессионное тестирование: различия между версиями

[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
м пунктуация, запрос источника
м →‎Цитаты: пунктуация, оформление
Строка 14:
 
== Цитаты ==
{{начало цитаты}}
* «Фундаментальная проблема при сопровождении программ состоит в том, что исправление одной ошибки с большой вероятностью (20-50%) влечет появление новой. Поэтому весь процесс идет по принципу "два шага вперед, шаг назад".<br>Почему не удается устранять ошибки более аккуратно? Во-первых, даже скрытый дефект проявляет себя как отказ в каком-то одном месте. В действительности же он часто имеет разветвления по всей системе, обычно неочевидные. Всякая попытка исправить его минимальными усилиями приведет к исправлению локального и очевидного, но если только структура не является очень ясной или документация очень хорошей, отдаленные последствия этого исправления останутся незамеченными. Во-вторых, ошибки обычно исправляет не автор программы, а зачастую младший программист или стажер.<br>Вследствие внесения новых ошибок сопровождение программы требует значительно больше системной отладки на каждый оператор, чем при любом другом виде программирования. Теоретически, после каждого исправления нужно прогнать весь набор контрольных примеров, по которым система проверялась раньше, чтобы убедиться, что она каким-нибудь непонятным образом не повредилась. На практике такое ''возвратное (регрессионное) тестирование'' действительно должно приближаться к этому теоретическому идеалу, и оно очень дорого стоит.» — [[Брукс, Фредерик|Брукс Ф.]] ''[[Мифический человеко-месяц|Мифический человеко-месяц или как создаются программные системы]]''. — Пер. с англ. — СПб.: Символ-Плюс, 2001. — 304 стр.: ил. (стр.113–114)
Фундаментальная проблема при сопровождении программ состоит в том, что исправление одной ошибки с большой вероятностью (20—50 %) влечет появление новой. Поэтому весь процесс идет по принципу «два шага вперед, шаг назад».
 
Почему не удается устранять ошибки более аккуратно? Во-первых, даже скрытый дефект проявляет себя как отказ в каком-то одном месте. В действительности же он часто имеет разветвления по всей системе, обычно неочевидные. Всякая попытка исправить его минимальными усилиями приведет к исправлению локального и очевидного, но если только структура не является очень ясной, или документация очень хорошей, отдалённые последствия этого исправления останутся незамеченными. Во-вторых, ошибки обычно исправляет не автор программы, а зачастую младший программист или стажёр.
 
Вследствие внесения новых ошибок сопровождение программы требует значительно больше системной отладки на каждый оператор, чем при любом другом виде программирования. Теоретически, после каждого исправления нужно прогнать весь набор контрольных примеров, по которым система проверялась раньше, чтобы убедиться, что она каким-нибудь непонятным образом не повредилась. На практике такое ''возвратное (регрессионное) тестирование'' действительно должно приближаться к этому теоретическому идеалу, и оно очень дорого стоит.
{{конец цитаты|[[Брукс, Фредерик|Ф. Брукс]] ''[[Мифический человеко-месяц|Мифический человеко-месяц или как создаются программные системы]]''<ref>Ф. Брукс, ''Мифический человеко-месяц или как создаются программные системы''. Пер. с англ. — СПб.: Символ-Плюс, 2001. — 304 с.: ил. (с. 113—114).</ref>}}
 
== См. также ==