Способы обеспечения качества программных продуктов

Автор работы: Пользователь скрыл имя, 18 Ноября 2013 в 08:05, доклад

Описание работы

Только скоординированное, комплексное применение в проектах ПС с начала проектирования современных методов и стандартов позволяет достигать высокого качества, необходимого для использования ПС в распределенных критических и сложных системах обработки информации. Необходимо убедить руководителей проектов, заказчиков и разработчиков в том, что тщательно регламентированное и достаточно полное системное проектирование ПС и БД на основе современных методов и международных стандартов выгодно с позиции сокращения ошибок и повышения качества сложных комплексов программ.

Файлы: 1 файл

Способы обеспечения качества программных продуктов.docx

— 26.71 Кб (Скачать файл)

Невозможно гарантировать  отсутствие ошибок в нетривиальной  программе; в лучшем случае можно  попытаться показать наличие ошибок. Если программа правильно ведет  себя для солидного набора тестов, нет основании утверждать, что  в ней нет ошибок; со всей определенностью  можно лишь утверждать, что не известно, когда эта программа не работает. Конечно, если есть причины считать  данный набор тестов способным с  большой вероятностью обнаружить все  возможные ошибки, то можно говорить о некотором уровне уверенности  в правильности программы, устанавливаемом  этими тестами.

Психологические эксперименты показывают, что большинство людей, поставив цель (например, показать, что  ошибок нет), ориентируется в своей  деятельности на достижение этой цели. Тестовик подсознательно не позволит себе действовать против цели, т. е. подготовить тест, который выявил бы одну из оставшихся в программе  ошибок. Поскольку мы все признаем, что совершенство в проектировании и кодировании любой программы  недостижимо и поэтому каждая программа содержит некоторое количество ошибок, самым плодотворным применением  тестирования будет найти некоторые  из них. Если мы хотим добиться этого  и избежать психологического барьера, мешающего нам действовать против поставленной цели, наша цель должна состоять в том, чтобы найти как можно  больше ошибок. Сформулируем основополагающий вывод:

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

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

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

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

Тестирование (testing), как мы уже выяснили,—процесс выполнения программы (или части программы) с намерением (или целью) найти ошибки.

Доказательство (proof) — попытка найти ошибки в программе безотносительно к внешней для программы среде. Большинство методов доказательства предполагает формулировку утверждений о поведении программы и затем вывод и доказательство математических теорем о правильности программы.

Контроль (verification) — попытка найти ошибки, выполняя программу в тестовой, или моделируемой, среде.

Испытание (validation) — попытка найти ошибки, выполняя программу в заданной реальной среде.

Аттестация (certification) — авторитетное подтверждение правильности программы, аналогичное аттестации электротехнического оборудования Underwriters Laboratories. При тестировании с целью аттестации выполняется сравнение с некоторым заранее определенным стандартом.

Отладка (debugging) не является разновидностью тестирования. Хотя слова «отладка» и «тестирование» часто используются как синонимы, под ними подразумеваются разные виды деятельности. Тестирование — деятельность, направленная на обнаружение ошибок; отладка направлена на установление точной природы известной ошибки, а затем — на исправление этой ошибки. Эти два вида деятельности связаны — результаты тестирования являются исходными данными для отладки.

Тестирование  модуля, или автономное тестирование (module testing, unit testing) — контроль отдельного программного модуля, обычно в изолированной среде (т. е. изолированно от всех остальных модулей). Тестирование модуля иногда включает также математическое доказательство.

Тестирование  сопряжении (integration testing) — контроль сопряжении между частями системы (модулями, компонентами, подсистемами).

Тестирование  внешних функций (external function testing) — контроль внешнего поведения системы, определенного внешними спецификациями.

Комплексное тестирование (system testing) — контроль и/или испытание системы по отношению к исходным целям. Комплексное тестирование является процессом контроля, если оно выполняется в моделируемой среде, и процессом испытания, если выполняется в среде реальной, жизненной.

Тестирование  приемлемости (acceptance testing) — проверка соответствия программы требованиям пользователя.

Тестирование  настройки (installation testing) — проверка соответствия каждого конкретного варианта установки системы с целью выявить любые ошибки, возникшие в процессе настройки

Бета - тестирование программного обеспечения.

Другой способ проверки - бета-тестирование. В этом случае разработчики программного обеспечения разрешают  пользователям попробовать предварительные  версии продуктов.

Выводы.

Только скоординированное, комплексное применение в проектах ПС с начала проектирования современных  методов и стандартов позволяет  достигать высокого качества, необходимого для использования ПС в распределенных критических и сложных системах обработки информации. Необходимо убедить  руководителей проектов, заказчиков и разработчиков в том, что  тщательно регламентированное и  достаточно полное системное проектирование ПС и БД на основе современных методов  и международных стандартов выгодно  с позиции сокращения ошибок и  повышения качества сложных комплексов программ.

 


Информация о работе Способы обеспечения качества программных продуктов