Софтуерни технологии


Обектно ориентирано програмиране и тестване



страница19/106
Дата11.05.2023
Размер2.27 Mb.
#117653
ТипАнализ
1   ...   15   16   17   18   19   20   21   22   ...   106
Softuerni Texnologii
Свързани:
empty doc
4.3. Обектно ориентирано програмиране и тестване
Програмирането представлява превръщане на ОО-проект в програмен код.
Класовете, дефинирани при проектирането, трябва да се опишат като класове в
съответния ОО-език за програмиране като С++, Java или Smalltalk. Резултатът е
програма, която може да се изпълнява. Особеностите на процеса на съставяне
на програми могат да се намерят в ръководствата за съответните ОО-езици.
Целта на ОО-тестване е същата, както и при стандартния подход — да се
открият колкото се може повече грешки в рамките на определените за тестване-
то бюджет и време. Поради специфичните черти на ОО-подход обаче съдържа-
нието на основните дейности, свързани с тестването, е различно.
Преди всичко е необходимо да се разшири обхватът на тестването така, че
то да започва от най-ранните фази и първите обекти за тестване да бъдат моде-
лите на системата, създадени след ОО-анализ и ОО-проектиране. Причината за
това е, че всяка неоткрита грешка в тези модели би довела до грешки в програ-
мите, които трудно биха се открили. Например основните семантични конст-
рукции (класове, атрибути, операции и съобщения) се определят в модела, съз-
даден след ОО-анализ, и неподходящият избор на всеки от тези елементи би
довел до допълнителни и може би излишни усилия при проектирането и прог-
рамирането. Затова ОО-тестване включва формалните проверки за правилност,
пълнота и непротиворечивост в контекста на синтаксиса, семантиката и из-
ползването на моделите, създадени след ОО-анализ и проектиране. Техники,
определящи какво и как да се проверява, са описани в [4].
Друга съществена разлика е в стратегията за тестване, осигуряваща
последователно разрастване на обектите, които ще се тестват. Така традицион-
ното модулно тестване тук е тестване на клас, защото в ОО-контекст класът е
най-малката тестируема единица, капсулирала данните (атрибутите) и операци-
ите над тях. Вместо проверка на алгоритъма, както е в модулното тестване, при
тестването на клас се проверяват операциите и промените в състоянията на
класа.
Вместо традиционното интеграционно тестване на съставена по някакви
правила съвкупност от модули в ОО-системи се тества съвкупност от класо-
ве.
В зависимост от начина на съставяне на съвкупността от класове съгласно
[5] интеграционното ОО-тестване може да бъде:

  • проследяващо (thread-based) — тестват се всички класове, свързани с
    едни и същи събития в системата;

  • пластово — разглеждане на йерархията от класове и разделяне на кла-
    совете на независими (използващи само някои други класове) и последовател-
    ни слоеве от зависими класове;

  • клъстерно — сътавяне на клъстери (групи) от взаимодействащи класове
    и тестване на тези клъстери.

Системното ОО-тестване съвпада с традиционното, защото целта му е да
изследва поведението на системата като цяло, без да се разглежда реализацията.
51






Генерирането на тестови данни зависи от метода на тестване (стресово,
случайно, сценарийно) и от обекта на тестване — отделен клас или група от
класове. Подробности могат да бъдат намерени в [5, 6].


Сподели с приятели:
1   ...   15   16   17   18   19   20   21   22   ...   106




©obuch.info 2024
отнасят до администрацията

    Начална страница