КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Тестирование
ПРОГРАММНЫЕ ОШИБКИ ТЕСТИРОВАНИЕ, ОТЛАДКА И ОПТИМИЗАЦИЯ ПРОГРАММ Программ без ошибок не существует. Практика пока-зывдет, что виновниками ошибок в программах чаще всего бывают сами программисты. Один из общих законов практического программирования состоит в том, что ни одна программа не дает желаемых результатов при первой попытке трансляции и выполнения. Некоторое представление о действительных причинах появления ошибок в работе программы дает следующее процентное соотношение источников сбоев: Входные данные 1% Ошибки пользователя 5% Аппаратура 1% Системное программное обеспечение 3% Разработка системы 15% Программирование 75% Программист должен не только писать эффективные программы, но и находить в них всевозможные ошибки. Современная практика обучения программированию ориентирована, в основном, только на выполнение программистом первой половины своей работы. Это все равно, как если обучать летчика только взлету, предполагая, что с посадкой машины он как-нибудь разберется сам, если будет выполнять все операции взлета в обратном порядке. Существуют два типа программных ошибок: синтаксические ошибки — возникают из-за нарушения правил языка программирования. Такие ошибки обычно выявляются во время компиляции. Могут быть исключены сравнительно легко. Даже если не просматривать текст программы можно быть уверенным, что компилятор на стадии трансляции найдет ошибки и выдаст соответствующие предупреждения. Фактически поиск ошибок осуществляет компилятор, а их исправление — программист; семантические (логические) ошибки - те, что приводят к некорректным вычислениям или ошибкам во время выполнения (run-time error). Семантические, ошибки устраняют обычно посредством выполнения программы с тщательно подобранными проверочными данными, для которых известен правильный ответ. Тестирование (testing) - любой вид деятельности, в рамках которого путем реального выполнения каких-либо задач проверяется соответствующая работа либо системы в целом, либо составной ее части. Тестирование программы (program testing) - проверка, которая проводится в ходе прогона программы с целью убедиться, работает ли она так, как требуется. Это осуществляется при выполнении одного или нескольких тестовых прогонов, при которых в программную систему подаются входные (тестовые данные), а реакция системы фиксируется для последующего анализа. Может осуществляться как с ЭВМ, так и без ЭВМ. Один из главных законов тестирования гласит: «Тестирование программы или ее отдельных модулей не должен осуществлять программист (группа программистов), создавший эту программу или модуль». Для обеспечения достаточной степени надежности тестирования должен быть специальный отдел в фирме или привлечены программисты из сторонних организаций. Первоначально разработчик сам устраняет мелкие ошибки. Когда компиляция модуля завершается, и компилятор выдает соответствующее сообщение «Compile successful", программист обычно запускает откомпилированный фрагмент и производит несколько тестов. После такого поверхностного тестирования разработчиком законченный модуль должен быть протестирован другим программистом. Дело в том, что разработчик изначально настраивается на какой-то один вид возможной ошибки и, не обнаружив ее при предварительном тестировании, не склонен проверять другие участки модуля. Сторонний программист рассматривает модуль, подключенный к программе как своего рода «черный ящик» и пытается запускать его на предельных нагрузках. Статистика свидетельствует, что стоимость тестирования составляет не менее 50% всей стоимости начальной разработки. Сколько бы сил, времени и денег не было потрачено на тестирование, один из главных законов программирования действует с неотвратимостью рока: «Тесты могут доказать наличие ошибок в программе, но они не могут доказать их отсутствия» (Э. Дейкстра «Заметки по структурному программированию»). При тестировании могут возникать следующие вопросы: 1) Искать все ошибки или грубейшие? 2)Если не все, то как установить порог допустимости ошибки? 3)Когда завершать тестирование? 4)Что делать, если сроки поджимают или нет ресурсов на дальнейшее тестирование? 5) Где остановиться в документировании тестов? Ответы на них во многом зависят от того, что считать качественной программой? Качественная программа - это программа, выполняющая заранее объявленные действия известным способом и не выполняющая никаких необъявленных действий. Под объявленными действиями понимаются, в том числе, и алгоритмы обработки данных. Таким образом, тестирование должно выполняться до тех пор, пока программа не избавится от всех необъявленных действий (частным случаем которых является неверная обработка, то есть, в сущности, просто порча данных).
Дата добавления: 2014-12-16; Просмотров: 521; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |