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

Виды контроля качества разрабатываемого программного обеспечения

Тестирование

В данном разделе следует:

· описать виды используемого контроля программы (например, ручной контроль, инспекция исходного текста программы, тестирование на граничных условиях и т.д.);

· привести описание контрольного примера по следующей схеме

Номер теста Входные данные Полученный результат

· сделать выводы о результатах тестирования.

ТЕСТИРОВАНИЕ ПРОГРАММНЫХ ПРОДУКТОВ

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

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

Различают два подхода к формированию тестов: структурный и функциональный. Каждый из указанных подходов имеет свои особенности и области применения.

Виды контроля качества разрабатываемого программного обеспечения

Недостаточно выполнить проектирование и кодирование программного обеспечения, необходимо также обеспечить его соответствие требованиям и спецификациям. Многократно проводимые исследования показали, что чем раньше обнаруживаются те или иные несоответствия или ошибки, тем больше вероятность их правильного исправления (рис. 9.1, а) и ниже его стои-

мость (рис. 9.1, б) [7].

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

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

Примечание. Обычно на вопрос о цели тестирования начинающие программисты отвечают,чтоцелью тестирования является «доказательство правильности программы». Это абсолютно неверное мнение. Г. Майерс [47] предлагает очень удачную аналогию для пояснения этого положения. Представьте себе, что вы пришли на прием к врачу и пожаловались на боль в боку. Врач выслушал вас и направил на обследование. Через некоторое время вы возвращаетесь к врачу с ворохом заключений и результатов анализов, и во всех этих бумагах написано, что все исследуемые параметры у вас в норме. Но бок то болит, значит, что-то не в порядке, хотя анализы этого и не показывают. Так и сложное программное обеспечение, безошибочно работающее на всех тестовых наборах, может содержать и обычно содержит некоторое количество ошибок.

Процесс разработки программного обеспечения, в том виде, как он определяется в современной модели жизненного цикла программного обеспечения, предполагает три стадии тестирования:

• автономное тестирование компонентов программного обеспечения;

• комплексное тестирование разрабатываемого программного обеспечения;

• системное или оценочное тестирование на соответствие основным критериям качества. Для повышения качества тестирования рекомендуется соблюдать следующие основные

Читайте также:  Не популярные способы похудения

• предполагаемые результаты должны быть известны до тестирования;

• следует избегать тестирования программы автором;

• необходимо досконально изучать результаты каждого теста;

• необходимо проверять действия программы на неверных данных;

• необходимо проверять программу на неожиданные побочные эффекты на неверных данных.

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

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

Формирование набора тестов имеет большое значение, поскольку тестирование является одним из наиболее трудоемких этапов (от 30 до 60 % общей трудоемкости) создания программного продукта. Причем доля стоимости тестирования в общей стоимости разработки имеет тенденцию возрастать при увеличении сложности программного обеспечения и повышении требований к их качеству.

Существуют два принципиально различных подхода к формированию тестовых наборов: структурный и функциональный.

Структурный подход базируется на том,что известка структура тестируемогопрограммного обеспечения , в том числе его алгоритмы («стеклянный ящик»). В этом случае тесты строят так, чтобы проверить правильность реализации заданной логики в коде программы.

Функциональный подход основывается на том,что структура программного обеспечения неизвестна («черный ящик») . В этом случае тесты строят, опираясь на функциональные спецификации. Этот подход называют также подходом, управляемым данными, так как при его использовании тесты строят на базе различных способов декомпозиции множества данных.

Наборы тестов, полученные в соответствии с методами этих подходов, обычно объединяют, обеспечивая всестороннее тестирование программного обеспечения.

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

Источник

Обеспечение и контроль качества программного обеспечения

В процессе разработки программного продукта важно соблюдать ряд требований, чтобы обеспечить качество программы.Но что конкретно, представляет собой качество программы? Ведь “качество”, можно понимать по разному.

Давайте рассмотрим вместе с вами, что представляет собой обеспечение и контроль качества программного обеспечения.

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

Контроль качества — означает проверку выполнения требований к программному обеспечению и общую оценку разработки. Основная задача контроля качества — поиск ошибок в программе и их дальнейшее исправление.

