Лекция №19Инженерия качества

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

  • мера, в которой ПО соответствует функциональным требованиям, заданным планом разработки и прочими документами спецификации (функциональное качество);
  • уровень поддержки нефункциональных требований: надежности, производительности и так далее (структурное качество).

Функциональное качество, как правило, оценивается при помощи тестирования, поэтому основная часть управления качеством фокусируется на обеспечении структурного качества ПО. Управление состоит из трех частей:

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

Роль стандартов зависит от выбранной методологии разработки:

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

Скачать презентацию