- •I. Вступ.
- •Загальні поняття.
- •Основні визначення.
- •II. Основна частина.
- •Філософія тестування
- •Інтеграція модулів.
- •Висхідне тестування.
- •Низхідне тестування.
- •Модифікований низхідний метод
- •Метод великого стрибка.
- •Метод сандвіча
- •Модифікований метод сандвіча.
- •Порівняльна характеристика методів тестування.
- •III. Випробування програмних продуктів (аналіз).
- •Мета і особливості випробуванні.
- •Технологічна схема випробування.
- •Планерування і оцінка завершеності випробувань.
- •Стенди відладки і випробування програм.
- •IV. Сертифікація програмних продуктів.
- •Стандартизація систем якості.
- •Класифікація показників якості
- •Вибір номенклатури показників якості
- •Групи показників якості
- •Список використаної літератури:
- •Майерс. Мистецтво тестування програмного забезпечення.
- •Майерс. Надійність програмного забезпечення.
- •Кулаків. Управління якістю програмного забезпечення.
Метод сандвіча
Тестування методом сандвіча є компромісом між висхідним і низхідним підходами. Тут робиться попытка скористатися достоїнствами обох методів, уникнувши їх недоліків.
При використанні цього методу одночасно починають восходящее і низхідне тестування, збираючи програму як знизу, так і зверху і зустрічаючись врешті-решт десь в середині. Точка зустрічі залежить від конкретної тестованої програми і має бути заздалегідь визначена при вивченні її структури. Наприклад, якщо розробник може представити свою систему у вигляді рівня прикладних модулів, потім рівня модулів обробки запитів, потім рівня примітивних функцій, то він може вирішити применять низхідний метод на рівні прикладних модулів (программируя заглушки замість модулів обробки запитів), а на остальных рівнях застосувати висхідний метод.
Вживання методу сандвіча - це розумний підхід до інтеграції великих програм, таких, як операційна система або пакет прикладних програм.
Метод сандвіча зберігає таку гідність низхідного і висхідного підходів, як початок інтеграції системи на найранішому етапі. Оскільки вершина програми вступає в буд рано, ми, як в низхідному методі, вже на ранньому етапі отримуємо працюючий каркас програми. Оскільки нижні рівні программы створюються висхідним методом, знімаються ті проблеми нисходящего методу, які були пов'язані з неможливістю тестировать деякі умови в глибині програми.
Модифікований метод сандвіча.
При тестуванні методом сандвіча виникає та ж проблема, що і при низхідному підході, хоча тут вона стоїть не так гостро. Проблема ця в тому, що неможливо досконально тестувати окремі модулі. Висхідний етап тестування по методу сандвича вирішує цю проблему для модулів нижніх рівнів, але вона може як і раніше залишатися відкритій для нижньої половини верхній частині програми. У модифікованому методі сандвіча нижні рівні також тестуються строго від низу до верху. А модулі верхніх рівнів спочатку тестуються ізольовано, а потім собираются низхідним методом. Таким чином, модифікований метод сандвіча також є компромісом між восходящим і низхідним підходами.
Порівняльна характеристика методів тестування.
З точки зору надійності програмного забезпечення ці стратегії можна оцінити по восьми критеріях, як показано на мал. 10.7. Перший критерій — час до моменту сборки модулів, оскільки це поважно для виявлення помилок в сопряжениях і припущеннях модулів про властивості один одного. Другий критерій — час до моменту створення перших працюючих «скелетных» версій програми, оскільки тут можуть виявитися главные дефекти проектування. Третій і четвертий критерії касаются питання про те, чи необхідні заглушки, драйвери і інші инструменты тестування. П'ятий критерий—мера паралелізму, який можливий на початку або на ранніх стадіях тестування. Це цікаве питання, оскільки необхідність в ресурсах (тобто програмістах) зазвичай досягає піку на етапах проектування і програмування модулів.
|
Висхідний
|
Низхідний
|
Модіфіцированний низхідний
|
Метод великого стрибка
|
Метод сандвіча
|
Модіфіцированний метод сандвіча
|
Збірка
|
Рано
|
Рано
|
Рано
|
Пізно
|
Рано
|
Рано
|
Час до появи працюючого варіанту програми
|
Пізно
|
Рано
|
Рано
|
Пізно
|
Рано
|
Рано
|
Чи потрібні драйвери (нові програми або готові инструменты) ?
|
Так
|
Немає
|
Так
|
Так
|
Частково
|
Так
|
Чи потрібні заглушки
|
Немає
|
Так
|
Так
|
Так
|
Частково
|
Частково
|
Паралелізм на початку роботи
|
Середній
|
Слабкий
|
Середній
|
Високий
|
Середній
|
Високий
|
Можливість тестировать окремі дороги
|
Легко
|
Важко
|
Легко
|
Важко
|
Середньо
|
Легко
|
Можливість планировать і контролювати послідовність
|
Легко
|
Важко
|
Важко
|
Легко
|
Важко
|
Важко
|
Мал. 10.7. Кількісна оцінка підхід до збірки.
Тому поважно, аби можливість паралельного тестування з'явилася ближче до початку, а не кінця циклу тестування.
Шостий критерій пов'язаний з відповіддю на питання, що обговорювалося раніше: чи можливо перевірити будь-яку конкретну дорогу і будь-яку умову в програмі? Сьомий критерій характеризує складність планерування, нагляду і управління в процесі тестування. Це пов'язано з усвідомленням того факту, що тестування, яким важко управляти, часто веде до недогляду і упущень. Час від часу роздаються заперечення проти низхідного підходу у зв'язку з тим, що тестування нижніх модулів вимагає багатократних зайвих прогонів головних модулів. Проте цей критерій відмічений як несущественный. Хоча зайві прогони дійсно бувають необходимы, можливо також, що у багатьох випадках, які здаються зайвими, насправді відтворюються декілька різні условия. Ці прогони можуть розкрити нові помилки, перетворюючи таким чином недолік на гідність. Оскільки цей ефект недостаточно усвідомлений, ми їм нехтуємо.
Тепер оцінимо наші шість підходів за допомогою перерахованих восьми критеріїв. Як вже говорилося, така оцінка залежить від конкретного проекту. Як вихідне наближення для выполнения ваших власних оцінок приведений варіант дуже грубої оцінки. Перш за все слід зважити відносний вплив каждого з восьми критеріїв на надійність програмного забезпечення. Рання збірка і раннє здобуття працюючого каркаса программы, а також можливість тестувати будь-які конкретні умови представляються найбільш важливими, тому їм дається коефіцієнт 3. Складність підготовки заглушок, а також складність планирования і управління послідовністю тестів також важливі, поэтому вони отримують вагу 2. Третій критерій, необхідність драйверів, вага 1 зважаючи на доступність загальних інструментів тестування. Критерій, пов'язаний з паралелізмом роботи, також має вагу 1, тому що, хоча він, можливо, і важливий по інших причинах, на надійність сильно не впливає. Восьмий критерій отримує коэффициент нуль.
На мал. 10.8 показані результати цієї оцінки. У кожній графі таблиці вага береться із знаком плюс або мінус або не враховується, залежно від того, сприятливо, несприятливо або безразлично виявляється відповідний чинник при даному підході. Модифікований метод сандвіча і висхідний метод виявляються найкращими підходами, а метод великого скачка— найгіршим. Якщо спосіб оцінки виявляється близьким до вашої конкретной ситуації, слід рекомендувати модифікований метод сандвіча для тестування великих систем або програм і восходящий підхід для тестування програм малих і середніх.
Вага
|
|
Висхідний
|
Низхідний
|
Модіфіцированний низхідний
|
Метод великого стрибка
|
Метод сандвіча
|
Модіфіцированний метод сандвіча
|
3 |
Збірка
|
Рано +
|
Рано +
|
Рано +
|
Пізно -
|
Рано +
|
Рано +
|
3 |
Час до появи працюючого варіанту програми
|
Пізно -
|
Рано +
|
Рано +
|
Пізно -
|
Рано +
|
Рано +
|
1 |
Чи потрібні драйвера (нові програми u/uли готові инструменты) ?
|
Так -
|
Немає +
|
Д а -
|
Так -
|
Частково
|
Так -
|
2 |
Потрібні заглушки?
|
Немає +
|
Так -
|
Так -
|
Так -
|
Частково
|
Частково
|
1 |
Паралелізм на початку роботи
|
Середній
|
Слабий-
|
Середній
|
Високий+
|
Середній
|
Високий +
|
3 |
Можливість тестувати окремі дороги
|
Легко +
|
Важко -
|
Лягло +
|
Легко +
|
Середньо
|
Легко +
|
2 |
Можливість планировать і контролювати послідовність
|
Легко +
|
Важко -
|
Важко -
|
Легко +
|
Важко -
|
Важко -
|
0 |
Неефективність
|
|
|
|
|
|
|
Всього
|
+6 |
-1 |
+4 |
-3 |
+4 |
+7 |
|
Мал. 10.8. Зважена оцінка підходів до збірки.