Обеспечение контроля и качества программного обеспечения определяется в соответствии с различными требованиями в зависимости от особенностей проекта. Основными требованиями, часто определяемыми для любой программы, являются:

  • Функциональность — включает в себя набор действий, которые решают задачи пользователя. Набор этих действий описан в функциональных требованиях к программному обеспечению.
  • Надежность — определяет требование при котором программа должна выполнять свои задачи в определенных условиях и заданное количество времени. Программа должна не только корректно работать, но и корректно завершать свою работу, без влияния на сохранность пользовательских данных.
  • Мобильность — определяет возможность использовать программу на другом аппаратном обеспечении, либо совместно с другими программами.
  • Эффективность — определяет степень производительности программы с выделенными для нее ресурсами операционной системы.
  • Удобство использования — означает простое и легкое использование программы и ее компонентов для пользователя.
  • Сопровождение — это требования к процессу улучшения программы, исправления ошибок, добавления нового функционала.
Читайте также:  Диазолин способ применения дозы

Обеспечение качества программного обеспечения достигается за счет создания определенных процессов.

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

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

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

Инструкции с последовательными действиями

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

Опыт предыдущих проектов

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

Предыдущие ошибки

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

Улучшение подходов в разработке и тестированию

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

В заключение

Помните, что в обеспечение качества программы, входит не улучшение тестирования, а улучшение всех процессов разработки и выпуска программы.

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

Автор

Программист с образованием в области IT и опытом разработки на разных языках. Автор статей по программированию. Общий опыт работы в сфере IT и интернета более 5 лет.

Источник

Качество ПО и методы его контроля

Качество программного обеспечения

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

Если попросить группу людей высказать свое мнение по поводу того, что такое качественное ПО , можно получить следующие варианты ответов:

  • Его легко использовать.
  • Оно демонстрирует хорошую производительность .
  • В нем нет ошибок.
  • Оно не портит пользовательские данные при сбоях.
  • Его можно использовать на разных платформах.
  • Оно может работать 24 часа в сутки и 7 дней в неделю.
  • В него легко добавлять новые возможности.
  • Оно удовлетворяет потребности пользователей.
  • Оно хорошо документировано.
Читайте также:  Способы его погашения государственного долга

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

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

Качество программного обеспечения определяется в стандарте ISO 9126 [1] как вся совокупность его характеристик, относящихся к возможности удовлетворять высказанные или подразумеваемые потребности всех заинтересованных лиц.

Тот же стандарт ISO 9126 [1,2,3,4] дает следующее представление качества.

Различаются понятия внутреннего качества, связанного с характеристиками ПО самого по себе, без учета его поведения; внешнего качества, характеризующего ПО с точки зрения его поведения; и качества ПО при использовании в различных контекстах — того качества, которое ощущается пользователями при конкретных сценариях работы ПО . Для всех этих аспектов качества введены метрики, позволяющие оценить их. Кроме того, для создания добротного ПО существенно качество технологических процессов его разработки. Взаимоотношения между этими аспектами качества по схеме, принятой ISO 9126, показано на рис. 5.1.

Общие принципы обеспечения качества процессов производства во всех отраслях экономики регулируются набором стандартов ISO 9000 . Наиболее важные для разработки ПО стандарты в его составе следующие:

  • ISO 9000:2000 Quality management systems — Fundamentals and vocabulary[5].

Системы управления качеством — Основы и словарь. (Аналог — ГОСТ Р-2001).

Системы управления качеством — Требования. Модели для обеспечения качества при проектировании, разработке, коммерциализации, установке и обслуживании.

Определяет общие правила обеспечения качества результатов во всех процессах жизненного цикла. (Аналог — ГОСТ Р-2001).

  • Этот стандарт выделяет следующие процессы:
    • Управление качеством.
    • Управление ресурсами.
    • Развитие системы управления.
    • Исследования рынка.
    • Проектирование продуктов.
    • Приобретения.
    • Производство.
    • Оказание услуг.
    • Защита продуктов.
    • Оценка потребностей заказчиков.
    • Поддержка коммуникаций с заказчиками.
    • Поддержка внутренних коммуникаций.
    • Управление документацией.
    • Ведение записей о деятельности.
    • Планирование.
    • Обучение персонала.
    • Внутренние аудиты.
    • Оценки управления.
    • Мониторинг и измерения.
    • Управление несоответствиями.
    • Постоянное совершенствование.
    • Управление и развитие системы в целом.

    Ранее использовавшиеся стандарты ISO 9002 :1994 Quality systems — Model for quality assurance in production, installation and servicing и ISO 9003 :1994 Quality systems — Model for quality assurance in final inspection and test в 2000 году были заменены соответствующими им частями ISO 9001 .

    Системы управления качеством. Руководство по улучшению деятельности. (Аналог — ГОСТ Р-2001).

    Руководящие положения по применению стандарта ISO 9001 при разработке, поставке и обслуживании программного обеспечения.

    Источник

Оцените статью
Разные способы