Тестування стратегією

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2011
Тип роботи:
Лабораторна робота
Предмет:
Інші

Частина тексту файла (без зображень, графіків і формул):

Мiнiстерство освiти і науки, молоді та спорту України Національний університет “Львівська політехніка” Кафедра ЕОМ  Лабораторна робота №1 з диcципліни: «Тестування програмного забезпечення» на тему: «Тестування стратегією «білого ящика» Мета: навчитись проводити тестування математичної функції за стратегією «білого ящика». Завдання: розробити динамічну бібліотеку з математичною функцією. розробити еталонну систему тестів, на основі порівняння результатів роботи бібліотеки і системи MatLab. розробити систему автоматизованого тестування математичної функції. протестувати математичну функцію з відомим інтерфейсом і закритою внутрішньою структурою на можливість виникнення наступних помилок: Ділення на 0. Корінь квадратний з від’ємного числа Переповнення типів. Теоретичні відомості. Структу́рне тестува́ння, також називають тестуванням за принципом «білої скриньки» або «скляної скриньки» (англ. White box testing або англ. Glass box testing), полягає у перевірці внутрішньої структури елементів системи. Основним видом тестування є функціональне. Функціональне тестування застосовують для програмного забезпечення у цілому, а також для програмних об’єктів будь-якого рівня (процедури, модулі, підсистеми, системи). Структурне тестування доповнює функціональне. Цей вид тестування можливий для рівня не вище рівня програмного модуля. Виконання функціонального і структурного тестування системи може бути здійснене незалежно одне від одного. Методи структурного тестування Структурне тестування програмного забезпечення може бути реалізоване такими методами: тестуванням маршрутів; тестуванням циклів; тестуванням обробки даних. Тестування маршрутів Тестування структури маршрутів програмних модулів виконують шляхом перевірки коректності виділених маршрутів виконання програм і виявлення логічних помилок формування маршрутів. На практиці за відсутності впорядкованого аналізу потоків управління деякі маршрути у програмі (до 50%) виявляються пропущеними під час тестування. Тому перше завдання, яке вирішують під час тестування структури програмних модулів, — це отримання інформації про повну сукупність реальних маршрутів виконання. Наочне подання реалізованих маршрутів дозволяє впорядковано контролювати повноту їхнього тестування та до деякої міри охороняє від випадкового пропуску окремих маршрутів. У результаті тестування набуває запланованого систематичного характеру. Для забезпечення коректності програми всі маршрути можливого виконання програмного модуля повинні бути перевірені під час її створення та тим самим визначають складність повного тестування. Тестування циклів Наявність циклів у програмних модулях здатне різко збільшувати складність їхнього тестування. Повне, вичерпне тестування повинне охоплювати перевірку кожного маршруту у циклі за усіх можливих ітерацій циклу та для усіх сполучень циклів з маршрутами ациклічної частини програми. На складність тестування циклу впливає його структура та два параметри: число маршрутів у тілі циклу та число ітерацій циклу. За умови зростання кожного з цих параметрів пропорційно зростає їхній добуток, а отже, і складність тестування. Тому вичерпне тестування реальних складних програм із циклами практично неможливе. Тестування обробки даних Функціонування будь-якої програми можна розглядати як обробку потоку даних, переданих від входу у програму до її виходу. Вхідні дані послідовно використовуються для визначення ряду проміжних результатів аж до одержання необхідного набору вихідних даних. Наслідки помилок у програмі можуть проявлятися як зміни деяких змінних у процесі обчислень і як повне перекручування або відсутність на виході величин, що вимагаються. Тестування програмного модуля доцільно проводити на впорядкованих наборах даних з урахуванням ступеня їхнього впливу на вихідні результати. Хід роботи. У зв’язку з тим, що розгалуження і цикли в даній функції відсутні, тому тестування буде проводитись у вигляді тестування обробки даних. Функція, яка буде тестуватись: y = sin(sqrt(x1))*cos(-x2/x1)/x213; Лістинг математичної функції в MatLab: function y = MathFun( x1, x2 ) y = sin(sqrt(x1))*cos(-x2/x1)/x2^13; end Лістинг програми автоматичного тестування математичної функції: private void Calc() { Random r1 = new Random(DateTime.Now.Millisecond); Random r2 = new Random(DateTime.Now.Millisecond); int x1=0, x2=0; int min = 0, max = 1000; if (radioButton1.Checked) { try { min = Convert.ToInt32(textBox1.Text); max = Convert.ToInt32(textBox2.Text); } catch { MessageBox.Show("Неправельно введені дані"); return; } } else { if (textBox5.Text != "") try { max = Convert.ToInt32(textBox5.Text); } catch { MessageBox.Show("Неправельно введені дані"); return; } } for (int i = min, j = max, k=1; i < max; i++, j--,k++) { if (radioButton3.Checked) { x1 = r1.Next(r2.Next(100 * i)) * r1.Next(r2.Next(100 * i)); x2 = r1.Next(r2.Next(100 * i)) * r1.Next(r2.Next(100 * i)); } if (radioButton2.Checked) { try { x1 = r1.Next(Convert.ToInt32(textBox4.Text) - Convert.ToInt32(textBox3.Text)) + Convert.ToInt32(textBox3.Text); x2 = r1.Next(Convert.ToInt32(textBox4.Text) - Convert.ToInt32(textBox3.Text)) + Convert.ToInt32(textBox3.Text); } catch { MessageBox.Show("Неправельно введені дані"); return; } } if (radioButton1.Checked) { x1 = i; x2 = j; } CMatlab ml = new CMatlab(); MWArray arr1, arr2; arr1 = new MWNumericArray(x1); arr2 = new MWNumericArray(x2); listView1.Items.Add(new ListViewItem(new[] {k.ToString(), arr1.ToString(), arr2.ToString(), ml.MathFun(arr1, arr2).ToString() })); listView3.Items.Add(new ListViewItem(new[] { k.ToString(), x1.ToString(), x2.ToString(), MathFun(x1,x2).ToString() })); } } Результати роботи програми автоматичного тестування: ВВисновок: в даній лабораторній роботі, я ознайомився з стратегією тестування «білого ящика». В процесі тестування було виявлено що всі можливі помилки в програмі, а саме ділення на 0, отримання корення квадратного з відємного числа, переповнення типів, коректно обробляються і функція повертає значення NaN або безмежність. Також в результаті проведення еталонного тесту, було виявленно, що функція працює правельно і видає правельні результати обчисленнь на різному наборі даних, крім коомплексних результатів.
Антиботан аватар за замовчуванням

17.03.2013 13:03-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!