DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

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

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

Тестування стратегією «білого ящика»

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

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут комп’ютерних наук та інформаційних технологій
Факультет:
КН
Кафедра:
Кафедра електронних обчислювальних машин

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

Рік:
2011
Тип роботи:
Лабораторна робота
Предмет:
Захист програмного забезпечення
Група:
КН-31
Коротко про документ

Про що ця робота

У лабораторній роботі досліджено стратегію тестування програмного забезпечення «білого ящика». Розроблено математичну функцію та систему автоматизованого тестування з порівнянням результатів у MATLAB.

У роботі розглядаються

  • Тестування програмного забезпечення
  • Тестування білої скриньки
  • Структурне тестування
  • Автоматизоване тестування
  • Мовлення у MATLAB
  • Обробка винятків

Зміст і розділи

  1. Мета
  2. Завдання
  3. Теоретичні відомості
  4. Хід роботи
  5. Лістинг математичної функції в MATLAB
  6. Лістинг програми автоматичного тестування
  7. Висновок
Для кого:Студенти технічних спеціальностей вищих навчальних закладів.
Викладачі:Бачинський Р.В.

Ключові поняття

тестування білого ящикаструктурне тестуваннятестування маршрутівтестування циклівтестування обробки данихMATLABдинамічна бібліотекаавтоматизоване тестуванняфункціяпомилка

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

М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 або безмежність. Також в результаті проведення еталонного тесту, було виявленно, що функція працює правельно і видає правельні результати обчисленнь на різному наборі даних, крім коомплексних результатів.
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

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

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

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

Admin

26.02.2023 12:38

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