Критерій достатності процесу тестування програмного забезпечення
Викладення побудови нової математичної моделі надійності програмного забезпечення з динамічним показником величини програмного проекту: порівняльний аналіз існуючих і розробленої моделей; формалізація критерію достатності процесу програмного тестування.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | украинский |
Дата добавления | 10.03.2014 |
Размер файла | 1015,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
УДК 004.052; 004.413.5
Яковина В.С., Сенів М.М., Чабанюк Я.М., Федасюк Д.В., Хімка У.Т.
Національний університет "Львівська політехніка"
кафедра програмного забезпечення
кафедра обчислювальної математики і програмування
КРИТЕРІЙ ДОСТАТНОСТІ ПРОЦЕСУ ТЕСТУВАННЯ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ
© Яковина В.С., Сенів М.М., Чабанюк Я.М., Федасюк Д.В., Хімка У.Т., 2010
В роботі побудовано нову математичну модель надійності програмного забезпечення з динамічним показником величини програмного проекту. Проведено порівняльний аналіз існуючих та розробленої моделей на реальних тестових прикладах. Здійснено формалізацію критерію достатності процесу тестування програмного забезпечення на основі запропонованої моделі.
математична модель надійність програмне
The new mathematical model for software reliability with dynamic index of software project size has been developed. The comparative analysis of existing and proposed models using real test examples has been carried out. The criterion of software testing process sufficiency has been formulated on the basis of developed model.
Вступ. Розвиток інформаційних технологій та комп'ютерної техніки та всебічне проникнення її в усі сфери життєдіяльності людини передбачає постановку нових задач для розробників програмного забезпечення. Програмні продукти стають дедалі складнішими, багатокомпонентними і вимагають спеціалізованого підходу.
За умови досягнення високої надійності сучасна техніка стає ефективною та конкурентоспроможною. Саме від показника надійності похідними будуть інші не менш важливі показники - якість, живучість, безпека, готовність.
В багатьох дослідженнях поняття надійності програмного забезпечення (ПЗ) виділяють окремо [1], тому, що при застосуванні понять надійності до програмних засобів варто враховувати особливості і відмінності цих об'єктів від традиційних технічних систем, для яких спочатку розроблялася теорія надійності. Принципова відмінність програм від техніки, та технічних систем зокрема, полягає в тому, що програма не зношується з плином часу, а навпаки, виявляються помилки, які не були знайдені раніше, ПЗ з часом вдосконалюється і покращується.
Водночас підвищуються і вимоги до надійності та витривалості програм, виникає потреба у скороченні затрат на тестування та, відповідно, у прогнозуванні надійності розроблюваного програмного забезпечення.
Для розв'язання таких задач оцінки та прогнозування надійності на даний час використовують моделі надійності ПЗ [1-3]. Однак усі перелічені моделі містять цілий ряд спрощень і припущень, що зменшує клас задач та область застосування їх для реального об'єкту.
Тому на сьогодні актуальною задачею програмної інженерії є розроблення моделей надійності ПЗ з підвищеним ступенем адекватності реальним об'єктам.
Аналіз існуючих моделей надійності ПЗ. Загальне визначення надійності ПЗ наведено в [4]. Нехай - довільно визначений клас помилок, а - відносна одиниця часу, одиниці вимірювання якої визначаються конкретною програмою, надійність якої оцінюється. Тоді надійністю програмного пакету по відношенню до класу помилок і відносно метрики часу є імовірність того, що жодної помилки цього класу не виникне протягом виконання програми за наперед заданий відносний період часу.
Сучасні підходи до оцінювання надійності ПЗ засновані на паралелях з надійністю апаратного забезпечення з урахуванням принципових відмінностей між програмним та апаратним забезпеченням [4]. Наприклад, апаратне забезпечення характеризується як спаданням, так і зростанням інтенсивності виявлення помилок. Спадання інтенсивності виявлення помилок пов'язано з етапом приробітки (виявлення і усунення технологічного браку) і, крім того, з виявленням і усуненням помилок внесених не етапі проектування. Зростання інтенсивності виявлення помилок насамперед пов'язано зі зношуванням та старінням компонентів апаратного забезпечення. Натомість у випадку програмного забезпечення відсутня така характеристика як старіння. ПЗ може морально застарівати внаслідок змін вимог користувача або комп'ютерного оточення (апаратного забезпечення, операційної системи тощо), однак відколи програма модифікується для того щоб задовольняти цим змінам, це вже буде не те саме ПЗ, а модифікована або покращена версія. Так само як і апаратне забезпечення ПЗ характеризується спаданням інтенсивності виявлення помилок (покращенням якості) по мірі того, як зростає час використання системи і помилки, наприклад дизайну чи коду, виправляються. Слід зазначити, що визначене значення міри надійності ПЗ завжди є відносним до заданого середовища використання. Так, наприклад, різні користувачі, що використовують різні гілки виконання того самого програмного продукту, найбільш імовірно отримають різні значення надійності програми.
За останні 30 років було запропоновано багато аналітичних моделей для вирішення проблеми вимірювання надійності ПЗ. Ці підходи базуються головним чином на історії спостереження помилок ПЗ і можуть бути класифіковані згідно з процесом дослідження помилок наступним чином [4]:
· Моделі на основі часу між помилками. В цьому класі моделей предметом дослідження є час між виявленнями помилок. Найбільш поширеним припущенням є те, що час між -ою та -ою помилками підлягає певному виду розподілу, параметри якого залежать від кількості помилок, що залишаються в програмі протягом цього інтервалу. Оцінки параметрів отримуються на основі спостережених часових інтервалів між помилками, а оцінки надійності ПЗ (середній час до наступної помилки тощо) потім отримують на основі моделі з визначеними параметрами. Інший підхід трактує час між помилками як реалізацію стохастичного процесу і використовує відповідні моделі часових рядів для опису процесу виявлення помилок, що лежить в основі цього процесу.
· Моделі на основі кількості помилок. Предметом дослідження цього класу моделей є кількість помилок у визначеному часовому інтервалі, а не час між помилками. Вважають, що кількість помилок відповідає відомому стохастичному процесу з дискретною або неперервною інтенсивністю виявлення помилок, що залежить від часу. Параметри функції інтенсивності виявлення помилок можна оцінити на основі спостережених значень кількості помилок чи з часів між помилками. Оцінка надійності ПЗ, як і в попередньому випадку, може бути отримана з відповідних рівнянь.
· Моделі на основі висівання помилок. Основним підходом цього класу моделей є "висівання" відомої кількості помилок в програму, яка, вважається, має невідому кількість власних помилок. Після цього програма тестується і підраховується виявлена кількість висіяних та власних помилок. На основі цього отримують оцінку кількості помилок в програмі до висівання, яка використовується для отримання оцінок надійності ПЗ та інших відповідних характеристик.
· Моделі на основі області вхідних даних. Основним підходом є генерування набору тестових прикладів з вхідного розподілу, який, вважається, репрезентує цільове використання програми. Через складність отримання такого розподілу, область вхідних даних розділяють на набір класів еквівалентності, кожен з яких зазвичай пов'язують з одним зі шляхів виконання програми. Оцінку надійності ПЗ отримують на основі помилок, виявлених шляхом фізичного чи символьного виконання тестових прикладів взятих з області вхідних даних.
Широко використовуються моделі на основі кількості помилок [2, 4, 5]. Цей клас моделей пов'язаний з кількістю виявлених помилок на заданому інтервалі тестування. По мірі усунення дефектів з системи, очікується, що виявлена кількість помилок в одиницю часу спадатиме. В такому випадку залежність кумулятивної кількості помилок від часу виходитиме на насичення. Слід зазначити, що під часом в цьому випадку розуміють календарний час, процесорний час, кількість виконаних тестових прикладів чи деяку іншу відповідну метрику.
Було запропоновано багато моделей, що описують такі явища. В основу більшості таких моделей покладено розподіл Пуассона, параметри якого мають різний вигляд для різних моделей, оскільки використання такого розподілу випадкових величин добре зарекомендувало себе в багатьох областях, де основна зацікавленість полягає в кількості подій [4].
До таких моделей відносяться моделі: Shooman [6], Jelinski-Moranda [7], Schick-Wolverton [8], Musa [9], Schneidewind [10], Goel-Okumoto [11], S-подібна модель зростання надійності [12] тощо. Крім того нещодавно була представлена "узагальнена модель негомогенного пуасонівського процесу" [13]. Для підвищення точності цієї моделі автори [13] пропонують використовувати таку форму кривої інтенсивності виявлення несправностей, у якій введено додатковий параметр для оцінки величини проекту, де вибір параметру залежить від процесу проведення тестування з наступними рекомендованими значеннями:
- для невеликого проекту, в якому розробник є одночасно і тестером (моделі Musa, Goel-Okumoto і Schneidewind);
- для середнього проекту, в якому тестування і проектування ПЗ виробляється різними людьми з однієї робочої групи (S-подібна модель);
- для великого проекту, в якому групи тестування і розробки ПЗ працюють над проектом паралельно;
- для дуже великого проекту, в якому відділи тестування і розробки незалежні.
Усі ці моделі базуються на наступних основних припущеннях [5-13]:
· Кількість помилок на момент , відповідає пуассоновому процесу з функцією математичного сподівання . При цьому очікувана кількість помилок, які буде виявлено за проміжок часу пропорційна кількості несправностей, що залишилися у системі на момент . Також вважається, що - обмежена, не спадаюча функція часу: . Отже, ця модель належить до категорії скінчених функцій.
· Кількості помилок , виявлених на відповідних часових інтервалах незалежні для будь-якої скінченої кількості часових проміжків .
· Імовірності виявлення будь-якої помилки на будь-якій ітерації є однаковими.
· При виявленні помилки, з програмного коду видаляється тільки один дефект без уведення нових.
Аналітичний вигляд функцій інтенсивності виявлення несправностей () та функції кумулятивної кількості несправностей () основних моделей наведено в табл. 1. (Зауважимо, що
[1]).
Таблиця 1. Функції інтенсивності виявлення несправностей основних моделей надійності ПЗ.
Неважко помітити, що параметри моделей, наведених в табл. 1 пов'язані наступними співвідношеннями:
,
де - загальна кількість несправностей у ході спостережень, - деякий коефіцієнт.
Основним недоліком моделей [6-12] є те, що внаслідок припущень і спрощень, вони не достатньо повно відображають процес тестування, а їх результати не завжди збігаються з практичними [5, 13]. Основними недоліками моделі [13], на нашу думку, є відсутність формалізації параметру величини проекту ; його апріорне встановлення, незалежно від реальних експериментальних даних тестування ПЗ; значення параметру з діапазону цілих чисел, що не дозволить описувати поведінку реального ПЗ, яке за своєю величиною і складністю має скоріше неперервний ніж дискретний характер. Крім того, оскільки значення не є параметром розподілу, модель [13] фактично не є однією взаємопов'язаною моделлю, а набором з чотирьох моделей, що відрізняються значенням .
Основним завданням даної роботи є формалізація критерію достатності процесу тестування ПЗ з точки зору його надійності та наявності дефектів. Такий критерій повинен слугувати кількісною мірою при прийнятті рішення про достатність етапу тестування при розробці програмних продуктів. Цей критерій повинен базуватись на моделі надійності, побудова якої для неоднорідного пуассонового процесу з підвищеним ступенем адекватності реальним об'єктам шляхом уведення і формалізації неперервного індексу складності проекту є складовою частиною роботи. Крім того, для визначення ступеня точності відображення властивостей реального ПЗ розробленою моделлю буде проведено опис поведінки надійності ПЗ на основі експериментальних даних та порівняння його з існуючими моделями.
Побудова моделі оцінювання та прогнозування надійності ПЗ з індексом величини проекту. Припустимо, що час виявлення помилок у моделі оцінювання та прогнозування надійності ПЗ розподілений за законом Пуассона. Крім того вважаємо, що індекс величини проекту є параметром моделі та визначається на основі експериментальних даних і набуває значення з дійсного діапазону і завжди більший від нуля.
Пропонується наступний вигляд функції інтенсивності виявлення несправностей:
(1)
де - коефіцієнт, що визначає загальну кількість помилок в ПЗ, - коефіцієнт, що характеризує загальну тривалість процесу виявлення помилок, - індекс величини проекту, що узагальнює S-подібну модель.
Для інтенсивності (1) функція кумулятивної кількості несправностей має вигляд:
,(2)
де , , - неповна гама-функція. Зауважимо, що при функція інтенсивності виявлення несправностей (1) та кумулятивна функція (2) співпадають з виглядом відповідних функцій S-подібної моделі.
Загальна кількість помилок в ПЗ визначається кумулятивною функцією при , таким чином:
,(3)
де - гама-функція.
Отже, аналітичний вигляд побудованої моделі дозволяє узагальнити вираз для загальної кількості помилок в системі (3), яка залежить від величини та складності проекту і визначається параметрами моделі. Крім того, частковий випадок при (S-подібна модель) з урахуванням того, що , дає значення , що відповідає S-подібній моделі.
Рівняння (1) та (2) будемо називати моделлю з індексом величини проекту.
Під величиною проекту розуміємо комплексний показник, який корелює з метриками складності коду програмного продукту [14]. Встановлення залежності між індексом величини проекту та метриками складності коду є предметом подальших досліджень.
Проведені попередні дослідження дозволяють встановити наступні інтервали для індексу величини проекту:
при проект можна вважати невеликим,
при проект можна вважати середньої величини,
при проект можна вважати великим,
при - дуже великим.
Однак остаточне вирішення цього питання, так само як і отримання аналітичного виразу для індексу величини проекту зі статистичною достовірністю потребує подальших досліджень із залученням множини експериментальних даних для різних типів і класів ПЗ.
Для визначення параметрів , , побудованої моделі застосуємо метод максимальної правдоподібності.
Нехай на проміжках виявлено помилок (). Припустивши, що час виявлення помилок розподілений за Пуассоном, побудуємо функцію максимальної правдоподібності:
Враховуючи вигляд з рівняння (2) маємо:
Функція правдоподібності задовольняє умовам:
1. диференційована при довільних значеннях вибірки;
2. досягає максимуму в інтервалі можливих значень.
Для отримання оцінок розв'язуємо систему рівнянь:
(4)
Без зменшення загальності замість функції у системі (4) розглядаємо функцію і після проведених деяких елементарних перетворень, отримаємо систему рівнянь:
(5)
де , .
Система трансцендентних рівнянь (5) може бути розв'язана чисельно (наприклад модифікованим методом Ньютона), а отримані наближені значення можуть бути використані для аналізу достатності тестування, величини проекту, надійності програмного продукту.
Зауваження 1. Першим етапом алгоритму розв'язку задачі побудови функції правдоподібності є встановлення інтервалів , на яких кількості помилок мають пуассонів розподіл [5].
Зауваження 2. Встановлення властивостей точкових оцінок , таких як правдивість, ефективність, незміщеність і конзистентність є предметом подальших досліджень.
Дослідження моделі на результатах експериментальних даних тестування ПЗ. В роботі [5] було проведено ряд програмних експериментів з метою перевірки належності поведінки зростання надійності ПЗ до неоднорідного пуассонового процесу. Як емпіричні спостереження, так і тестування статистичних гіпотез показали, що поведінка надійності ПЗ не відповідає неоднорідному пуассоновому процесу в загальному, і не описується моделлю Goel-Okumoto зокрема [5].
В цій частині статті представлені результати опису поведінки надійності ПЗ побудованою моделлю, моделлю Goel-Okumoto та S-подібною моделлю.
Для можливості коректного порівняння результатів застосування побудованої моделі з відомими моделями надійності ПЗ було взято емпіричні дані з першого експерименту роботи [5].
Дослідження проводились так, щоб імітувати використання моделі надійності на етапі тестування проектів з розробки програмного забезпечення:
· етап тестування з 1200 ітерацій розбивали на фази, в даному випадку по 50 ітерацій;
· після кожних 50 ітерацій тестування методом Ньютона з використанням пакету Mathcad 14.0 розв'язували систему рівнянь (5) на інтервалі і отримували точкові оцінки параметрів , та . Отримані наближені значення підставляли у вираз (2) і будували залежність на інтервалі ;
· після побудови залежності на усьому проміжку експериментальних даних розраховували коефіцієнт кореляції та середньоквадратичну похибку для експериментальних значень і значень, отриманих з моделі.
Такі дослідження проводились для моделі (2), моделі Goel-Okumoto та S-подібної моделі (див. табл. 1).
Квадрат коефіцієнту кореляції між експериментальною та обчисленою кумулятивною кількістю помилок () та середня квадратична похибка (, тут - експериментальне значення кумулятивної кількості помилок в момент часу , - розраховане з параметрів відповідної моделі значення кумулятивної кількості помилок в момент часу ) наведено в табл. 2.
Таблиця 2. Параметри опису експериментальних даних дослідженими моделями.
Дані табл. 2 показують, що запропонована модель з індексом складності проекту суттєво краще описує реальні експериментальні результати: так квадрат коефіцієнту кореляції між експериментальними даними і моделлю з індексом проекту становить 0,999, в той час як для моделі Goel-Okumoto - 0,993, а для S-подібної моделі - 0,995; середнє значення квадрату відхилень між обчисленими та експериментальними значеннями становить 0,05 для моделі (2), що майже на порядок краще ніж двох інших моделей - 0,12 для моделі Goel-Okumoto та 0,18 для S-подібної моделі. Крім того, отримані результати показують, що в цілому S-подібна модель краще описує експериментальні дані, ніж модель Goel-Okumoto.
Розрахована за рівнянням (3) загальна кількість помилок в програмному продукті з використанням отриманих для усього етапу тестування параметрів моделі (2) становить 35,1, тоді як за даними [5] в цей програмний продукт було впроваджено 38 помилок. Таким чином модель надійності ПЗ з індексом складності проекту придатна до використання на підприємстві для оцінювання загальної кількості помилок та прогнозування частоти їх появи. Отримана оцінка індексу величини проекту для усього етапу тестування становить 0,085, що дозволяє віднести програму до невеликих, що підтверджується даними роботи [5] - програма складалась з 9564 рядків коду мовою С, з яких 6218 виконуваних.
На рис. 1 зображено графік залежності кумулятивної кількості помилок від часу (точки - експериментальні дані з [5], крива 1 - модель з індексом складності проекту (2), крива 2 - модель Goel-Okumoto, крива 3 - S-подібна модель). На вставці зображено у більшому масштабі ті самі залежності на початкових ітераціях тестування.
Як видно з цього рисунку, на пізніх етапах тестування усі моделі однаково добре описують експериментальні дані, що узгоджується з результатами роботи [5]. Однак на початкових етапах тестування модель Goel-Okumoto, як і S-подібна модель незадовільно описують дані тестування реального ПЗ, на відміну від запропонованої моделі з індексом складності проекту, що підтверджується даними табл. 2.
Рис. 1. Залежність експериментальної та розрахованої кумулятивної кількості помилок від часу.
Найбільш яскраво відмінності між цими трьома моделями проявляються на залежностях функції інтенсивності виявлення помилок від часу, які наведені на рис. 2 (крива 1 - модель з індексом складності проекту, крива 2 - модель Goel-Okumoto, крива 3 - S-подібна модель).
Рис. 2. Залежність інтенсивності виявлення помилок від часу для різних моделей.
Як видно з рис. 2 як модель Goel-Okumoto, так і S-подібна модель показують завищені значення інтенсивності виявлення помилок при малих значеннях часу, і навпаки - занижені значення при великих вказуючи на більш раннє завершення процесу виявлення помилок, ніж спостерігається в реальних експериментальних даних. Крім того, модель Goel-Okumoto неадекватно описує початковий етап тестування (рис. 2). Своєю чергою S-подібна модель найгірше описує середину процесу тестування (в нашому випадку приблизно від 50 до 175 ітерації).
Важливою характеристикою надійності є частота відмов (у випадку програмного забезпечення більш коректним буде вживати термін частота помилок, оскільки не усі помилки ПЗ приводять до його відмови), яка за означенням є щільністю імовірності випадкової величини і визначається як [1]:
.
Графік залежності частоти помилок від часу для трьох розглянутих моделей надійності наведено на рис. 3.
Рис. 3. Залежність частоти помилок від часу для різних моделей.
Як і у випадку функції інтенсивності виявлення помилок, залежність частоти помилок (рис. 3) дозволяє зробити аналогічні висновки. Модель Goel-Okumoto (крива 2, рис. 3) показує, що частота помилок є аномально високою в початкові моменти часу і аномально швидко затухає з часом, що не відповідає практичним результатам тестування ПЗ. Натомість S-подібна модель (крива 3, рис. 3) показує занижену максимальну частоту помилок при більш повільному її затуханні з часом.
Як бачимо з рис. 2 та рис. 3 запропонована модель усуває недоліки обох попередніх моделей шляхом уведення дійсного показника величини проекту, і, завдяки цьому, більш адекватно описує залежності характеристик надійності реальних програмних продуктів.
Опис і формалізація критерію достатності процесу тестування ПЗ. Важливим прикладним аспектом моделей надійності ПЗ може стати встановлення кількісного критерію достатності процесу тестування програмного продукту, який би дозволив керівникам програмних проектів більш обґрунтовано приймати рішення про виділення ресурсів на тестування та про завершення цього етапу розробки ПЗ. Так, на даний час, у переважній більшості ІТ компаній такі показники носять скоріше якісний та неформалізований характер на зразок "задоволення замовника", які жодним чином не можна використовувати, наприклад, при розробці ПЗ відповідального призначення.
Для визначення критерію достатності процесу тестування були побудовані залежності параметрів трьох досліджуваних моделей надійності в залежності від ітерацій, на яких було припинено тестування (рис. 4-6). На рис. 4, 5 криві 1 зображають відповідні параметри моделі з індексом складності проекту, криві 2 - параметри моделі Goel-Okumoto, криві 3 - параметри S-подібної моделі. Побудова таких залежностей відповідає практиці проведення тестування, коли здійснюється певна ітерація (цикл тестування) після якої оцінюється якість програмного продукту. Пропонується після кожного такого циклу описувати отримані результати моделлю надійності, а параметри моделі зображати графічно чи в таблиці.
Як видно з рис. 4 параметр для запропонованої та S-подібної моделей чи для моделі Goel-Okumoto не дозволяє визначити зазначений критерій достатності процесу тестування, оскільки його залежності від ітерацій тестування є практично гладкими функціями без особливостей. Особливість залежності параметру для запропонованої моделі (рис. 4, крива 1) в околі 550 ітерацій добре корелює з висновками, які можна зробити з аналізу результатів роботи [5] - після 500-600 ітерацій час виявлення помилок реального ПЗ розподілений за Пуассоном, тоді як в області менших значень часу тестування такої гіпотези дає негативний результат. Отже запропонована модель, крім іншого, дозволяє встановити точку переходу до пуассонового розподілу часу виявлення помилок і, таким чином, встановити область експериментальних результатів, які можуть з високим ступенем достовірності бути описаними моделлю надійності на основі такого розподілу.
Рис. 4. Залежність параметру, що визначає загальну кількість помилок ( та відповідно) для моделей надійності від ітерацій, на яких було припинено тестування.
Рис. 5 показує, що параметр для запропонованої та S-подібної моделей чи для моделі Goel-Okumoto так само не може бути основою для визначення критерію достатності процесу тестування, оскільки його залежності від ітерацій тестування є практично гладкими функціями без особливостей. В цьому випадку практично відсутня навіть будь-яка особливість залежності параметру для запропонованої моделі в околі 550 ітерацій на відміну від параметру (рис. 4). Хоча слід зазначити, що при більших значеннях часу крива є більш гладкою і не виявляє ознак осциляцій, характерних для значень часу менших за 500 ітерацій (рис. 5, крива 1).
Рис. 5. Залежність параметру, що визначає тривалість процесу виявлення помилок( та відповідно) для моделей надійності від ітерацій, на яких було припинено тестування.
На противагу до параметрів та , залежність індексу величини проекту (який відсутній в усіх інших моделях на основі розподілу Пуассона) виявляє чітку особливість, яку можна покласти в основу критерію достатності процесу тестування (рис. 6). Ця особливість полягає в тому, що при (що знову таки відповідає переходу до пуассонового розподілу часу виявлення помилок) залежність стає гладкою, а значення наближається до постійної величини, на відміну від такої залежності при , яка проявляє різко осцилюючий характер.
Рис. 6. Залежність індексу величини проекту запропонованої моделі від ітерацій, на яких було припинено тестування.
Таку поведінку залежності цілком можна зрозуміти, врахувавши, що індекс величини проекту (параметр моделі) є основним параметром, що визначає форму і функцію розподілу, а відповідно і щільність імовірності випадкової величини, яка у нашому випадку є часом виявлення помилки. Отже на пізніх етапах тестування ПЗ, коли корельовано помилки виявлені та усунені, а час виявлення тих помилок, що залишились відповідає пуассоновому розподілу, якісна характеристика розподілу (параметр ) вже практично не змінюється, а змінюються в основному кількісні характеристики (параметри та ), що дозволяє формалізувати критерій достатності процесу тестування ПЗ наступним чином:
.(6)
Ще раз зауважимо, що усі інші моделі надійності ПЗ на основі розподілу Пуассона не дозволяють отримати такий критерій внаслідок відсутності необхідних параметрів моделей, які б описували якісну зміну форми розподілу. Залежність функції (6), отриману шляхом чисельного диференціювання даних з рис. 6, наведено на рис. 7. Як бачимо така залежність наочно ілюструє критерій достатності процесу тестування ПЗ (6) і показує різку зміну форми кривої при переході експериментальних даних до пуассонового розподілу. Таким чином з використанням критерію достатності процесу тестування можна визначити загальну кількість помилок в програмному продукті за допомогою рівняння (3) і порівнявши її з кількістю вже виявлених та виправлених помилок прийняти обґрунтоване рішення про розподіл ресурсів проекту зі створення програмного продукту.
Рис. 7. Залежність критерію достатності процесу тестування ПЗ від ітерацій, на яких було припинено тестування.
Висновки. Побудовано нову математичну модель надійності програмного забезпечення з динамічним показником складності програмного проекту. Форми кривих функції кумулятивної кількості несправностей та інтенсивності появи помилок цієї моделі більш точно відповідають практичним результатам тестування ПЗ.
Виведено узагальнений вираз для загальної кількості помилок в ПЗ, що може бути використано для прийняття рішень на етапі тестування ПЗ.
Проведено порівняльний аналіз існуючих та розробленої моделей надійності ПЗ на реальних тестових прикладах та показано переваги моделі з індексом складності проекту над S-подібною моделлю та моделлю Goel-Okumoto. Запропонована модель усуває недоліки обох цих моделей шляхом уведення дійсного показника величини проекту, і, завдяки цьому, більш адекватно описує залежності характеристик надійності реальних програмних продуктів.
Описано та формалізовано критерій достатності процесу тестування ПЗ, який базується на поведінці залежності індексу величини проекту від циклів тестування програмного продукту. Показано, що усі інші моделі надійності ПЗ на основі розподілу Пуассона не дозволяють отримати такий критерій внаслідок відсутності необхідних параметрів моделей, які б описували якісну зміну форми розподілу.
Розроблена модель надійності ПЗ придатна до використання на підприємстві для оцінювання загальної кількості помилок в ПЗ та прогнозування частоти їх появи. Індекс складності проекту та критерій достатності процесу тестування дозволяє надати практичні рекомендації керівникам проекту стосовно розподілу виробничих ресурсів між етапами життєвого циклу проекту.
Подяки. Дана робота виконувалась в рамках держбюджетної теми "Розроблення моделей, методів та алгоритмів для автоматизованої оцінки показників надійності радіоелектронних та електромеханічних пристроїв і систем".
1. Половко А.М., Гуров С.В. Основы теории надежности. - СПб.: БХВ-Петербург, 2006. - 704 с.
2. Липаев В.В. Надежность программных средств. - М.: СИНТЕГ, 1998. - 232 с.
3. Тейер Т., Липов М., Нельсон Э. Надежность программного обеспечения. Пер. с англ. - М.: Мир, 1981. - 323 с.
4. Goel, A.L. Software reliability models: assumptions, limitations, and applicability. // IEEE Transactions on software engineering. 1985, Vol. SE-11, No 12, pp. 1411-1423.
5. K.-Y. Cai, D.-B. Hu, Ch.-G. Bai, H. Hu, T. Jing Does software reliability growth behavior follow a non-homogeneous Poisson process // Information and Software Technology. - Vol. 50. - 2008. - P. 1232-1247.
6. M.L. Shooman Probabilistic models for software reliability prediction // in Statistical Computer Performance Evaluation. - W. Freiberger, Ed. - New York: Academic. - 1972. - P. 485-502.
7. Z. Jelinski and P. Moranda Software reliability research // in Statistical Computer Performance Evaluation. - W. Freiberger, Ed. - New York: Academic. - 1972. - P. 465-484.
8. G.J. Schick and R.W. Wolverton Assessment of software reliability // Proc. Oper. Res. - Physica-Verlag. - Wirzberg-Wien. - 1973. - P. 395-422.
9. J.D. Musa A theory of software reliability and its application // IEEE Transactions on Software Engineering. - SE-1(3). - 1975. - P. 312-327.
10. N.F. Schneidewind Analysis of Error Process in Computer Software // Sigplan Note. - Vol. 10. - No.6. - 1975. - P.337-346.
11. A.L. Goel, K. Okumoto Time-Dependent Error-Detection Rate Model for Software and other Performance Measures // IEEE Transactions on Reliability. - Vol. R-28. - No. 3. - 1979. - P. 206-211.
12. S. Yamada, M. Ohba, S. Osaki S-shaped reliability growth modeling for software error detection // IEEE Transactions on Reliability. - Vol. R-32. - No.5. - 1983. - P. 475-478.
13. Тимошенко Ю.О., Дідковська М.В. Узагальнена модель негомогенного пуасонівського процесу для оцінювання надійності програмного забезпечення // Проблеми програмування. - № 2-3. - 2004. - С.480-489. 14. McCabe T.J. A complexity measure // IEEE Transactions on Software Engineering. - Vol. SE-2. - No. 4. - 1976. - P. 308-320.
Размещено на Allbest.ru
Подобные документы
Проблеми процесу тестування програмного забезпечення. Розробка алгоритму автоматичної генерації тестів і тестового набору для ручного виконання. Побудова тестів для системи "Банкомат" і для баг-трекінгової системи, представленої графом із циклами.
дипломная работа [1,2 M], добавлен 26.02.2014Оцінювання та засоби підвищення надійності інформаційних технологій протягом усього життєвого циклу програмного забезпечення на основі негомогенного пуасонівського процесу та обчислення її параметрів, з урахуванням сучасних тенденцій тестування.
автореферат [52,0 K], добавлен 10.12.2010Тестування програмного забезпечення як процес його дослідження для отримання інформації про якість. Автоматизація тестування програми Join It - Jigsaw Puzzle. Методика тестування, структура пакету та його модулів. Вимоги до програмного забезпечення.
дипломная работа [2,4 M], добавлен 24.07.2013Дослідження алгоритму роботи та коду програми. Оцінка методом "чорного ящика". Тестування і налагодження розробленої програми на алгоритмічній мові високого рівня. Оцінювання якості програмного забезпечення за об’єктно-орієнтованими метриками зв’язності.
курсовая работа [143,1 K], добавлен 11.03.2021Аналіз предметної області, опис проекту бази даних, моделей майбутнього програмного забезпечення гри для персонального комп'ютера "Міста". Функціональні можливості програмного забезпечення, які необхідно реалізувати. Інтерфейс програмного забезпечення.
курсовая работа [2,3 M], добавлен 02.06.2016Аналіз формування податкової звітності. Розробка проекту інтерфейсу, інформаційної, статичної та динамічної моделей програмного забезпечення. Розрахунок економічної ефективності впровадження програмного забезпечення формування податкової звітності.
дипломная работа [3,5 M], добавлен 26.04.2012Розробка компонентів програмного забезпечення системи збору даних про хід технологічного процесу. Опис програмного забезпечення: сервера, що приймає дані про хід технологічного процесу, КОМ для його імітування, робочої станції для відображення даних.
курсовая работа [1,3 M], добавлен 20.11.2010Огляд існуючих методів розробки компіляторів, детальний опис мови. Характеристика та специфіка процесу розробки програми компілятора на рівні блок-схем і тексту програми. Подання тексту компілятора, а також результатів тестування розробленої програми.
курсовая работа [510,2 K], добавлен 03.06.2011Аналіз методів емпіричної інженерії програмного забезпечення. Призначення та властивості програмного забезпечення та метрик проектів Openproj-1.4-src, TalendOpen Studio 3.2.1 та Рlazma-source 0.1.8, їх статистичний, кореляційний та регресійний аналіз.
курсовая работа [2,7 M], добавлен 12.12.2010Дослідження вбудованого акселерометра, розробка алгоритму автоматичного підрахунку фізичнх вправ і його практична реалізація у вигляді програмного продукту для смартфонів iPhone. Налаштування сервера. Поширення програмного продукту, його тестування.
дипломная работа [2,6 M], добавлен 14.12.2012