Тестване на софтуера
This presentation is the property of its rightful owner.
Sponsored Links
1 / 55

Тестване на софтуера PowerPoint PPT Presentation


  • 93 Views
  • Uploaded on
  • Presentation posted in: General

Тестване на софтуера. Цели. Да се обсъди разликата м/у валидиращо тестване и тестване за дефекти Да опише принципите на тестването на с-ма и компонента Да опише стратегиите за генериране на тестови случаи за с-мата

Download Presentation

Тестване на софтуера

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


4069968

Тестване на софтуера


4069968

Цели

  • Да се обсъди разликата м/у валидиращо тестване и тестване за дефекти

  • Да опише принципите на тестването на с-ма и компонента

  • Да опише стратегиите за генериране на тестови случаи за с-мата

  • Да се разберат основните х-ки на средствата използвани за автоматизиране на тестовете.


4069968

Основни теми

  • Тестване на с-мата

  • Тестване на компонентите

  • Проектиране на тестовите случаи

  • Автоматизация на тестването


4069968

Процес на тестване

  • Тестване на компонентите

    • Тестване на индивидуални програмни компоненти

    • Обикновено разработчикът е отговорен за него (освен за някои критични с-ми)

    • Тестовете се извличат от опита на разработчика.

  • Тестване на с-мата

    • Тестване на групи от компоненти интегрирани да съдадат с-ма или подс-ма.

    • За него е отговорен независим екип за тестване.

    • Тестовете се основават на с-мната спецификация


4069968

Фази на тестване


4069968

Тестване за дефекти

  • Целта е да се открият дефекти в програмата

  • Успешен тест за дефекти е този, който кара програмата да се държи не по нормалния начин

  • Тестовете показват наличието, а не отсъствието на дефекти


4069968

Цели на тестовия процес

  • Валидиращо тестване

    • Да демонстрира на разработчика и на клиента, че софтуерът отговаря на изискванията му.

    • Успешен тест е този, който показва, че с-мата действа, както е замислена

  • Тестване за дефекти

    • Да открие грешки или дефекти в софтуера, където поведението е неправилно или има несъответствие със спецификацията;

    • Успешен тест е този, който предизвиква неправилно действие или разкрива дефект.


4069968

Процес на тестване на софтуера


4069968

Политики за тестване

  • Само пълното тестване може да покаже,че програмата няма дефекти. Обаче пълното тестване е невъзможно.

  • Политиките дефинират подхода, който се използва при избор на тестовете на с-мата

    • Трябва да се тестват всички функции извиквани от меню

    • Трябва да се тестват комбинациите от функции викани от едни също меню

    • Когато се очаква вход от потребителя, трябва да се тестват всички функции с правилни и неправилни данни.


4069968

Тестване на с-мата

  • Извършва интегрирането на компоненти за създаване на с-ма или подс-ма

  • Може да включва тестването на инкременти, които се предават на клиента.

  • Две фази:

    • Интеграционно тестване.Екипът има достъп до сорс кода на с-мата. С-мата се тества с интегрирането на компонентите.

    • Тестване на изданието.Екипът тества готовата за издаване с-ма като черна кутия.


4069968

Интеграционно тестване

  • Включва изграждането на с-мата от и тестването й за проблеми, които могат да възникнат от взаимодействието на компонентите.

  • Интегриране отгоре-надолу

    Разработва се скелета на с-мата и се запълва с компоненти

  • Интегриране отдолу нагоре

    Интегрират се инфраструктурните компоненти и след това функционалните

  • С-мите трябва да се изграждат инкрементално, за да се опрости локализацията на грешките


4069968

Инкрементално интеграционно тестване

A

T1

T1

A

T1

T2

A

B

T2

T2

T3

B

T3

B

C

T3

T4

C

T4

D

T5

Test sequence 1

Test sequence 2

Test sequence 3


4069968

Подходи за тестването

  • Валидиране на архитектурата

    Интегриращото “отгоре-надолу” тестване е по-добро при откриване на грешки в с-мната архитектура

  • Демонстрация на с-мата

    Интегриращото “отгоре-надолу” тестване позволява ограничена демонстрация в ранен етап на разработката

  • Осъществяване на теста

    Често е по-лесно с интегриращото “отдолу-нагоре” тестване

  • Наблюдение на тестовете

    Проблеми и при 2-та подхода. Може да се изисква допълнителен код за наблюдение на тестовете


4069968

Тестване на изданието

  • Това е процесът на тестване на изданието, което ще се достави на клиентите

  • Основна цел да се повиши увереността на доставчика, че с-мата отговаря на изискванията.

  • То обикновено е “черна кутия” или функционално тестване

    • Основава се само на спецификацията;

    • Тестващите нямат представа от осъществяването.


4069968

Тестване “черна кутия”


4069968

Насоки за тестването

Това са съвети за тестващия екип, за да им помогнат да изберат тестове, които ще открият дефекти в с-мата

  • Избери входни данни, които карат с-мата да генерира всички съобщения за грешки.

  • Проектирай входа така, че буферите да се препълнят

  • Повтори един и същ вход или последователност от входове няколко пъти

  • Предизвикай невалиден изход;

  • Предизвикай много големи или много малки резултати от изчисленията.


