Качество информационной системы – это совокупность свойств системы, обусловливающих возможность её использования для удовлетворения определённых в соответствии с её назначением потребностей.
Обеспечение качества программного обеспечения/ программного изделия (software quality assurance/SQA), являясь одной из составляющей программной инженерии вообще, и технологии программирования в частности, направлено на то, чтобы создать программное обеспечение/изделие (ПО/ПИ), содержащее минимальное количество ошибок (в идеальном варианте вообще без ошибок). Эта проблема включает в себя две, обычно, последовательно решаемые задачи:
1. Упреждение, или предотвращение ошибок (defect prevention oriented SQA) - сделать процесс проектирования ПО/ПИ таким, чтобы минимизировать риск ошибки
2. Удаление ошибок (defect removal oriented SQA) - по возможности, найти и устранить все ошибки, всё - таки “проникшие” в проект.
Задача упреждения решается с использованием:
a) комплекса организационных мер, методик и инструментальных средств, “встроенных” в основную технологию программирования, в используемые в ней языки и трансляторы;
|
|
б) методов моделирования – путём создания макетов/прототипов программ и работы с ними;
в) предварительных оценок качества всех промежуточных результатов проектирования и (при необходимости) их корректировкой. Таким образом, оценка качества здесь выступает как один из методов, ориентированных на предотвращение ошибок
В рамках решения второй задачи имеют дело с окончательными/целевыми результатами проектирования, т.е. тем, что так или иначе, раньше или позже поступает к пользователю. При этом исправляемая ошибка должна быть так или иначе обнаружена, для чего необходимо опять - таки оценить качество полученных результатов. Другими словами, оценка качества здесь является одним из методов, ориентированных на удаление ошибок.
Методы оценки качества ПО/ПИ (software evaluation), или просто - оценки, занимают существенное, но далеко не единственное место при решении обеих задач обеспечения качества ПО/ПИ. Соответственно выделяются:
1. Упреждающая оценка, или верификация (software verification), – любая проверка, ориентированная на предотвращение ошибок (оценка в рамках первой задачи
2. Подтверждающая оценка, или технический контроль (software validation), - любая проверка, ориентированная на удаление ошибок, если они будут обнаружены (оценка в рамках второй задачи).
Объектами оценки могут быть компоненты любой природы, входящие в ПО/ПИ, а именно:
1. Программные коды – контроль кодов.
Коды могут быть:
· исходные;
· промежуточные технологические;
· исполняемые;
· интерпретируемые;
|
|
· машинные или объектные;
· дистрибутивные – поставляемые;
2. Документы – верификация и контроль документов.
К документам относятся:
· программные документы;
· производственные документы, например, конструкторские документы на материальные составляющие ПИ (носители, упаковка, ярлыки и т.п.);
3. Непосредственно материальные составляющие ПИ – производственный контроль изделия.
Оценка качества может быть:
1. Входной - проверка заимствованных решений (входной контроль/input validation
2. Внутренней или технологической
· проверка промежуточных результатов проектирования;
· рабочая проверка окончательных / целевых результатов проектирования ПО/ПИ (технологический контроль).
3. Выходной – отличается от технологического контроля тем, что производится непосредственно на выходе технологического процесса проектирования / изготовления ПО/ПИ перед передачей его заказчику / пользователю (выходной контроль/ final acceptance validation/end validation/output validation).
К окончательным результатам проектирования/изготовления относятся:
1. Коды программ (обычно имеются ввиду исполняемые коды);
2. Выходные документы – “официальные” редакции программных, конструкторских и других производственных документов, т.е. документы, предназначенные для заказчика и/или входящие в комплект поставки;
3. Материализованные, или производственные результаты, а именно:
· машинные носители с дистрибутивными кодами программ;
· другие материальные составляющие ПИ: упаковка, документы (как объекты изготовления, т.е. книги и машинные носители).
По характеру оценки программ и программных изделий различают:
1. Сатическую(static) оценку - не связанную с прогоном программных кодов. Сюда относится:
· верификация и контроль документов (любых);
· контроль дистрибутивных кодов программ (дистрибутивный контроль);
· статическая верификация программных кодов;
2. Динамическую (dynamic) оценку, или тестирование(testing) – имеющую дело только с программными кодами, которая осуществляется путём их прогона.