Программное обеспечение должно выполнять свои функции, соответствовать заданным критериям оценки качества, безопасности, надежности программного обеспечения. Оценка продукта, требований к нему, проектной документации – задача инженеров по обеспечению качества, или QA-инженеров.
Обеспечение качества программного продукта включает в себя мероприятия, которые проводят на каждой стадии его разработки. Цель – предоставить гарантию того, что продукт соответствует функциональным и нефункциональным требованиям.
Понятие и характеристики качества программного обеспечения
На первый взгляд может показаться, что «качество ПО» - это абстрактное понятие. Однако для менеджеров проекта, программистов,
специалистов по тестированию, QA-инженеров и других участников процесса разработки продукта критерии качества прозрачны и измеримы. Сначала рассмотрим общее определение.
Качество программного обеспечения – комплекс характеристик программного продукта, определяющих способность выполнять возложенные на него функции.
В настоящий момент этот показатель регулируется международным стандартом ISO/IEC 25010:2011. Данный стандарт устанавливает многоуровневую систему оценки качества программного обеспечения, основанную на восьми базовых характеристиках.
Критерии качества программного обеспечения
Основные характеристики качества программного обеспечения согласно стандарту ISO/IEC 25010:2011:
- Функциональность. ПО признается функциональным, если выполняет возложенные на него задачи, отвечает заданным потребностям пользователей. Данный аспект предполагает правильную и точную работу, совместимость всех входящих в состав компонентов.
- Надежность. Под надежностью ПО понимают бесперебойное выполнение возлагаемых на него задач на заданных условиях в течение установленного времени.
- Юзабилити (удобство использования). Этот параметр характеризует степень удобства ПО для пользователей, его наглядность, легкость эксплуатации и изучения.
- Эффективность. Параметру соответствует степень обеспечения продуктом необходимой производительности при заданных условиях.
- Удобство сопровождения. Этот показатель характеризует простоту анализа, тестирования, коррекции компонентов ПО, его обслуживания, а также степень адаптации к новым условиям.
- Портативность. Степень легкости его переноса на другую платформу. Обеспечение качества ПО предполагает его проверку по каждому из перечисленных параметров, выявление слабых сторон и устранение неисправностей.
- Совместимость. Способность программных компонентов взаимодействовать друг с другом.
- Защищенность, т.е. минимизация угроз, связанных с несанкционированным чтением, изменением информации и т. д. Угрозы могут быть также связаны с некорректным использованием ПО, внешним воздействием со стороны посторонних лиц, выходом из строя технических средств.
Обеспечение качества и критерии качества тестирования
Термины «тестирование» и «обеспечение качества», безусловно, связаны между собой, но не тождественны. В чем же различие?
Обеспечение качества отвечает за весь процесс разработки и интегрируется во все его этапы: от создания требований к будущему решению до тестирования, релиза продукта и его пострелизного обслуживания.
В задачи QA-специалистов входит:
- формирование критериев качества;
- планирование мероприятий по соблюдению критериев на каждом этапе разработки продукта;
- выбор инструментов тестирования;
- тестирование продукта;
- расчёт KPI;
- предотвращение появления ошибок и усовершенствование процесса.
Тестирование – проверка программного обеспечения на соответствие требованиям.
Таким образом, вы видите, что обеспечение качества программного продукта – более широкое понятие, которое включает в себя работы по тестированию.
Тестирование может быть автоматизированным, а может проводиться вручную; может быть
тестирование полного цикла или направленным на проверку отдельного аспекта качества (безопасность, производительность, удобства использования и т.д.).
Инженеры по тестированию подготавливают стратегии по тестированию и план, основанный на особенностях проекта и требованиям к решению, создают и в будущем оптимизируют набор тест-кейсов, осуществляют поиск дефектов, создают и направляют отчеты об обнаруженных дефектах разработчикам, проверяют устранение дефекта.
Функция обеспечения качества может выполняться внутренним отделом компании, а может делегироваться независимому подрядчику, который объективно оценит само решение, настроит процессы обеспечения качества и тем самым позволит выпустить на рынок продукт высокого качества, отвечающий бизнес-требованиям и ожиданиям пользователей.