Введение

Аудит программного обеспечения - это вид обзора программного обеспечения, в котором один или несколько аудиторов, не являющихся членами организации разработки программного обеспечения, проводят "независимую экспертизу программного продукта, программного процесса или набора программных процессов для оценки соответствия спецификациям, стандартам, договорным соглашениям или другим критериям". "Программный продукт" в основном, но не исключительно, относится к какому-то техническому документу. IEEE Std. 1028 предлагает список из 32 "примеров программных продуктов, подлежащих аудиту", включая документальные продукты, такие как различные виды планов, контрактов, спецификаций, конструкций, процедур, стандартов и отчетов, а также недокументальные продукты, такие как данные, данные испытаний и доставляемые носители. Аудит программного обеспечения отличается от экспертного обзора программного обеспечения и обзора управления программным обеспечением тем, что он проводится персоналом, находящимся вне организации разработки программного обеспечения и независимым от нее, и касается соответствия продуктов или процессов, а не их технического содержания, технического качества или управленческих последствий. Термин "оценка аудита программного обеспечения" используется здесь для обозначения формы аудита программного обеспечения, описанной в IEEE Std. 1028 год.

Цели и участники

"Целью аудита программного обеспечения является предоставление независимой оценки соответствия программных продуктов и процессов применимым нормам, стандартам, рекомендациям, планам и процедурам". Рекомендуется выполнять следующие функции: инициатор (который может быть руководителем аудируемой организации, представителем клиента или пользователя аудируемой организации или третьей стороной) принимает решение о необходимости проведения аудита, устанавливает его цель и объем, определяет критерии оценки, определяет персонал аудитора, решает, какие последующие действия будут необходимы, и распространяет отчет об аудите. Главный аудитор (который должен быть свободен от предвзятости и влияния, которые могут снизить его способность проводить независимые, объективные оценки) отвечает за административные задачи, такие как подготовка плана аудита, сбор и управление аудиторской командой, а также за обеспечение выполнения аудиторской задачи. Регистратор документирует аномалии, пункты действий, решения и рекомендации, сделанные аудиторской группой. Аудиторы (которые, как и ведущий аудитор, должны быть свободны от предвзятости) проверяют продукты, определенные в плане аудита, документируют свои наблюдения и рекомендуют корректирующие действия. (Может быть только один аудитор.) Аудитуемая организация обеспечивает связь с аудиторами и предоставляет всю информацию, запрашиваемую аудиторами. После завершения аудита аудируемая организация должна принять исправные меры и рекомендации.

Инструменты

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