Ћекции.ќрг


ѕоиск:




 атегории:

јстрономи€
Ѕиологи€
√еографи€
ƒругие €зыки
»нтернет
»нформатика
»стори€
 ультура
Ћитература
Ћогика
ћатематика
ћедицина
ћеханика
ќхрана труда
ѕедагогика
ѕолитика
ѕраво
ѕсихологи€
–елиги€
–иторика
—оциологи€
—порт
—троительство
“ехнологи€
“ранспорт
‘изика
‘илософи€
‘инансы
’ими€
Ёкологи€
Ёкономика
Ёлектроника

 

 

 

 


ѕринципы тестировани€




—формулируем основные принципы тестировани€, использу€ глав≠ную предпосылку насто€щего раздела о том, что наиболее важными в тес≠ти≠ровании программ €вл€ютс€ вопросы психологии. Ёти принципы инте≠ресны тем, что в основном они интуитивно €сны, но в то же врем€ на них часто не обращают должного внимани€.

“естирование Ц процесс творческий, т.е. неформализуемый.

¬полне веро€тно, что дл€ тестировани€ большой программы требу≠етс€ больший творческий потенциал, чем дл€ ее проектировани€.

ќписание предполагаемых значений выходных данных или результа≠тов должно быть необходимой частью тестового набора.

Ќарушение этого очевидного принципа представл€ет одну из наибо≠лее распространенных ошибок. ќшибочные, но правдоподобные резуль≠таты могут быть признаны правильными, если результаты теста не были заранее определены. «десь мы сталкиваемс€ с €влением психологии: мы видим то, что мы хотим увидеть. ƒругими словами, несмотр€ на то, что тестирование по определению Ц поиск ошибок, у провод€щих его есть подсознательное желание видеть корректный результат. ќдин из способов борьбы с этим €влением состоит в поощрении детального анализа выход≠ных переменных заранее при разработке теста. ѕоэтому тест должен включать две компоненты: описание входных данных и описание точного и корректного результата, соответствующего набору входных данных.

—ледует избегать тестировани€ программы ее автором.

Ётот принцип следует из предыдущего положени€.

¬ дополнение к этой психологической проблеме следует отметить еще одну, не менее важную: программа может содержать ошибки, св€зан≠ные с неверным пониманием постановки или описани€ задачи программи≠стом. “огда существует веро€тность, что к тестированию программист приступит с таким же недопониманием своей задачи.

“естирование можно уподобить работе корректора или рецензента над статьей или книгой. ћногие авторы представл€ют себе трудности, св€≠занные с редактированием собственной рукописи. ќчевидно, что обнару≠жение недостатков в своей де€тельности противоречит человеческой пси≠хологии.

ќтсюда вовсе не следует, что программист не может тестировать свою программу. ћногие программисты с этим вполне успешно справл€≠ютс€. «десь лишь делаетс€ вывод о том, что тестирование €вл€етс€ более эффективным, если оно выполн€етс€ кем-либо другим. «аметим, что все наши рассуждени€ не относ€тс€ к отладке, т.е. к исправлению уже извест≠ных ошибок. Ёта работа эффективнее выполн€етс€ самим автором про≠граммы.

Ќеобходимо досконально изучать результаты применени€ каждого теста.

ѕо всей веро€тности, это наиболее очевидный принцип, но и ему часто не удел€етс€ должное внимание. ¬ экспериментах, проведенных при тестировании программ, многие испытуемые не смогли обнаружить опре≠деленные ошибки, хот€ их признаки были совершенно €вными. ѕредстав≠л€етс€ достоверным, что значительна€ часть всех обнаруженных в конеч≠ном итоге ошибок могла быть вы€влена в результате самых первых тесто≠вых прогонов, однако они были пропущены вследствие недостаточно тща≠тельного анализа результатов первого тестового прогона.

“есты дл€ неправильных и непредусмотренных входных данных сле≠дует разрабатывать так же тщательно, как дл€ правильных и преду≠смотренных.

ѕри тестировании программ имеетс€ естественна€ тенденци€ кон≠центрировать внимание на правильных и предусмотренных входных усло≠ви€х, а неправильным и непредусмотренным входным данным не прида≠вать значени€. ћежду тем вполне веро€тно, что тесты, представл€ющие неверные и неправильные входные данные, обладают большей обнаружи≠вающей способностью, чем тесты, соответствующие корректным входным данным.

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

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

Ќе следует выбрасывать тесты.

Ёта проблема наиболее часто возникает при использовании интерак≠тивных систем отладки. ќбычно сотрудник, провод€щий тестирование, сидит за терминалом, на лету придумывает тесты и запускает программу на выполнение. ѕри такой практике работы после применени€ тесты про≠падают. ѕосле внесени€ изменений или исправлени€ ошибок необходимо повтор€ть тестирование, тогда приходитс€ заново изобретать тесты.  ак правило, этого стараютс€ избегать, поскольку повторное создание тестов требует значительной работы. ¬ результате повторное тестирование бы≠вает менее тщательным, чем первоначальное, т.е. если модификаци€ за≠тронула функциональную часть программы и при этом была допущена ошибка, то она зачастую может остатьс€ необнаруженной.

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

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

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

Ётот принцип, не согласующийс€ с интуитивным представлением, иллюстрируетс€ на рис. 3.5.

 


–ис. 3.5. Ќеожиданное соотношение числа оставшихс€ и числа обнаруженных ошибок

 

Ќа первый взгл€д он лишен смысла, но тем не менее подтверждаетс€ многими программами. Ќапример, допустим, что некотора€ программа со≠стоит из модулей или подпрограмм ј и ¬.   определенному сроку в мо≠дуле ј обнаружено п€ть ошибок, а в модуле ¬ Ц только одна, причем мо≠дуль ј не подвергалс€ более тщательному тестированию. “огда из рас≠сматриваемого принципа следует, что веро€тность необнаруженных оши≠бок в модуле ј больше, чем в модуле ¬. —праведливость этого принципа подтверждаетс€ еще и тем, что дл€ ошибок свойственно располагатьс€ в программе в виде неких скоплений, хот€ данное €вление пока никем еще не объ€снено. ѕреимущество рассматриваемого принципа заключаетс€ в том, что он позвол€ет ввести обратную св€зь в процесс тестировани€. ≈сли в какой-нибудь части программы обнаружено больше ошибок, чем в дру≠гих, то на ее тестирование должны быть направлены дополнительные уси≠ли€.

„тобы подчеркнуть некоторые мысли, высказанные в насто€щем разделе, приведем еще раз три наиболее важных принципа тестировани€.

“естирование Ц это процесс выполнени€ программ с целью обнару≠жени€ ошибок.

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

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





ѕоделитьс€ с друзь€ми:


ƒата добавлени€: 2015-05-08; ћы поможем в написании ваших работ!; просмотров: 2216 | Ќарушение авторских прав


ѕоиск на сайте:

Ћучшие изречени€:

—вобода ничего не стоит, если она не включает в себ€ свободу ошибатьс€. © ћахатма √анди
==> читать все изречени€...

2143 - | 1893 -


© 2015-2024 lektsii.org -  онтакты - ѕоследнее добавление

√ен: 0.01 с.