Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс лекцый для 1 курса-1 семестр.doc
Скачиваний:
3
Добавлен:
09.11.2019
Размер:
2.95 Mб
Скачать

Тэсціраванне праграм

Атрыманы алгарытм, які можа быць запісаны на мове блок-схем ці на алгарытмічнай мове, трэба праверыць на наяўнасць памылак па роз­ных зыходных даных.

Чым раней будуць выяўлены памылкі, тым меншую шкоду яны пры­ня­суць. Вядома, напрыклад, што запуск першай амерыканскай станцыі да Венеры закончыўся няўдачай у выніку адзінай памылкі (апіскі) у пра­гра­ме. Пакуль не існуе тэорыі тэсціравання, якая гарантавала б выяўлен­не ўсіх памылак.

Разгледзім некалькі практычных правіл тэсціравання, кіраванне які­мі дазволіць паменшыць колькасць нявыяўленых памылак пры па­раў­нан­ні з бессістэмнай праверкай праграм.

1. Трэба рыхтаваць не толькі зыходныя даныя для тэстаў, але і загадзя зна­ходзіць вынікі, якія павінны атрымацца, бо можна лёгка прыняць па­мыл­ко­выя вынікі за правільныя.

2. Вельмі важна, каб праграма асэнсоўвала некарэктныя даныя, таму ся­род тэставых даных падрыхтоўваюць і некарэктныя зыходныя даныя.

3. Пачынаць састаўленне тэстаў трэба да састаўлення праграмы. Калі вы­яў­ле­ны выпадкі, якія належыць праверыць, тады і праграму прас­цей пісаць, а ўлік магчымых памылак у зыходных даных зробіць праг­ра­му больш устойлівай да зыходных даных.

4. Састаўленне тэстаў працягваецца паралельна з распрацоўкай пра­гра­мы. Як толькі ў праграме пішацца ўмоўная інструкцыя, тэставыя да­ныя папаўняюцца, каб забяспечыць праверку работы гэтай ін­струк­цыі і для праўдзівай, і для лжывай умовы. Пры напісанні інструкцыі цык­ла трэ­ба забяспечыць праверку работы праграмы ў выпадках, ка­лі цыкл не выконваецца ні разу, адзін ці некалькі разоў.

5. У тэстах трэба правяраць крайнія выпадкі. Сярод тэставых даных аба­вяз­ко­ва павінны быць значэнні, гранічныя паміж дапушчальнымі і недапушчальнымі, а таксама значэнні, якія па ўмове задачы не­аб­ход­на апрацоўваць асаблівым чынам.

6. Трэба дасканала і старанна аналізаваць вынікі выканання тэстаў, інакш тэсціраванне губляе сэнс.

7. Набор тэстаў трэба захоўваць, каб пры неабходнасці паўтарыць тэс­ці­ра­ван­не (напрыклад, пры выпраўленні праграмы).

Прыклад тэста для задачы рашэння квадратнага ўраўнення (прыклад адлюстроўвае таксама схему распрацоўкі праг­ра­мы).

а

b

с

Карані

0

0

0

Любы лік

Гэта некарэктныя зыходныя даныя, бо ўраўненне не квадратнае

0

0

5

Каранёў няма

0

2

–4

2

1

–2

2

Карані камплексныя (D < 0)

1

–2

1

1 1 – карані супалі

1

–2

0

0 2

6

–13

6

2 / 3 3 / 2

1

2 · 2,5

2,52

D = 0

1

2 · 2,6

2,62

D = 0

1

2 · 2,7

2,72

D = 0

Разгледзім другі прыклад. Саставіць праграму, якая ўводзіць тры цэ­лыя лікі. Калі гэтыя лікі задаюць даўжыню старон трохвугольніка, вы­зна­чыць яго від (правільны, раўнабедраны ці рознастаронні).

Пачнём з састаўлення тэста да гэтай праграмы. Спачатку праверым даў­жы­ні старон, з якіх трохвугольнік саставіць нельга.

a

b

c

Трохвугольнік

Суадносіны старон

0

0

0

Не існуе

a = b = c = 0

2

2

4

(Адрэзак) не існуе

a + b = c

1

3

–1

Не існуе

c < 0

1

1

5

Не існуе

a + b < c

5

3

3

Раўнабедраны

b = ca

4

6

4

Раўнабедраны

a = cb

5

5

7

Раўнабедраны

a = bc

4

4

4

Правільны

a = b = c

9

8

7

Рознастаронні

ab, aс, bc

Па гэтым тэсце ўжо можна напісаць фрагмент праграмы:

IF (a >= b + c) OR (b >= a + c) OR (c >= a + b)

THEN Write ('не існуе')

ELSE IF (a = b) AND (b = c) THEN Write ('правільны')

ELSE IF (a = b) OR (b = c) OR (a = c)

THEN Write ('раўнабедраны')

ELSE Write ('рознастаронні')