what is software quality assurance
Що таке забезпечення якості програмного забезпечення?
Забезпечення якості програмного забезпечення (SQA) це процес, який гарантує, що всі процеси, методи, дії та робочі об'єкти програмної інженерії контролюються та відповідають визначеним стандартам. Ці визначені стандарти можуть бути одним або комбінацією будь-яких, таких як ISO 9000, модель CMMI, ISO15504 тощо.
SQA включає всі процеси розробки програмного забезпечення, починаючи від визначення вимог до кодування і закінчуючи випуском. Його головною метою є забезпечення якості.
Що ви дізнаєтесь:
- План забезпечення якості програмного забезпечення
- Діяльність SQA
- Стандарти забезпечення якості програмного забезпечення
- Елементи забезпечення якості програмного забезпечення
- Методи SQA
- Висновок
- Рекомендована література
План забезпечення якості програмного забезпечення
Скорочений як SQAP, план забезпечення якості програмного забезпечення включає процедури, техніки та інструменти, які використовуються для забезпечення відповідності продукту чи послуги вимогам, визначеним у SRS (специфікація вимог до програмного забезпечення).
План визначає обов'язки команди щодо якості, перелічує сфери, які необхідно переглянути та перевірити. Він також визначає продукти роботи SQA.
Документ плану SQA складається з наступних розділів:
- Розділ призначення
- Довідковий розділ
- Розділ управління конфігурацією програмного забезпечення
- Звіт про проблеми та коригувальні дії
- Розділ Інструменти, технології та методології
- Розділ контролю коду
- Записи: розділ збору, обслуговування та зберігання
- Методологія тестування
Діяльність SQA
Нижче наведено перелік заходів з контролю якості:
# 1) Створення плану управління SQA:
Першочергова діяльність включає складання належного плану щодо того, як буде здійснюватися SQA у вашому проекті.
Поряд із тим, яким підходом SQA ви будете слідувати, які інженерні заходи будуть виконуватися, а також це включає забезпечення того, щоб у вашій команді була правильна суміш талантів.
# 2) Встановлення контрольних точок:
Команда SQA встановлює різні контрольно-пропускні пункти, відповідно до яких вона оцінює якість проектної діяльності на кожному контрольно-пропускному пункті / етапі проекту. Це забезпечує регулярний контроль якості та роботу відповідно до графіка.
# 3) Застосувати технічні прийоми програмного забезпечення:
Застосування деяких методів програмної інженерії допомагає розробнику програмного забезпечення досягти високоякісних специфікацій. Для збору інформації дизайнер може використовувати такі методи, як інтерв’ю та FAST (Технологія системи функціонального аналізу).
Пізніше, на основі зібраної інформації, розробник програмного забезпечення може підготувати оцінку проекту, використовуючи такі методи, як WBS (структура розподілу робіт), SLOC (вихідний рядок кодів) та оцінка FP (функціональна точка).
# 4) Виконання офіційних технічних оглядів:
Для оцінки якості та дизайну прототипу проводиться FTR.
У цьому процесі проводиться зустріч з технічним персоналом для обговорення фактичних вимог до якості програмного забезпечення та якості дизайну прототипу. Ця діяльність допомагає виявляти помилки на ранній фазі SDLC і зменшує зусилля з переробки на пізніх фазах.
# 5) Наявність стратегії мультитестування:
Під стратегією мультитестування ми маємо на увазі, що не слід покладатися на будь-який єдиний підхід тестування, натомість слід проводити кілька типів тестування, щоб програмний продукт можна було тестувати добре з усіх боків для забезпечення кращої якості.
# 6) Примусове дотримання процесу:
Ця діяльність наполягає на необхідності дотримання процесу під час процесу розробки програмного забезпечення. Процес розробки також повинен дотримуватися визначених процедур.
Ця діяльність являє собою поєднання двох підзаходів, які детально пояснюються нижче:
(i) Оцінка продукції:
Ця діяльність підтверджує, що програмний продукт відповідає вимогам, визначеним у плані управління проектом. Це забезпечує належне дотримання встановлених стандартів проекту.
(ii) Моніторинг процесу:
Ця діяльність перевіряє, чи були вжиті правильні кроки під час розробки програмного забезпечення. Це робиться шляхом узгодження фактично вжитих кроків із задокументованими кроками.
# 7) Контроль змін:
У цій діяльності ми використовуємо поєднання ручних процедур та автоматизованих інструментів, щоб мати механізм контролю змін.
Перевіряючи запити на зміну, оцінюючи характер змін та контролюючи ефект зміни, забезпечується підтримка якості програмного забезпечення на етапах розробки та обслуговування.
# 8) Вимірювання впливу зміни:
Якщо команда з контролю якості повідомляє про будь-який дефект, тоді відповідна команда усуває дефект.
Після цього команда контролю якості повинна визначити вплив змін, спричинених цим виправленням дефекту. Їм потрібно протестувати не тільки, якщо зміна усунула дефект, а й чи сумісна ця зміна з усім проектом.
Для цього ми використовуємо показники якості програмного забезпечення, що дозволяє менеджерам та розробникам спостерігати за діяльністю та пропонованими змінами від початку до кінця SDLC та ініціювати коригувальні дії, де це потрібно.
# 9) Виконання аудиту SQA:
Як перевірити втрату пакетів в мережі -
Аудит SQA перевіряє весь фактичний процес SDLC з подальшим порівнянням його із встановленим процесом.
Він також перевіряє те, що команда, що повідомляється у звітах про стан справ, виконувалась чи ні. Ця діяльність також виявляє будь-які проблеми з недотриманням вимог.
# 10) Ведення записів та звітів:
Дуже важливо зберігати необхідну документацію, що стосується SQA, та ділитися необхідною інформацією з SQA із зацікавленими сторонами. Результати випробувань, результати аудиту, звіти про огляд, документацію із запитами на зміни тощо слід зберігати для подальшого використання.
# 11) Управління хорошими стосунками:
Насправді дуже важливо підтримувати гармонію між контролем якості та командою розробників.
Ми часто чуємо, що тестувальники та розробники часто почуваються вищими один від одного. Цього слід уникати, оскільки це може вплинути на загальну якість проекту.
Стандарти забезпечення якості програмного забезпечення
Загалом, SQA може вимагати відповідності одному або декільком стандартам.
Деякі з найпопулярніших стандартів розглядаються нижче:
ISO 9000: Цей стандарт базується на семи принципах управління якістю, які допомагають організаціям забезпечити узгодженість їхньої продукції чи послуг із потребами замовника.
На наведеному нижче зображенні зображено 7 принципів ISO 9000:
Рівень CMMI: CMMI означає Модель зрілості можливостей Інтеграція . Ця модель виникла в розробці програмного забезпечення. Він може бути використаний для безпосереднього вдосконалення процесу в рамках проекту, відділу або цілої організації.
5 рівнів CMMI та їх характеристики описані на зображенні нижче:
Організація оцінюється та отримує рейтинг рівня зрілості (1-5) залежно від типу оцінки.
Тест інтеграції моделі зрілості (TMMi): Заснована на CMMi, ця модель фокусується на рівнях зрілості в управлінні та тестуванні якості програмного забезпечення.
На нижньому зображенні зображено 5 рівнів TMMi:
Оскільки організація рухається на більш високому рівні зрілості, вона досягає більш високих можливостей виробляти високоякісну продукцію з меншою кількістю дефектів і тісно відповідає вимогам бізнесу.
Елементи забезпечення якості програмного забезпечення
Є 10 основних елементів SQA, які перелічені нижче для ознайомлення:
- Стандарти програмної інженерії
- Технічні огляди та аудити
- Тестування програмного забезпечення для контролю якості
- Збір та аналіз помилок
- Управління змінами
- Освітні програми
- Управління постачальниками
- Управління безпекою
- Безпека
- Управління ризиками
Методи SQA
Існує кілька методів оцінки якості. Аудит - головна техніка, яка широко застосовується. Однак у нас є ще кілька важливих прийомів.
Різні методи SQA включають:
- Аудит: Аудит включає перевірку робочої продукції та пов'язаної з нею інформації, щоб визначити, чи було дотримано набір стандартних процесів чи ні.
- Рецензування : Зустріч, на якій програмний продукт розглядається як внутрішніми, так і зовнішніми зацікавленими сторонами з метою отримання їх коментарів та схвалення.
- Інспекція коду: Це найбільш офіційний вид огляду, який проводить статичне тестування, щоб знайти помилки та уникнути зростання дефектів на пізніх стадіях. Це робиться підготовленим посередником / однолітком і базується на правилах, контрольному списку, критеріях входу та виходу. Рецензент не повинен бути автором коду.
- Інспекція проекту: Перевірка проекту виконується за допомогою контрольного списку, який перевіряє наступні області проектування програмного забезпечення:
- Загальні вимоги та дизайн
- Функціональні характеристики та специфікації інтерфейсу
- Конвенції
- Простежуваність вимог
- Структури та інтерфейси
- Логіка
- Продуктивність
- Обробка помилок та відновлення
- Випробуваність, розтяжність
- Зчеплення та згуртованість
- Моделювання: Моделювання - це інструмент, який моделює реальну ситуацію з метою віртуального вивчення поведінки досліджуваної системи.
- Функціональне тестування: Це методика контролю якості, яка перевіряє, що робить система, не враховуючи, як вона працює. Цей тип тестування чорної скриньки в основному фокусується на тестуванні специфікацій системи або функцій.
- Стандартизація: Стандартизація відіграє вирішальну роль у забезпеченні якості. Це зменшує двозначність і здогадки, тим самим забезпечуючи якість.
- Статичний аналіз: Це програмний аналіз, який виконується автоматизованим інструментом без фактичного запуску програми. Ця техніка широко використовується для забезпечення якості медичного, ядерного та авіаційного програмного забезпечення. Показники програмного забезпечення та зворотна інженерія - деякі популярні форми статичного аналізу.
- Покрокові інструкції: Проходження програмного забезпечення або проходження коду - це своєрідна експертна оцінка, коли розробник направляє членів команди розробників до перегляду продукту та підняття запитів, пропонування альтернативних варіантів, коментарів щодо можливих помилок, стандартних порушень чи будь-яких інших проблем.
- Тестування шляху: Це техніка тестування білого ящика де повне покриття філій забезпечується виконанням кожного незалежного шляху принаймні один раз.
- Стрес-тестування: Цей тип тестування проводиться, щоб перевірити, наскільки міцною є система, перевіряючи її під великим навантаженням, тобто поза нормальними умовами.
- Шість сигм: Six Sigma - це підхід до забезпечення якості, який націлений на майже ідеальні товари чи послуги. Він широко застосовується в багатьох областях, включаючи програмне забезпечення. Головною метою шести сигм є вдосконалення процесу, щоб вироблене програмне забезпечення не містило дефектів на 99,76%.
Висновок
SQA - паралельна діяльність, яка застосовується протягом усього життєвого циклу програмного забезпечення.
Гарантія якості програмного забезпечення дуже важлива для того, щоб ваш програмний продукт або послуга досягли успіху на ринку та виправдали очікування замовника.
Існує різноманітна діяльність, стандарти та методи, яких потрібно дотримуватися, щоб забезпечити якісне програмне забезпечення високої якості та узгоджується з потребами бізнесу.
Сподіваюся, ви отримали б чітке уявлення про концепцію забезпечення якості програмного забезпечення завдяки цій інформативній статті !!
Рекомендована література
- Тестування програмного забезпечення та сертифікати забезпечення якості - Частина 2
- Що таке атрибути якості?
- Підроблений Бог якості проти справжніх людей - хто відповідає за якість програмного забезпечення?
- Різниця між забезпеченням якості та контролем якості (QA проти QC)
- Ідеальний посібник з резюме тестування програмного забезпечення (із зразком резюме тестувальника програмного забезпечення)
- Як використовувати техніку Poka-Yoke (перевірка помилок) для поліпшення якості програмного забезпечення
- Взаєморозуміння при тестуванні: ключ до забезпечення якісного програмного забезпечення
- Тестування програмного забезпечення QA Assistant Job