Типи тестів на Знаходження помилок 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Типи тестів на Знаходження помилок



Динамічні тести класифікують як:

· Функціональні тести (тестування методом чорного ящика) враховують тільки вимоги.

Система розглядається як чорний ящик, виконуючи свої функції невідомим чином. Тестування повинні проводити персони, що не приймали участі у виробництві тестованих частин.

· Структурні тести (тестування методом прозорого ящика) враховують механізми реалізації.

Функціональні тести

Повне тестування системи неможливе, оскільки кількість можливих комбінацій вхідних даних дуже велика. Це справедливо навіть для маленьких систем, на тестування яких пішли б роки.

Зазвичай вважається, що якщо функція працює при одних типах даних, то вона працюватиме при всіх. Але це велика помилка, гарантії якому немає.

Дані групуються, що вводяться, відповідно до опису вимог. Наприклад:

Рахунок, менший 1000 грн, повинен бути схвалений супервізором.

Рахунок, більший 1000 грн, повинен бути схвалений президентом.

Така вимога розділяє дані на два класи. Хоча тестування, наприклад, одного значення для кожного класу недостатньо. Граничні умови теж слід перевірити.

Вибух тестованих даних

Приклад демонструє, що тестування повинно проводитися, принаймні, п'ятьма значеннями: 0, 500, 1000, 1500 і максимальним. Якщо кількість таких значень дуже велика, ми застосовуємо комбінаторний вибух для тестових значень. Дані діляться на класи еквівалентності, які враховують елементарні умови. Наприклад, якщо ці умови доповнюються наступними:

Супервізор може схвалити місячний рахунок в 10000 грн. Кожен рахунок, що перевищує цю суму, повинен схвалюватися президентом. Наступні класи також можуть бути враховані в даних, що вводяться: рахунок до 1000 грн; рахунок до 1000 грн; рахунок більше 1000 грн, що не перевищує 10000 грн; рахунок більше 1000 грн, що перевищує 10000 грн;

Врахування цих граничних випадків приводить до збільшення випадків тестування: (0,500,1000, 1500, max) x (<10000, 10000, >10000).

На практиці тестування всіх граничних значень (навіть обмежених типовими і крайніми) неможливе. Повинні бути обрані характерні випадки. Рекомендується враховувати наступне:

· Вірогідність виконання функції важливіша за її якість.

· Функції попередньої версії важливіші, ніж нові. Користувачі будуть незадоволені, якщо їх функція в новій версії перестане працювати.

· Типові ситуації важливіші, ніж виняткові випадки, - помилка у перших буде більш значуща, ніж в других.

Структурні тести

У разі структурних тестів дані вибираються на основі аналізу структури системи, і їх критерії наступні:

· Критерій покриття всіх функцій. Відповідно до цього критерію, вибір вхідних даних, повинен дати виконатися функціям хоча б один раз. Для задоволення критерію нам не потрібна велика кількість тестів. Критерій не дуже ефективний.

if x > 0 then begin end; y:=ln(x);

· Критерій покриття всіх виключень умов. Вхідні дані, повинні вибиратися так, щоб кожна умова виконалася хоча б раз або не виконалася. Граничні умови також слід перевірити. У даному прикладі ця вимога дозволяє знайти помилку у випадках if x=0 or x<0.

Можуть бути задіяні вимогливіші критерії.

Тестування програм з циклами

Крітерий вибору даних грунтується на наступних припущеннях:

Дані повинні бути такими, щоб виконалося 0 циклів, мінімальна кількість циклів, максимальна і середня.

Програми-інструменти

Відладчики

Відладчики можуть бути корисні для внутрішнього і зовнішнього тестування. Методом тестування вважається метод прозорого ящика.

Відладчики показують змінні і взаємодії, використовуючи початковий код і відповідні інструкції. Можна ставити контрольні крапки і проглядати реальні значення.

Відбувається управління початковим кодом і, можливо, виправлення помилок.

Щоденник тестування, що дозволяє робити повторне тестування, зберігається.

Аналізатори покриття

Це програми, які дозволяють оцінювати, яка частина програми була задіяна в поточному виконанні. Спрощує незадіяні частини коду, виконання із специфічними умовами і (іноді) дуже часто виконувані частини коди, які створюють вразливі місця.

Більш розвинуті аналізатори покриття сумують дані з декількох виконань (для різних даних, що вводяться) для полегшення знаходження незадіяних частин коду, зображення контрольного графа, моніторингу виконання, надання інформації про покриття, що дозволяє робити ще складніші тести.

Компаратор

Компаратори - інструменти програмування, які дозволяють порівнювати дві програми, файли, масиви даних для визначення схожості і відмінностей. Компаратори чітко показують різницю між реальним і очікуваним виводом. Порівняння зображень може бути корисне для тестування інтерфейсу, зокрема, графічного.

Ринок пропонує широку різноманітність компараторів, вживаних на різних етапах розробки ПЗ. Наприклад, доступна допомога в плануванні тестування, управлінні даними, що вводяться, автоматичного створення звітів і статистики надійності.

Статичні тести

Статичний тест - аналіз коду без його виконання. Технікою виконання можуть бути перевірка коректності або неформальні методи.

Перевірки коректності непрактичні для реальних програм і, більшою мірою, виведені вченими в комп'ютерній техніці. Їх застосування до сучасних великих програм не має сенсу, хоч Academia все ще наполягає на розробці цих методів.

Неформальні статичні методи складаються з трасування програми програмістом і знаходження помилок.

Неформальні тести недооцінюють, хоча вони можуть бути дуже ефективними.



Поделиться:


Последнее изменение этой страницы: 2017-02-07; просмотров: 152; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.144.17.45 (0.009 с.)