- Чому необхідне тестування?
Тестування програмного забезпечення є важливим, тому що якщо в програмному забезпеченні є якісь помилки, їх можна виявити на ранній стадії та вирішити до релізу програмного продукту. Якщо продукт випустити без тестування – це може призвести до втрат прибутку, бути небезпечно для здоров’я або навіть до летального випадку. Належним чином перевірений програмний продукт забезпечує надійність, безпеку та високу продуктивність, що додатково призводить до економії часу, ефективності витрат і задоволення клієнтів.
- Що таке тестування?
Тестування програмного забезпечення – це оцінка якості ПО, спрямована на перевірку відповідності фактичних результатів очікуваним результатам і забезпечення відсутності дефектів у програмній системі. Також продукт перевіряється на роботу, щоб оцінити, наскільки він правильно розроблений і зможе задовольнити користувача.
- Цілі тестування
Можна визначити такі основні цілі тестування програмного забезпечення:
- Надання інформації про якість ПЗ кінцевому замовнику;
- підвищення якості ПЗ;
- запобігати виникненням дефектів.
- Якість тестування
Характеристики якості ПЗ
Функціональність (Functionality) – визначається здатністю ПЗ вирішувати завдання, які відповідають зафіксованим і очікуваним потребам користувача, за заданих умов використання ПЗ. Тобто ця характеристика відповідає за те, що ПЗ працює справно і точно, функціонально сумісно, відповідає стандартам галузі та захищене від несанкціонованого доступу.
Надійність (Reliability) – здатність ПЗ виконувати необхідні завдання у зазначених умовах протягом заданого проміжку часу або вказаної кількості операцій. Атрибути даної характеристики – це завершеність і цілісність всієї системи, здатність самостійно і коректно відновлюватися після збоїв у роботі, відмовостійкість.
Зручність використання (Usability) – можливість легкого розуміння, вивчення, використання і привабливість ПЗ для користувача.
Ефективність (Efficiency) – здатність ПЗ забезпечувати необхідний рівень продуктивності згідно з виділеними ресурсами, часом та іншими зазначеними умовами.
Зручність супроводу (Maintainability) – легкість, з якою ПЗ може аналізуватися, тестуватися, змінюватися для виправлення дефектів, для реалізації нових вимог, для полегшення подальшого обслуговування та адаптуватися до наявного оточення.
Портативність (Portability) – характеризує ПЗ з точки зору легкості його перенесення з одного оточення (software/hardware) в інше.
Модель якості програмного забезпечення
На даний момент найбільш поширена і найширше використовується багаторівнева модель якості програмного забезпечення, представлена у наборі стандартів ISO 9126. На верхньому рівні виділено 6 основних характеристик якості ПЗ, кожну з яких визначають набором атрибутів з відповідними метриками для подальшої оцінки (див. діаграму).
Модель якості програмного забезпечення (ISO 9126-1)
- 7 принципів тестування програмного забезпечення
- Тестування показує наявність дефектів (а не відсутність)
- Вичерпне тестування неможливе
- Раннє тестування – дешевше виправити баги
- Кластеризація дефектів
- Парадокс пестицидів
- Тестування залежить від контексту
- Відсутність помилок – це іллюзія
6. Різниця між QA та QC? За що відповідає QA, а за що QC?
Quality Assurance (забезпечення якості) – це превентивний процес, завданням якого є забезпечення якості продукту в майбутньому. У цьому сенсі Quality Assurance більш орієнтований на процес.
Quality Control (контроль якості) – це процес знаходження помилок в продукті, з метою їх подальшого виправлення. Завданням Quality Control є підтримка якості продукту в поточний момент часу. Quality Control орієнтований на продукт, що розробляється в даний момент.
7.Обов’язкові для Bug Report поля:
- Summary.
- Priority.
- Description.
- Steps to reproduce.
- Attachments.
- Actual result.
- Expected result.
Стандарт ISO/IEC 25010[1] (затверджений у грудні 2019 року) включає 8 характеристик якості:
функціональна придатність (Functional Suitability);
ефективність роботи (Performance efficiency);
сумісність (Compatibility);
зручність використання (Usability);
надійність (Reliability);
безпека (Security);
зручність супроводу (Maintainability);
переносимість (Portability).