Реализацията на тестването се описва чрез сценарии за тестване.
Отчитането се извършва чрез анализ на документираните резултати и
прилагане на критериите за изчерпателността и обхвата на тестване.
Има два основни подхода за тестване: структурен и функционален. Целта на структурното тестване е да се изберат такива тестови данни,
че да се осигури преминаване през всички програмни части на системата.
При функционалното тестване се проверява правилността на реализи-
раните основни функции.
В зависимост от избраните тестови данни и очаквани резултати тестването
се дели на:
детерминирано тестване — при зададени входни данни напълно е
определено какви трябва да бъдат получените резултати;
стохастично тестване — тестваните данни са случайни величини с оп-
ределено разпределение и се знае разпределението на получаваните резултати.
В зависимост от начина на осъществяване тестването може да е низходя-
що (top down), възходящо (bottom up) и смесено — започва от някакво меж-
динно ниво и се провежда в двете посоки.
Тестването би трябвало да започне в най-различни етапи на създаване на
програмите, като още тогава да се формулират критериите за установяване на
желаното ниво на тестване.
В зависимост от целта тестването може да бъде:
за доказване на експлоатационната годност — проверява се дали
програмният продукт е работоспособен;
за атестация — т. нар. пускови изпитания, след успешното завършва-
не на които програмният продукт може да се разпространява;
за пълна функционална проверка — дали реализираните функции съ-
ответстват на формулираните изисквания;
за проверка на специални програмни свойства, например надежност
или преносимост;
за проверка на нови свойства или функции — реализира се след вна-
сяне на изменения в създадения програмен продукт и се нарича регресионно
тестване;
за проверка на работоспособността на системата в реални пот-
ребителски условия — изследва се времето за отговор на системата, продъл-
жителността на входно-изходните операции, изчислителните ресурси; качест-
вото на потребителския интерфейс и други.
В зависимост от това, кой извършва тестването, то може да бъде:
— вътрешно тестване — от самите разработчици. Всеки програмист
проверява правилността на създадените от него програми. Преимущество на
този подход е, че не е необходимо разучаване на програмите. Недостатък е, че
програмистите имат склонност към надценяване на възможностите си и увере-
ността, че не допускат грешки, а това пречи на системното тестване. Форма на
вътрешно тестване е т. нар. peer review — проверка, при която програмистите
са разделени на двойки и всеки проверява програмите на партньора си.
60
независимо тестване — от експерти, които не са участвали в разра-
ботването на програмите. Обикновено това са членове на групата по тестване,
действащи в софтуерната фирма.
сертифициране — проверка и издаване на сертификат, удостоверяващ
наличието на определени свойства на ПП. Сертифицирането може да се извър-
шва само от фирми, притежаващи съответния лиценз.
Един от най-сложните проблеми е да се определи докога да се тества. Обик-
новено тестването завършва при изтичане на предвидения срок или изчерпване
на ресурсите. Специалистите по тестване твърдят, че „недостатъчното тестване
е престъпление, а прекомерното — грях".
5.1.3. Автоматизиране на дейностите настройване и тестване Създадени са множество инструментални средства, които подпомагат дей-
ностите по откриване и отстраняване на грешки [1]. Чрез автоматизация на нас-
тройването и тестването се постига:
Инструменталните средства, подпомагащи настройването, се наричат прог-
рами — дебъгери. Основните възможности на дебъгерите са следните:
а) разглеждане на текста на програмата на различни нива на декомпо-
зиране (показване само имената на функциите или процедурите, показване съ-
държанието на отделни програмни фрагменти). Съвременните дебъгери реализи-
рат многопрозоречно визуализиране на интересуващите ни програмни части.
б) трасиране на изпълнението — показване на операторите в реда на
изпълнението им при конкретните тестови данни;
в) възможност за дефиниране на контролни точки и определяне на дейс-
твията при достигане на съответната контролна точка. Тези действия могат да
бъдат:
преустановяване изпълнението на програмата;
разпечатване съдържанието на определени области от паметта или на
указани променливи;
продължаване изпълнението на програмата от указан оператор.
В зависимост от предназначението си програмните средства за тестване
могат да бъдат анализатори на програми, генератори на тестови данни, помощ-
ни средства и среди за тестване.
а) Анализатори на програми — предназначението им е да реализират из-
бран метод на тестване чрез опериране върху тестващата програма по съответ-
стващ на метода начин.
Статичният анализ е изследване на текста на програмите и извличане
на определена информация от него. Статичният анализ може да бъде елемен-
тарен или потоков (статичен анализ на потока на данните и потока на управ-
лението). При елементарния статичен анализ текстът на програмата се просле-
61
др.) обучението по софтуерни технологии продължава две години в рамките на
6 8 задължителни и още толкова избираеми курса, практикум и 2—3 курсови
проекта. Съответна на тази констатация е и целта на авторите — макар да е
предназначена да бъде учебник за студентите по предмета „Софтуерни техно-
логии", настоящата книга би могла да бъде за тях и за всички практикуващи
софтуерни специалисти и ръководители въведение в основополагащите нап-
равления на тази изключително динамична и с нарастващо за практиката значе-
ние дисциплина.
Главите на тази книга са разработени както следва:
Аврам Ескенази: 1, 2, 6, 8, 10, 11, 15
Нели Манева: 3, 4, 5, 7, 9, 12, 13, 14