Введение
Аудит программного обеспечения - это вид обзора программного обеспечения, в котором один или несколько аудиторов, не являющихся членами организации разработки программного обеспечения, проводят "независимую экспертизу программного продукта, программного процесса или набора программных процессов для оценки соответствия спецификациям, стандартам, договорным соглашениям или другим критериям". "Программный продукт" в основном, но не исключительно, относится к какому-то техническому документу. IEEE Std. 1028 предлагает список из 32 "примеров программных продуктов, подлежащих аудиту", включая документальные продукты, такие как различные виды планов, контрактов, спецификаций, конструкций, процедур, стандартов и отчетов, а также недокументальные продукты, такие как данные, данные испытаний и доставляемые носители. Аудит программного обеспечения отличается от экспертного обзора программного обеспечения и обзора управления программным обеспечением тем, что он проводится персоналом, находящимся вне организации разработки программного обеспечения и независимым от нее, и касается соответствия продуктов или процессов, а не их технического содержания, технического качества или управленческих последствий. Термин "оценка аудита программного обеспечения" используется здесь для обозначения формы аудита программного обеспечения, описанной в IEEE Std. 1028 год.
Цели и участники
"Целью аудита программного обеспечения является предоставление независимой оценки соответствия программных продуктов и процессов применимым нормам, стандартам, рекомендациям, планам и процедурам". Рекомендуется выполнять следующие функции: инициатор (который может быть руководителем аудируемой организации, представителем клиента или пользователя аудируемой организации или третьей стороной) принимает решение о необходимости проведения аудита, устанавливает его цель и объем, определяет критерии оценки, определяет персонал аудитора, решает, какие последующие действия будут необходимы, и распространяет отчет об аудите. Главный аудитор (который должен быть свободен от предвзятости и влияния, которые могут снизить его способность проводить независимые, объективные оценки) отвечает за административные задачи, такие как подготовка плана аудита, сбор и управление аудиторской командой, а также за обеспечение выполнения аудиторской задачи. Регистратор документирует аномалии, пункты действий, решения и рекомендации, сделанные аудиторской группой. Аудиторы (которые, как и ведущий аудитор, должны быть свободны от предвзятости) проверяют продукты, определенные в плане аудита, документируют свои наблюдения и рекомендуют корректирующие действия. (Может быть только один аудитор.) Аудитуемая организация обеспечивает связь с аудиторами и предоставляет всю информацию, запрашиваемую аудиторами. После завершения аудита аудируемая организация должна принять исправные меры и рекомендации.
The Initiator (who might be a manager in the audited organization, a customer or user representative of the audited organization, or a third party), decides upon the need for an audit, establishes its purpose and scope, specifies the evaluation criteria, identifies the audit personnel, decides what follow up actions will be required, and distributes the audit report. The Lead Auditor (who must be someone "free from bias and influence that could reduce his ability to make independent, objective evaluations") is responsible for administrative tasks such as preparing the audit plan and assembling and managing the audit team, and for ensuring that the audit meets its objectives. The Recorder documents anomalies, action items, decisions, and recommendations made by the audit team. The Auditors (who must be, like the Lead Auditor, free from bias) examine products defined in the audit plan, document their observations, and recommend corrective actions. (There may be only a single auditor.) The Audited Organization provides a liaison to the auditors, and provides all information requested by the auditors. When the audit is completed, the audited organization should implement corrective actions and recommendations.
Инструменты
Части аудита программного обеспечения могут быть выполнены с использованием инструментов статического анализа, которые анализируют код приложения и оценивают его соответствие стандартам, рекомендациям, передовой практике. Из Перечня инструментов для статического анализа кода некоторые охватывают очень широкий спектр от кода до обзора архитектуры и могут использоваться для сравнительного анализа.