4069968

Сценарий за тестване


4069968

Тестове на с-мата


Use cases

Случаи на използване (Use cases)

  • Случаите на използване могат да са база за извличане на тестове. Те помагат да се определят операциите, които трябва да се тестват и да се проектират тестваните случаи.

  • От съответна диаграма на последователностите (sequence diagram) могат да се определят входовете и изходите, които да се тестват.


4069968

Диаграма на последователностите за събиране на метео-данни


4069968

Тестване на ефективността

  • Част от тестовете могат да проверяват интегралните качества на с-мата акто ефективност и надеждност.

  • Тестовете за ефективност включват планиране на серия тестове с повишаващо натоварване, докато бързодействието стане неприемливо.


4069968

Тестване на стрес

  • Пуска с-мата с натоварване над максималното. Често това предизвиква показването на скрити дефекти.

  • Стресирането на с-мата тества поведението при срив. Това не трябва да става катастрофа. Тестването проверява за неприемлив отказ от услуги или загуба на данни

  • То е важно за разпределени с-ми, които могат да покажат разпадане на с-мата при претоварване на мрежата


4069968

Тестване на компоненти

  • Това е процес на тестване на изолирани индивидуални компоненти

  • Това е процес на тестване за дефекти

  • Компонентата може да е:

    • Отделна функция или метод на обект

    • Класове от обекти с по няколко атрибута и методи

    • Съставни компоненти с дефиниран интерфейс за достъп до функциите й.


4069968

Тестване на клас от обекти

  • Пълното тестване на клас включва:

    • Тестване на всички операции асоциирани с един обект

    • Даване на стойност на атрибутите и достъп до тях

    • преминаване на обекта през всички възможни състояния

  • Наследяването усложнява проектирането на тестовете за класове, защото информацията за проверка не е локализирана.


4069968

Интерфейс на обекта Метео-станция


4069968

Тестване на клас Метео-станция

  • Нужно е да се дефинират тестовите случаи за reportWeather, calibrate, test, startup и shutdown.

  • Като се използва моделът на състоянията, трябва да се определят последователностите от промени на състоянията и последователностите от събития предизвикващи тези състояния

  • Например:

    Waiting -> Calibrating -> Testing -> Transmitting -> Waiting


4069968

Тестване на интерфейсите

  • Целите са да открият грешки в интерфейсите или неверни предположения за интерфейсите.

  • Особено важно за обектно ориентираната разработка, където обектите са дефинирани чрез интерфейсите си.


4069968

Тестване на интерфейсите

Test

cases

A

B

C


4069968

Типове интерфейси

  • Параметричен интерфейс

    Данните предадени от една процедура на друга

  • Интерфейси със споделена памет

    Блок памет, който е общ за процедури и/или функции

  • Процедурен интерфейс

    Под-с-ма капсулира напор от процедури, които могат да бъдат извиквани от друга под-с-ма

  • Интерфейс чрез предаване на съобщения

    Под-с-ма иска услуга от друга под-с-ма.


4069968

Грешки в интерфейсите

  • Неправилно използване

    Извикващата компонента извиква друга компонента и извършва грешка при използването й, напр. грешен ред на параметрите

  • Неразбиране на интерфейса

    При написването на извикващата компонента са направени неправилни предположения за поведението на извикваната компонента.

  • Грешки на синхронизация

    Извикващата и извикваната компоненти работят с различни скорости и е предадена неактуална информация.


4069968

Насоки при тестването на интерфейсите

  • Тестовете се проектират така, че параметрите към извикваната процедура да са с гранични стойности

  • Когато има параметри-указатели се тестват с null

  • Проектират се тестове, които предизвикват срив на компонентата

  • Използва се стресово тестване при с-ми с обмен на съобщения

  • При с-ми със споделена памет трябва да се променя реда на активиране на компонентите.


4069968

Проектиране на тестовите случаи

  • Това са входовете и изходите, използвани да се тества с-мата

  • Целта е да се създаде набор от тестове, които са ефективни за валидирането и за откриването на дефекти

  • Подходи в проектирането:

    • Тестване основано на изисквания

    • Тестване основано на раздели от данни;

    • Структурно тестване.


4069968

Тестване основано на изисквания

  • Основен принцип на инженеринга на изискванията е, изискванията да са проверяеми

  • Това е техника за валидиращо тестване, при което за всяко изискване се извлича набор от тестове.


Libsys

Изисквания за LIBSYS


Libsys1

Тестове за LIBSYS


Partitions

Тестване по класове (partitions)

  • Входните данни и изходните р-тати често попадат в различни класове, в които всички членове на даден клас имат общи х-ки.

  • Всеки от тези класове се нарича клас на еквивалентност или домейн, като програмата се държи по еквивалентен начин за всеки член на класа.

  • За всеки клас трябва да бъде избран тестов случай.


4069968

Класове на еквивалентност


4069968

3

1

1

4

7

1

0

Less than 4

Betw

een 4 and 1

0

Mor

e than 1

0

Number of

input v

