Испытание программных средствРефераты >> Программирование и компьютеры >> Испытание программных средств
Содержание
Введение .
Определение испытания и их цель
Методики проведения испытаний .
Подготовка испытаний и схема их проведения
Стадии испытаний
Типы испытаний .
Приемосдаточные испытания опытного образца
Особенности испытаний на надежность программ .
Достоверность определения качества программ при испытаниях .
Исходные и отчетные документы при испытаниях программ
Задачи сопровождения программ
Этапы подготовки и внесения изменений в комплекс программ
Тиражирование и использование версий программ
Сертификационные испытания .
Аттестационные испытания программных средств
Заключение .
Список источников и литературы .
Приложение .
Введение.
В настоящее время в самых различных сферах народного хозяйства, военного дела и других отраслях человеческой деятельности получили широкое применение персональные ЭВМ (ПЭВМ). Сложность их программного обеспечения (ПО) достигла значительных величин. В дальнейшем будет наблюдаться её всё более прогрессирующий рост.
В работе [8] отмечается: “в мире постоянно происходят катастрофы, большие и малые аварии и всё чаще их причиной становится ненадёжное функционирование компьютерных систем, и в частности, их программного обеспечения. Оборона, авиация и космос, медицина, технологические процессы на современных ядерных, химических и других производствах – вот неполный перечень тех предметных областей, где низкое качество ПО и даже единичные дефекты в нём находят воплощение в терминах человеческих жизней и разрушенных материальных ценностей”. Над подобными “ответственными” системами работает целая отрасль с огромными денежными затратами, располагающая значительным количеством высококвалифицированных программистов и проектировщиков, хорошо поставлен менеджмент, отлажены процессы разработки, испытаний и контроля. И, тем не менее, ПО даёт порой такой сбой, резонанс от которого бывает весьма громким [8].
Основными причинами проявления ошибок ПО являются недостаточно высокий уровень технологии производства программных средств и их чрезмерная сложность. И несмотря на то, что в области качества и надёжности программных средств за последнее время достигнуты определённые положительные результаты и ошибки в процессе функционирования ПО сравнительно редки, проблема обеспечения высокой надёжности сложного ПО остаётся достаточно злободневной. Для решения данной проблемы нужен комплексный, системный подход. Конечно, охватить все стороны данной проблемы в отдельной статье невозможно.
Причина обращения к данному принципу в теории надёжности техники и ПО одна и та же. Современная теория оперирует с численными оценками. Хорошо известно парадоксальное противоречие: чем более надёжный продукт мы создаём, тем труднее оценить и подтвердить его надёжность. Однако на практике эту задачу как-то необходимо решать, чтобы при реализации системой цели можно было принять правильное решение. Сжатие информации об ошибках системы во времени в данном случае есть единственный выход из ситуации, когда в процессе её испытаний в реальном времени может не хватить ни времени испытаний, ни ресурсных затрат, или, в крайнем случае, сама система может морально устареть [16].
Многие организации, занимающиеся созданием программного обеспечения, до 30% средств, выделенных на разработку программ, тратят на испытания, что составляет миллиарды долларов по всему миру в целом. И все же, несмотря на громадные капиталовложения, знаний о сути испытаний явно не хватает и большинство программных продуктов ненадежно.
Под испытанием программной продукции следует понимать экспериментальное определение количественных и/или качественных характеристик свойств продукции при ее функционировании в реальной среде и/или моделировании среды функционирования.
Невозможно гарантировать отсутствие ошибок в нетривиальной программе; в лучшем случае можно попытаться показать наличие ошибок. Если программа правильно ведет себя для солидного набора тестов, нет оснований утверждать, что в ней нет ошибок; со всей определенностью можно лишь утверждать, что не известно, когда эта программа не работает. Конечно, если есть причины считать данный набор тестов способным с большой вероятностью обнаружить все возможные ошибки, то можно говорить о некотором уровне уверенности в правильности программы, устанавливаемом этими тестами.
Надежность невозможно внести в программу в результате тестирования, она определяется правильностью этапов проектирования. Наилучшее решение проблемы надежности — с самого начала не допускать ошибок в программе. Однако вероятность того, что удастся безупречно спроектировать большую программу, бесконечно мала.
Испытания таких программ, как системы реального времени, операционные системы и программы управления данными, которые сохраняют «память» о предыдущих входных данных, особенно трудны. Нам потребовалось бы тестировать программу не только для каждого входного значения, но и для каждой последовательности, каждой комбинации входных данных. Поэтому исчерпывающее тестирование для всех входных данных любой разумной программы неосуществимо.
Испытание является завершающим этапом разработки. Ему предшествует этап статической и динамической отладки программ. Основным методом динамической отладки является тестирование. В узком смысле цель тестирования состоит в обнаружении ошибок, цель же отладки—не только в обнаружении, но и в устранении ошибок. Однако ограничиться только отладкой программы, если есть уверенность в том, что все ошибки в ней устранены, нельзя. Цели у отладки и испытания разные. Полностью отлаженная программа может не обладать определенными потребительскими свойствами и тем самым быть непригодной к использованию по своему назначению. Не может служить альтернативой испытанию и проверка работоспособности программы на контрольном примере, так как программа, работоспособная в условиях контрольного примера, может оказаться неработоспособной в других условиях применения. Попытки охватить контрольным примером все предполагаемые условия функционирования сводятся, в конечном счете, к тем же испытаниям.
Определение испытания и их цель
Для программ, создаваемых на уровне продукции производственно-технического назначения и отчуждаемых от разработчика, испытания являются одним из важнейших этапов жизненного цикла, на котором проверяются и фиксируются достигнутые показатели качества программного средства (ПС).
В соответствии с ГОСТ 16504—81 под испытанием промышленной продукции понимают экспериментальное определение количественных и/или качественных характеристик объекта испытания как результата воздействия на него; при его функционировании; при моделировании объекта и/или воздействия. Под испытанием программной продукции следует понимать экспериментальное определение количественных и/или качественных характеристик свойств продукции при ее функционировании в реальной среде и/или моделировании среды функционирования.