Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Тесты для неправильных и непредусмотренных входных данных следует разрабатывать так же тщательно, как для правильных и предусмотренных



При тестировании программ имеется естественная тенденция концентрировать внимание на правильных и предусмотренных входных условиях, а неправильным и непредусмотренным входным данным не придавать значения. Например, при тестировании задачи о треу­гольниках, приведенной во второй главе, лишь немногие смогут привести в качестве теста длины сторон 1, 2 и 5, чтобы убедиться в том, что треугольник не будет оши­бочно интерпретирован как неравносторонний. Множе­ство ошибок можно также обнаружить, если использовать программу новым, не предусмотренным ранее способом Вполне вероятно, что тесты, представляющие неверные к неправильные входные данные, обладают большей об­наруживающей способностью, чем тесты, соответствую­щие корректным входным данным.

Необходимо проверять не только, делает ли про­грамма то, для чего она предназначена, но и не делает ли она то, что не должна делать.

Это логически просто вытекает из предыдущего принципа. Необходимо проверить программу на нежела­тельные побочные эффекты. Например, программа рас­чета зарплаты, которая производит правильные платеж ные чеки, окажется неверной, если она произведет лиш­ние чеки для работающих или дважды запишет первую запись в список личного состава.

Не следует выбрасывать тесты, даже если про­грамма уже не нужна.

Эта проблема наиболее часто возникает при исполь­зовании интерактивных систем отладки Обычно тести­рующий сидит за терминалом, на лету придумывает тесты и запускает программу на выполнение. При такой практике работы после применения тесты пропадают Пос­ле внесения изменений или исправления ошибок необ­ходимо повторять тестирование, тогда приходится зано­во изобретать тесты. Как правило, этого стараются избе­гать, поскольку повторное создание тестов требует зна­чительной работы. В результате повторное тестирование бывает менее тщательным, чем первоначальное, т. е. ес­ли модификация затронула функциональную часть про­граммы и при этом была допущена ошибка, то она зача­стую может остаться необнаруженной.

Нельзя планировать тестирование в предположе­нии, что ошибки не будут обнаружены.

Такую ошибку обычно допускают руководители про­екта, использующие неверное определение тестирования как процесса демонстрации отсутствия ошибок в про­грамме, корректного функционирования программы.

Число обнаруженных ошибок
 
 

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

Этот принцип, не согласующийся с интуитивным представлением, иллюстрируется рис. 2.2. На первый взгляд он лишен смысла, но тем не менее подтверждает­ся многими програм­мами. Например, до­пустим, что некото­рая программа со­стоит из модулей или подпрограмм А и В. К определенному сроку в модуле А об­наружено пять оши­бок, а в модуле В — только одна, причем модуль А не подвер­гался более тщатель­ному тестированию.

Тогда из рассматриваемого принципа следует, что веро­ятность необнаруженных ошибок в модуле А больше, чем в модуле В. Справедливость этого принципа под­тверждается еще и тем, что для ошибок свойственно рас­полагаться в программе в виде неких скоплений, хотя данное явление пока никем еще не объяснено. В качестве примера можно рассмотреть операционные системы IBM S/370. В одной из версий операционной системы 47% ошибок, обнаруженных пользователями, приходилось на 4% модулей системы1.

Преимущество рассматриваемого принципа заключа­ется в том, что он позволяет ввести обратную связь в процесс тестирования. Если в какой-нибудь части про­граммы обнаружено больше ошибок, чем в других, то на ее тестирование должны быть направлены дополнитель­ные усилия.

Тестирование — процесс творческий.

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

Чтобы подчеркнуть некоторые мысли, высказанные в настоящей главе, приведем еще раз три наиболее важ­ных принципа тестирования.

Тестирование — это процесс выполнения программ с целью обнаружения ошибок.

Хорошим считается тест, который имеет высокую вероятность обнаружения еще не выявленной ошибки

Удачным считается тест, который обнаруживает еще не выявленную ошибку.





Дата публикования: 2015-01-26; Прочитано: 352 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...