Практична робота 1
Тема:
Оцінка
якості програмного забезпечення
Мета роботи: Оцінити
якість загально доступного програмного забезпечення. Створити пакет документів,
що включає вимоги, тестові сценарії, звіт дефектів.
1) Завантажити
та встановити загально доступне програмне забезпечення.
2)
Знайти будь який дефект або недолік
інтерфейсу користувача у програмі.
3)
Специфікувати вимоги і тестовий сценарій, що
покривають знайдену проблему.
В результаті виконання практичної роботи необхідно:
1)
Специфікувати вимоги для обраної частини
програми.
2)
Створити набір тестових сценаріїв, які
покривають вимоги.
3)
Провести тестування програмного забезпечення,
знайти дефекти та оформити їх у звіт.
Якість програмного забезпечення
Як перевірити, що вимоги визначені досить повно і описують усе, що
очікується від майбутньої програмної системи? Це можна зробити, простеживши, чи
всі необхідні аспекти якості ПЗ відбиті в них. Саме поняття якісного ПЗ
відповідає уявленню про те, що програма досить успішно справляється з всіма
покладеними на неї задачами та не приносить проблем ні кінцевим користувачам,
ні їхньому начальству, ні службі підтримки, ні фахівцям по продажах. Та й самим
розробникам створення якісної програми приносить набагато більше задоволення.
Якщо попросити групу людей висловити свою думку щодо того, що таке якісне
ПЗ, можна одержати наступні варіанти відповідей:
·
Його легко використовувати
·
Воно демонструє гарну продуктивність.
·
У ньому немає помилок
·
Воно не псує користувацькі дані при збоях
·
Його можна використовувати на різні
платформах
·
Воно може працювати 24 години на добу й 7
днів в тиждень.
·
У нього легко додавати нові можливості
·
Воно задовольняє потреби користувачів
·
Воно добре документоване
Все це дійсно має безпосереднє відношення до якості ПЗ. Але ці відповіді
виділяють характеристики, важливі для конкретного користувача, розробника або
групи таких осіб. Для того щоб задовольнити потреби всіх сторін (кінцевих
користувачів, замовників, розробників, адміністраторів систем, у яких воно буде
працювати, організацій-регуляторів та ін.), для досягнення міцного положення
розроблюваного ПЗ на ринку та підвищення потенціалу його розвитку необхідне
врахування всієї сукупності характеристик ПЗ, що є важливими для всіх
зацікавлених осіб
Наведені вище відповіді показують, що якість ПЗ може бути описана великим
набором різнорідних характеристик. Такий підхід до опису складних понять
називається холістичним (від грецького слова ????, ціле). Він
не дає єдиної концептуальної основи для розгляду питань, що зачіпаються, яку
дає цілісна система уявлень (наприклад, Ньтонівська механіка у фізиці або
класичній теорії обчислюваності на основі машин Тьюринга), але дозволяє,
принаймні, не упустити нічого істотного
Якість програмного забезпечення визначається в стандарті ISO 9126 як
вся сукупність його характеристик, що належать до можливості задовольняти
висловлені або ті, що маються на увазі потреби всіх зацікавлених осіб
Розрізняються поняття внутрішньої якості, пов'язаного з
характеристиками ПЗ самого по собі, без урахування його поведінки; зовнішньої
якості, що характеризує ПЗ із точки зору його поведінки; і якості ПЗ при
використанні у різних контекстах - тої якості, що відчувається
користувачами при конкретних сценаріях роботи ПЗ. Для всіх цих аспектів якості
уведені метрики, що дозволяють оцінити їх. Крім того, для створення добротного
ПЗ істотно якість технологічних процесів його розробки. Взаємини між цими
аспектами якості за схемою, прийнятою ISO 9126, показане на рис. 1.
Рис. 1. Основні аспекти якості ПЗ за ISO
9126
Системи керування якістю - Вимоги. Моделі для забезпечення якості при
проектуванні, розробці, комерціалізації, установці та обслуговуванні
Визначає загальні правила забезпечення якості результатів у всіх процесах
життєвого циклу. (Аналог - ДЕРЖСТАНДАРТ Р-2001).
Цей
стандарт виділяє наступні процеси:
§ Управління якістю
§ Управління ресурсами
§ Розвиток системи управління
§ Дослідження ринку
§ Проектування продуктів
§ Придбання
§ Виробництво
§ Надання послуг
§ Захист продуктів
§ Оцінка потреб замовників
§ Підтримка комунікацій із замовниками.
§ Підтримка внутрішніх комунікацій
§ Управління документацією
§ Ведення записів про діяльність.
§ Планування
§ Навчання персоналу
§ Внутрішні аудити
§ Оцінки управління
§ Моніторинг і виміри
§ Управління невідповідностями
§ Постійне вдосконалювання
§ Управління та розвиток системи в цілому.
Для
кожного процесу потрібно мати плани розвитку процесу, що складаються як мінімум
з наступних розділів:
§ Проектування процесу
§ Документування процесу
§ Реалізація процесу
§ Підтримка процесу
§ Моніторинг процесу
§ Управління процесом
§ Удосконалення процесу
Крім
підтримки й розвитку системи процесів, націлених на задоволення потреб
замовників і користувачів, ISO 9001 вимагає:
Ø Визначити, документувати та розвивати власну систему якості на основі
вимірних показників
Ø Використовувати цю систему якості як засіб управління процесами, націлюючи
їх на більше задоволення потреб замовників, плануючи й постійно відслідковуючи
якість результатів всіх видів діяльності, у тому числі й самого управління
Ø Забезпечити використання якісних ресурсів, якісного (компетентного,
професійного) персоналу, якісної інфраструктури і якісного оточення
Ø Постійно контролювати дотримання вимог до якості на практиці, у всіх
процесах проектування, виробництва, надання послуг і при придбаннях
Ø Передбачити процес усунення дефектів, визначити й контролювати якість
результатів цього процесу
Нижче наведені визначення цих
характеристик і атрибутів за стандартом ISO 9126:2001:
o
Функціональність (functionality)
Здатність ПЗ в певних умовах вирішувати задачі, потрібні користувачам.
Визначає, що саме робить ПЗ, які задачі воно вирішує
o
Функціональна придатність (suitability).
Здатність вирішувати потрібний набір задач
o
Точність (accuracy).
Здатність видавати потрібні результати
o
Здатність до взаємодії (interoperability).
Здатність взаємодіяти з потрібним набором інших систем
o
Відповідність стандартам і правилам
(compliance).
Відповідність ПЗ наявних індустріальних стандартах, нормативним і
законодавчим актам, іншим регулюючим нормам
o
Захищеність (security).
Здатність запобігати неавторизированому, тобто без вказівки особи, що
намагається його здійснити, і недозволеному доступу до даних і програм
o
Надійність (reliability).
Здатність ПЗ підтримувати визначену працездатність у заданих умовах
o
Зрілість, завершеність (maturity).
Величина, зворотна частоті відмов ПЗ. Звичайно виміряється середнім часом
роботи без збоїв і величиною, зворотною імовірності виникнення відмови за даний
період часу
o Стійкість до відмов (fault
tolerance).
Здатність підтримувати заданий рівень працездатності при відмовах і
порушеннях правил взаємодії з оточенням
o
Здатність до відновлення (recoverability).
Здатність відновлювати визначений рівень працездатності й цілісність даних
після відмови, необхідні для цього час і ресурси
o
Відповідність стандартам надійності (reliability compliance).
Цей атрибут доданий в 2001 році
o
Зручність використання (usability)
або практичність
Здатність ПЗ бути зручним у навчанні та використанні, а також привабливим
для користувачів
o
Зрозумілість (understandability).
Показник, зворотний до зусиль, які затрачаються користувачами на сприйняття
основних понять ПЗ та усвідомлення їх застосовності для розв'язання своїх задач
o
Зручність навчання (learnability).
Показник, зворотний зусиллям, затрачуваним користувачами на навчання роботі
з ПЗ.
o
Зручність роботи (operability).
Показник, зворотний зусиллям, що вживається користувачами для розв'язання
своїх задач за допомогою ПЗ.
o
Привабливість (attractiveness).
Здатність ПЗ бути привабливим для користувачів. Цей атрибут доданий в 2001
році
o
Відповідність стандартам зручності використання (usability compliance).
Цей атрибут доданий в 2001 році
o
Продуктивність (efficiency) або
ефективність
Здатність ПЗ при заданих умовах забезпечувати необхідну працездатність
стосовно виділюваного для цього ресурсам. Можна визначити її і як відношення
одержуваних за допомогою ПЗ результатів до затрачуваних на це ресурсів усіх
типів
o
Часова ефективність (time behaviour).
Здатність ПЗ видавати очікувані результати, а також забезпечувати передачу
необхідного об'єму даних за відведений час
o
Ефективність використання ресурсів
(resource utilisation).
Здатність вирішувати потрібні задачі з використанням визначених об'ємів
ресурсів визначених видів. Маються на увазі такі ресурси, як оперативна й
довгострокова пам'ять, мережні з'єднання, пристрої вводу та виводу та ін.
o
Відповідність стандартам продуктивності (efficiency compliance).
Цей атрибут доданий в 2001 році
o
Зручність супроводу (maintainability).
Зручність проведення всіх видів діяльності, пов'язаних із супроводом
програм
o
Аналізованість (analyzability) або
зручність проведення аналізу
Зручність проведення аналізу помилок, дефектів і недоліків, а також
зручність аналізу необхідності змін і їх можливих наслідків
o
Зручність внесення змін (changeability).
Показник, зворотний трудозатратам на виконання необхідних змін
o
Стабільність (stability).
Показник, зворотний ризику виникнення несподіваних ефектів при внесенні
необхідних змін
o
Зручність перевірки (testability).
Показник, зворотний трудозатратам на проведення тестування і інших видів
перевірки того, що внесені зміни привели до потрібних результатів
o
Відповідність стандартам зручності супроводу (maintainability compliance).
Цей атрибут доданий в 2001 році
o
Переносимість (portability).
Здатність ПЗ зберігати працездатність при перенесенні з одного оточення в
інше, включаючи організаційні, апаратні й програмні аспекти оточення
Іноді ця характеристика називається у нашій літературі мобільністю. Однак
термін "мобільність" варто зарезервувати для перекладу
"mobility" - здатності ПЗ й комп'ютерної системи в цілому зберігати
працездатність при її фізичному переміщенні в просторі.
o
Адаптованість (adaptability).
Здатність ПЗ пристосовуватися різним оточенням без проведення для цього
дій, крім заздалегідь передбачених
o
Зручність установки (installability).
Здатність ПЗ бути встановленим або розгорнутим у визначеному оточенні
o
Здатність до співіснування (coexistence).
Здатність ПЗ співіснувати з іншими програмами у загальному оточенні, ділячи
з ними ресурси
o
Зручність заміни (replaceability) іншого
ПЗ даним
Можливість застосування даного ПЗ замість інших програмних систем для
вирішення тих же задач у певному оточенні
o
Відповідність стандартам переносимості (portability compliance).
Цей атрибут доданий в 2001 році
Перераховані атрибути належать до внутрішньої та зовнішньої якості ПЗ
згідно ISO 9126. Для опису якості ПО при використанні стандарт ISO 9126-4 [4] пропонує іншій,
більш вузький набір характеристик
o
Ефективність (effectiveness).
Здатність ПЗ надавати користувачам можливість вирішувати їхньої задачі з
необхідною точністю при використанні в заданому контексті
o
Продуктивність (productivity).
Здатність ПЗ надавати користувачам визначені результати в рамках очікуваних
витрат ресурсів
o
Безпека (safety).
Здатність ПЗ забезпечувати необхідно низький рівень ризику завдання втрат
життю й здоров'ю людей, бізнесу, власності або навколишньому середовищу
o
Задоволення користувачів (satisfaction).
Здатність ПЗ приносити задоволення користувачам при використанні в заданому
контексті
Крім перерахованих характеристик і атрибутів якості, стандарт ISO 9126:2001
визначає набори метрик для оцінки кожного атрибута. Наведемо наступні приклади
таких метрик:
·
Повнота реалізації функцій - відсоток реалізованих функцій по відношенню до перерахованого у
вимогах. Використовується для виміру функціональної придатності
·
Коректність реалізації функцій - правильність їх реалізації по відношенню до вимог. Використовується
для виміру функціональної придатності
·
Відношення числа виявлених дефектів до
прогнозованого. Використовується для визначення зрілості
·
Відношення числа проведених тестів до
загального їх числа. Використовується для визначення зрілості
·
Відношення числа доступних проектних
документів до зазначеного в їх списку. Використовується для виміру зручності
проведення аналізу
·
Наочність і повнота документації. Використовується для оцінки
зрозумілості.
Перераховані характеристики та атрибути якості ПЗ дозволяють систематично
описувати вимоги до нього, визначаючи, які властивості ПЗ за даною
характеристикою хочуть бачити зацікавлені сторони. Таким чином, вимоги повинні
визначати наступне:
Ø Що ПЗ має робити, наприклад:
o дозволяти клієнтові оформити замовлення й забезпечити їхню доставку;
o забезпечувати контроль якості будівництва й відслідковувати проблемні
місця;
o підтримувати потрібні характеристики автоматизованого процесу виробництва,
запобігаючи аварії й оптимальним способом використовуючи наявні ресурси
Ø Наскільки воно має бути надійним, наприклад:
o працювати 7 днів у тиждень і 24 години на добу;
o допускається непрацездатність протягом не більше 3 годин у рік;
o ніякі уведені користувачами дані при відмові не повинні губитися
Ø Наскільки ним має бути зручно користуватися, наприклад:
o покупець повинен, знаючи назву товару й маючи середні навички роботи в
Інтернет, знаходити потрібний йому товар за не більш ніж 2 хв.;
o інженер за фахом "будівництво мостів" повинен протягом одного дня
вміти розібратися в 80% функцій системи
Ø Наскільки воно повинне бути ефективним, наприклад:
o підтримувати обслуговування до 10000 запитів у секунду;
o час відгуку на запит при максимальному завантаженні не повинне перевищувати
3 с;
o час реакції на зміну параметрів процесу виробництва не повинне перевищувати
0.1 з;
o на обробку одного запиту не повинне витрачатися більше 1 MB оперативної
пам'яті
Ø Наскільки зручним повинен бути його супровід, наприклад:
o додавання в систему нового виду запитів не повинне вимагати більше 3
людино-днів;
o додавання підтримки нового етапу процесу виробництва не повинне коштувати
більше $20000.
Ø Наскільки воно повинне бути стерпне, наприклад:
o ПЗ повинне працювати на операційних системах Linux, Windows XP і MacOS X;
o ПЗ повинне працювати з документами у форматах MS Word і HTML;
o ПЗ повинне зберігати файли звітів у форматах MS Word 20**, MS Excel 20**,
HTML, RTF та у вигляді звичайного тексту;
o ПЗ повинне сполучатися з існуючою системою запису даних про замовлення.
Наведені атрибути якості закріплені в стандартах, але це не означає, що
вони цілком вичерпують поняття якості ПЗ. Так, у стандарті ISO 9126 відсутні
характеристики, пов'язані з мобільністю ПЗ (mobility), тобто
здатністю програми працювати при фізичних переміщеннях машини, на якій вона
працює. Замість надійності багато дослідників воліють розглядати більш загальне
поняття добротності (dependability), що описує здатність ПЗ підтримувати визначені показники якості за
основними характеристиками ( функціональності, продуктивності, зручності
використання) із заданими ймовірностями виходу за їх рамки та визначеним
максимальним збитком від можливих порушень. Крім того, активно досліджуються
поняття зручності використання, безпеці й захищеності ПЗ, - вони здаються
більшості фахівців набагато більш складними, ніж це описується даним стандартом
Питання
для самоконтролю:
1. Сертифікація
програмного забезпечення в Україні.
2. Значення
і вартість якості.
3. Навести
рівні цілісності программного забезпечення.
4. Пояснити
значення і вартість якості (Value and Costs of Quality) при розробці програмного забезпечення.
5. Проаналізувати
процес підвищення якості (Quality Improvement).
6. Надати
визначення поняттю метрики як основи вимірювання.