alues

9999

1

00000

1

0000

5

0000

99999

Less than 1

0000

Betw

een 1

0000 and 99999

Mor

e than 99999

Input v

alues

Класове на еквивалентност


4069968

Спецификация на подпрограмата за търсене

procedure Search (Key : ELEM ; T: SEQ of ELEM;

Found : in out BOOLEAN; L: in out ELEM_INDEX) ;

Pre-condition

-- the sequence has at least one element

T’FIRST <= T’LAST

Post-condition

-- the element is found and is referenced by L

( Found and T (L) = Key)

or

-- the element is not in the array

( not Found and

not (exists i, T’FIRST >= i <= T’LAST, T (i) = Key ))


4069968

Подпрограма за търсене – класове на входа

  • Входове, които отговарят на предусловия

  • Входове, които не отговарят на предусловия

  • Входове, за които ключът е член на масива

  • Входове, за които ключът не е член на масива


4069968

Насоки за тестване (последователности)

  • Тествайте с последователности, които имат само 1 стойност

  • Използвайте последователности с различни размери в различните тестове

  • Направете тестове, при които се използва първия, последния и средния елемент на последователността.

  • Тествайте с последователност с дължина 0.


4069968

Подпрограма за търсене – класове на входа


4069968

Структурно тестване

  • Понякога се нарича тестване на “бяла кутия”

  • Извличане на тестовите случаи според структурата на програмата. Познаването на програмата се използва за определяне на допълнителни случаи.

  • Целта е да се изпълнят всички оператори на програмата (не всички комбинации на пътищата)


4069968

Структурно тестване

Test data

T

ests

Deri

v

es

Component

Test

code

outputs


4069968

Бинарно търсене – класове на еквивалентност

  • Удовлетворени предусловия, ключът е в масива

  • Удовлетворени предусловия, ключът не е в масива

  • Неудовлетворени предусловия, ключът е в масива

  • Неудовлетворени предусловия, ключът не е в масива

  • Pre-conditions unsatisfied, key element not in array.

  • Входният масив има една единствена стойност.

  • Входният масив има четен брой стойности.

  • Входният масив има нечетен брой стойности.


4069968

Бинарно търсене – класове на еквивалентност


4069968

Бинарно търсене – случаи на тестване


4069968

Тестване на пътищата

  • Целта на това тестване е да се всеки път в програмата да се изпълни поне веднъж.

  • Изходната точка за това тестване е блок-схемата на програмата, която е граф с възли представляващи решенията и дъги – пътят =на предаване на управлението

  • Операторите с условия са възлите в тази диаграма.


4069968

Бинарно търсене – блок схема


4069968

Независими пътища

  • 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 14

  • 1, 2, 3, 4, 5, 14

  • 1, 2, 3, 4, 5, 6, 7, 11, 12, 5, …

  • 1, 2, 3, 4, 6, 7, 2, 11, 13, 5, …

  • Случаите на тестване трябва да се подберат така, че да се изпълнят всички пътища

  • Може да се използва динамичен анализатор на програми, който да провери, че всички пътища са били изпълнени


4069968

Автоматизиране на тестването

  • Тестването е скъпа фаза. Тестващите с-ми предлагат серия средства, които съкращават времето и общите разходи за тестване

  • С-ми като Junit поддържат автоматично изпълнение на тестове

  • Повечето тестови с-ми са отворени, защото нуждите от тестове са специфични за организацията.

  • Те са понякога трудни за интегриране със затворени с-ми за проектиране и анализ.


4069968

С-ма за тестване

T

est da

ta

Specification

gener

a

tor

Sour

ce

T

est

T

est da

ta

Or

acle

code

mana

ger

Dynamic

Pr

o

g

r

am

T

est

T

est r

esults

anal

yser

being tested

pr

edictions

Ex

ecution

File

Sim

ula

tor

r

epor

t

comparator

R

epor

t

T

est r

esults

gener

a

tor

r

epor

t


4069968

Адаптиране на с-мите за тестване

  • Могат да се разработят скриптове за симулатори на потребителски интерфейс и модели за генераторите на тестови данни

  • За сравнение могат ръчно да се приготвят изходи от тестовете

  • Могат да се разработят програми за сравнение на файлове със специално предназначение


4069968

Обобщение

  • Тестването може да покаже наличието на грешки в с-мата; то не може да докаже че не са останали такива

  • За тестването на компонентите са отговорни техните разработчици; за тестването на с-мата отговаря специален екип

  • Интеграционното тестване тества инкременти на с-мата; тестването на изданието тества с-мата, която трябва да се предаде на клиента.

  • Трябва да се използват опита и насоките при изработването на тестовите случаи при тестването за дефекти.


4069968

Обобщение

  • Тестването на интерфейси трябва да открива дефекти ф интерфейсите на съставните компоненти

  • Разделянето на класове на еквивалентност е начина за разкриване на тестови случаи – всички случаи от клас трябва да имат еднакво поведение

  • Структурният анализ извлича тестове от анализа на програмата.

  • Автоматизацията на тестовете намалява разходите за тях, като използва редица софтуерни инструменти.


  • Login