Методы тестирования программного обеспечения. Степанченко И.В. - 9 стр.

UptoLike

Составители: 

11
дителями проектов при оценке результатов тестирования. Некоторые ру-
ководители программных проектов называют тестовый прогон «неудач-
ным» если обнаружена ошибка, и, наоборот, удачным, если он прошел
без ошибок. Чаще всего это является следствием ошибочного понимания
термина «тестирование», так как, по существу, слово «удачный» означает
«результативный», а слово «неудачный» – «нежелательный», «нерезуль-
тативный». Но если тест не обнаружил ошибки, его выполнение связано с
потерей времени и денег, и термин «удачный» никак не может быть при-
менен к нему. Естественно, заранее неизвестно, будет ли тест удачным
или неудачным, но построение удачных тестовотдельная тема.
Тестовый прогон, приведший к обнаружению ошибки, нельзя назвать
неудачным хотя
бы потому, что, как отмечалось выше, это целесообразное
вложение капитала. Отсюда следует, что в слова «удачный» и «неудач-
ный» необходимо вкладывать смысл, обратный общепринятому. Поэтому
в дальнейшем будем называть тестовый прогон удачным, если в процессе
его выполнения обнаружена ошибка, и неудачным, если получен коррект-
ный результат.
Проведем аналогию с посещением
больным врача. Если рекомендо-
ванное врачом лабораторное исследование не обнаружило причины бо-
лезни, не назовем же мы такое исследование удачнымоно неудачно:
ведь счет пациента сократился на 500 рублей, а он все так же болен. Если
же исследование показало, что у больного язва желудка, то оно является
удачным, поскольку врач может прописать
необходимый курс лечения.
Следовательно, медики используют эти термины в нужном нам смысле.
(Аналогия здесь, конечно, заключается в том, что программа, которую
предстоит тестировать, подобна больному пациенту.)
Определения типа «тестирование представляет собой процесс де-
монстрации отсутствия ошибок» (например, в [5] и [6]) порождают еще
одну проблему: они ставят цель, которая не может быть
достигнута ни
для одной программы, даже весьма тривиальной. Результаты психологи-
ческих исследований показывают, что если перед человеком ставится не-
выполнимая задача, то он работает хуже. Например, если предложить
кому-то решить кроссворд в воскресном номере «Нью-Йорк Таймс» за 15
минут, то через 10 минут не будет достигнут значительный успех; ведь
понятно,
что это невыполнимая задача. Если же на решение отводится
четыре часа, то через 10 минут результат окажется лучше [1]. Иными
словами, определение тестирования как процесса обнаружения ошибок
переводит его в разряд решаемых задач и таким образом преодолевается
психологическая трудность.
Другая проблема возникает в том случае, когда для тестирования ис-
пользуется следующее определение: «Тестирование
это процесс, позво-
дителями проектов при оценке результатов тестирования. Некоторые ру-
ководители программных проектов называют тестовый прогон «неудач-
ным» если обнаружена ошибка, и, наоборот, удачным, если он прошел
без ошибок. Чаще всего это является следствием ошибочного понимания
термина «тестирование», так как, по существу, слово «удачный» означает
«результативный», а слово «неудачный» – «нежелательный», «нерезуль-
тативный». Но если тест не обнаружил ошибки, его выполнение связано с
потерей времени и денег, и термин «удачный» никак не может быть при-
менен к нему. Естественно, заранее неизвестно, будет ли тест удачным
или неудачным, но построение удачных тестов – отдельная тема.
     Тестовый прогон, приведший к обнаружению ошибки, нельзя назвать
неудачным хотя бы потому, что, как отмечалось выше, это целесообразное
вложение капитала. Отсюда следует, что в слова «удачный» и «неудач-
ный» необходимо вкладывать смысл, обратный общепринятому. Поэтому
в дальнейшем будем называть тестовый прогон удачным, если в процессе
его выполнения обнаружена ошибка, и неудачным, если получен коррект-
ный результат.
     Проведем аналогию с посещением больным врача. Если рекомендо-
ванное врачом лабораторное исследование не обнаружило причины бо-
лезни, не назовем же мы такое исследование удачным – оно неудачно:
ведь счет пациента сократился на 500 рублей, а он все так же болен. Если
же исследование показало, что у больного язва желудка, то оно является
удачным, поскольку врач может прописать необходимый курс лечения.
Следовательно, медики используют эти термины в нужном нам смысле.
(Аналогия здесь, конечно, заключается в том, что программа, которую
предстоит тестировать, подобна больному пациенту.)
     Определения типа «тестирование представляет собой процесс де-
монстрации отсутствия ошибок» (например, в [5] и [6]) порождают еще
одну проблему: они ставят цель, которая не может быть достигнута ни
для одной программы, даже весьма тривиальной. Результаты психологи-
ческих исследований показывают, что если перед человеком ставится не-
выполнимая задача, то он работает хуже. Например, если предложить
кому-то решить кроссворд в воскресном номере «Нью-Йорк Таймс» за 15
минут, то через 10 минут не будет достигнут значительный успех; ведь
понятно, что это невыполнимая задача. Если же на решение отводится
четыре часа, то через 10 минут результат окажется лучше [1]. Иными
словами, определение тестирования как процесса обнаружения ошибок
переводит его в разряд решаемых задач и таким образом преодолевается
психологическая трудность.
     Другая проблема возникает в том случае, когда для тестирования ис-
пользуется следующее определение: «Тестирование – это процесс, позво-
                                  11