Тестування - це одна з технік контролю якості, що включає в себе
· Планування робіт (Test Management)
· Виконання тестування (Test Execution)
· Аналіз отриманих результатів (Test Analysis).
Верифікація (Verification) - це процес оцінки системи або її компонентів з метою визначити чи задовольняють результати поточного етапу розробки умовам, сформованим на початку цього етапу. Тобто чи виконуються цілі, терміни, завдання з розробки проекту, визначені на початку поточної фази. Валідація (Validation) - це визначення відповідності розроблюваного програмного забезпечення між очікуваннями і потребами користувача, вимогам до системи.
План Тестування (Test Plan) - це документ, що описує весь обсяг робіт з тестування, починаючи з опису об'єкта, стратегії, розкладу, критеріїв початку і закінчення тестування, до необхідного в процесі роботи обладнання, спеціальних знань, а також оцінки ризиків з варіантами їх вирішення.
Тест дизайн (Test Design) - це етап процесу тестування програмного забезпечення, на якому проектуються і створюються тестові випадки (тест кейси), відповідно до визначених раніше критеріями якості та цілями тестування.
Тестовий випадок (Test Case) - це документ, що описує сукупність кроків, конкретних умов і параметрів, необхідних для перевірки реалізації тестованої функції або її частини.
Баг / Дефект Репорт (Bug Report) - це документ, що описує ситуацію або послідовність дій (Steps), що призвела до некоректної роботи об'єкта тестування (Misbehavior), із зазначенням причин та очікуваного результату (Expected Result).
Тестове Покриття (Test Coverage) - це одна з метрик оцінки якості тестування, що представляє із себе щільність покриття тестами вимог або коду, що виконується.
Деталізація Тест Кейсів (Test Case Specification) - це рівень деталізації опису тестових кроків і необхідного результату, при якому забезпечується розумне співвідношення часу проходження до тестового покриття.
Час Проходження Тест Кейса (Test Case Pass Time) - це час від початку проходження кроків тест кейса до отримання результату тесту.
Отже перейдемо до безпосередньої перевірки нашої програми на працездатність.
Наша програма розпочинатиметься
виводом на екран монітора комп’ютера головного вікна (див рис. 3.1).
Рис. 3.1. Головне вікно програми
Після відкриття головного вікна нашої
програми нам потрібно задати розмірності вхідних матриць. Після введення
розмірності програма відобразить матрицю з заданими розмірами (див. рис. 3.2)
Рис. 3.2. Задання розмірів
Далі ми можемо вводити дані в нашу матрицю
вручну, за допомогою клавіатури або ж рандомно за допомогою кнопки Заповнити.
Для прикладу скористаємось рандомним заповненням. На рисунку 3.3 зображено
приклад заповнення матриць.
Рис. 3.3. Заповнення матриць
Далі ми можемо виконати два методи
кластеризації. Протестуємо перший з них - метод к-середніх. Для перевірки
натиснемо кнопку Вирахувати (див. Рис. 3.4.)
Рис. 3.4. Вікно кластерування
першим метдом
Як видно з вище
показаного рисунку програма виконала кластерування. Тепер проведемо
кластерування другим методом. (див. рис. 3.5)
Рис. 3.5. Вікно кластерування
другим методом
Після завершення роботи з програмою натискаємо на хрестик в правому верхньому углі робочого вікна.
Провівши тестування створеної програми можна зробити висновок, що програма працює без помилок і забезпечує повноцінну роботу при будь-яких вхідних даних. А також здійснює обробку даних без збоїв.
В ході виконання завдання курсової роботи мною було розроблено проект програми для кластерування за допомогою двох методів.:
· Метод к-середніх
· Метод деревовидної кластеризації
Програма повноцінно працює при будь-яких вхідних даних і може бути впроваджена у виробництво і застосовуватись навчальними закладами або статистичними організаціями, для полегшення обчислень.
. Інформатика. Мова програмування С++. Спецкурс. 10-12 класи. Навчальний посібник / Лєхан С.А. - Шепетівка, «Аспект», 2007 - 160 с.
2. Об’єтно-орієнтоване програмування мовою С++, Навчальний посібник, Т.Є. Рак, Львів, 2011 - 401с
. Борис Пахомов - C C++ и MS Visual С++
2010 для начинающих - БХВ-Петербург, 2011 - 736 с.
Unit1;
, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, Grids;
= class(TForm): TLabel;: TLabel;: TEdit;: TEdit;: TStringGrid;: TGroupBox;: TMemo;: TButton;: TGroupBox;: TMemo;: TButton;: TButton;Edit1Change (Sender: TObject);Edit2Change (Sender: TObject);Button3Click (Sender: TObject);Button1Click (Sender: TObject);Button2Click (Sender: TObject);
{Private declarations}
{Public declarations};
: TForm1;, j, k, k1,
k2:integer;, klas2:string;
{$R *.dfm}
TForm1. Edit1Change (Sender: TObject);. ColCount:=StrToInt (Edit1. Text);i:=1 to StringGrid1. ColCount do. Cells [i - 1,0]:='X'+inttostr(i);;
TForm1. Edit2Change (Sender: TObject);. RowCount:=StrToInt (Edit2. Text)+1;;
TForm1. Button3Click (Sender: TObject);i:=1 to StringGrid1. ColCount doj:=1 to StringGrid1. RowCount-1 do. Cells [i-1, j]:=inttostr (random(10));;;;
TForm1. Button1Click (Sender: TObject);. Clear;:='';:='';:=StringGrid1. Cells [0,0];:=StringGrid1. Cells [1,0];:=2;k<StringGrid1. ColCount doi:=1 to StringGrid1. RowCount-1 do:=k1+sqr (strtoint(stringGrid1. Cells [0, i]) - strtoint (stringGrid1. Cells [k, i]));:=k2+sqr (strtoint(stringGrid1. Cells [1, i]) - strtoint (stringGrid1. Cells [k, i]));;(k1<k2) then:=klas1+', '+StringGrid1. Cells [k, 0];:=klas2+', '+StringGrid1. Cells [k, 0];;:=0;:=0;:=k+1;;. Lines. Add ('Кластер1: '+klas1);. Lines. Add ('Кластер2: '+klas2);;
TForm1. Button2Click (Sender: TObject);kl1, kl2:real;, kls2:string;. Clear;:='';:='';:=StringGrid1. Cells [0,0];:=StringGrid1. Cells [1,0];:=2;k<StringGrid1. ColCount doi:=1 to StringGrid1. RowCount-1 do:=k1+sqrt (sqr(strtoint (stringGrid1. Cells [0, i]) - strtoint (stringGrid1. Cells [k, i])));:=k2+sqrt (sqr(strtoint (stringGrid1. Cells [1, i]) - strtoint (stringGrid1. Cells [k, i])));;(kl1<kl2) then:=kls1+', '+StringGrid1. Cells [k, 0];:=kls2+', '+StringGrid1. Cells [k, 0];;:=0;:=0;:=k+1;;. Lines. Add ('Кластер1: '+kls1);. Lines. Add ('Кластер2: '+kls2);;
.-