Studopediya

КАТЕГОРИЯ:


Астрономия- (809) Биология- (7483) Биотехнологии- (1457) Военное дело- (14632) Высокие технологии- (1363) География- (913) Геология- (1438) Государство- (451) Демография- (1065) Дом- (47672) Журналистика и СМИ- (912) Изобретательство- (14524) Иностранные языки- (4268) Информатика- (17799) Искусство- (1338) История- (13644) Компьютеры- (11121) Косметика- (55) Кулинария- (373) Культура- (8427) Лингвистика- (374) Литература- (1642) Маркетинг- (23702) Математика- (16968) Машиностроение- (1700) Медицина- (12668) Менеджмент- (24684) Механика- (15423) Науковедение- (506) Образование- (11852) Охрана труда- (3308) Педагогика- (5571) Полиграфия- (1312) Политика- (7869) Право- (5454) Приборостроение- (1369) Программирование- (2801) Производство- (97182) Промышленность- (8706) Психология- (18388) Религия- (3217) Связь- (10668) Сельское хозяйство- (299) Социология- (6455) Спорт- (42831) Строительство- (4793) Торговля- (5050) Транспорт- (2929) Туризм- (1568) Физика- (3942) Философия- (17015) Финансы- (26596) Химия- (22929) Экология- (12095) Экономика- (9961) Электроника- (8441) Электротехника- (4623) Энергетика- (12629) Юриспруденция- (1492) Ядерная техника- (1748) Arhitektura- (3434) Astronomiya- (809) Biologiya- (7483) Biotehnologii- (1457) Военни бизнесмен (14632) Висока technologies- (1363) Geografiya- (913) Geologiya- (1438) на държавата (451) Demografiya- ( 1065) Къща- (47672) журналистика и смирен (912) Izobretatelstvo- (14524) външен >(4268) Informatika- (17799) Iskusstvo- (1338) историята е (13644) Компютри- (11,121) Kosmetika- (55) Kulinariya- (373) културата е (8427) Lingvistika- (374) Literatura- (1642) маркетинг-(23702) математиците на (16968) Механична инженерно (1700) медицина-(12668) Management- (24684) Mehanika- (15423) Naukovedenie- (506) образователна (11852) truda- сигурност (3308) Pedagogika- (5571) Poligrafiya- (1312) Politika- (7869) Лево- (5454) Priborostroenie- (1369) Programmirovanie- (2801) производствено (97 182 ) индустрия- (8706) Psihologiya- (18388) Religiya- (3217) Svyaz (10668) Agriculture- (299) Sotsiologiya- (6455) на (42831) спортист строително (4793) Torgovlya- (5050) транспорт ( 2929) Turizm- (1568) физик (3942) Filosofiya- (17015) Finansy- (26596) химия (22929) Ekologiya- (12095) Ekonomika- (9961) Electronics- (8441) Elektrotehnika- (4623) Мощност инженерно ( 12629) Yurisprudentsiya- (1492) ядрена technics- (1748)

Методи за отстраняване на грешки на софтуер




грешки Класификация

Интернет-ресурси

План на лекцията

Debugging Software

№8 Лекция.

Тамбов 2011

група Course BIS-11, LSI-12

6. Тема Debugging Software

Лекция 8

Дисциплина на технология за програмиране

Дестинация 230400 "Информационни системи и технологии"

Инструктор: Юрий Минин

Целта на лекцията

Целта на лекцията е да даде представа за процеса и техниките за отстраняване на грешки на софтуера.

1. Грешка Класификация

2. Методи за отстраняване на грешки на софтуер

3. Методи и средства за повече информация за грешката

4. Методи за отстраняване на грешки на софтуер

Позоваването

основната Reading

1. Иванов, GS Програмиране Technology М:. Издателство на MSTU. NE Бауман, 2002 г. - 320 стр.

2. EA Zhogolev Програмиране Technology М: научния свят, 2004 г. - 216 стр..

3. Гагарин LG, Kokoreva EV Visnadul BD Софтуерно инженерство. М:. Издателство "ФОРУМ" - INFRA-М, 2008 - 400c.

Допълнителна информация

1. S. Kaner, Falk D. Nguyen E. тестване на софтуер. М:. DiaSoft, 2001 г. - 544s.

2. технология за разработка на софтуер E. Braude. SPb:. Петър, 2004 г. - 655 стр.

3. Баранов SN, Domaratsky AN Lastochkin NK Морозов VP Процесът на разработване на софтуерни продукти. FIZMATLIT M:. Наука, 2000 г. - 176s.

1. www.intuit.ru - Internet университет по информационни технологии.

2. http://citforum.ru/ - Център за информационни технологии.

3. http://www.tstu.ru/r.php?r=education - Electronic TSTU библиотека.

4. http://www.edu.ru/ - Библиотека Федералното портал "Руски Образование"

Съдържанието на лекцията

Отстраняване на грешки в програмата - една от най-трудните етапи на разработка на софтуер, който изисква по-дълбоко познаване на:

- Управление на спецификата на техническите средства,

- Операционна система,

- Околна среда и език за програмиране,

- Реализирани процеси

- Характера и спецификата на различни грешки,

- Изчистване на грешки техники и съответния софтуер.

Обсъждането на последните два въпроса и е посветена на тази лекция.

Debug- е процес на намиране и коригиране на грешки, открити по време на тестване на софтуер. Локализация е процес на определяне на оператор на програма, изпълнението на което е причинило разрушаването на изчислителната процес. За да се коригира грешка, трябва да се определи причината за нея, т.е. идентифициране на оператора или фрагмент, съдържащ грешката. Причини за възникване на грешки могат да бъдат както явни и скрити много дълбоко.



Като цяло, сложността на отстраняване на грешки, поради следните причини:

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

- Психологически неудобно, тъй като е необходимо да се търсят собствените си грешки и, като правило, в ограничен период от време;

- Възможни грешки смущения в различни части на програмата, например, чрез триене на модул памет на друг, насочени грешки;

- Има още няма ясно определени техники за отстраняване на грешки.

В съответствие с етапа на обработка, в които се се отличават грешки (Фигура 1):

- Синтаксис грешки - грешки, записани от компилатора (компилатор, интерпретатор), когато синтактичен и семантичен анализ част от програмата;

- Разпределение грешки - грешки, открити от свръзката (свързваща) чрез комбиниране на модули на програмата;

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

Фигура 1 - Класификация грешка от изпълнение стъпка програма

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

Трябва да се има предвид, че правилата, по-добре формализирани език синтактични, толкова по-общия брой грешки, които могат да открият на компилатора и следователно по-малко грешки ще бъдат открити в следващите етапи. Затова предлагам език за програмиране синтаксис защитени и незащитени синтаксис. Бившият, разбира се, могат да бъдат отнесени Паскал, като един много прост и добре дефиниран синтаксис, добре проверени при съставяне на програмата, към втория - C / C ++, с всички техни модификации. Че има дори възможността за прехвърлянето в условен израз в C / C +, например:

ако (с = N) = х 0.

В този случай, не се провери самоличността C и D и изпълнена задачата със стойности на N, тогава резултатът от операцията е в сравнение с нула, ако програмистът иска да пее на заданието и сравнение, тази грешка се открива само по време на изпълнение при получаване на резултати, които се различават от очакваните ,

Разпределение грешки. оформление грешки, както подсказва името, са свързани с проблеми, открити при резолюция на външни линкове. Например, лечение, както комбинация от друг модул и чрез комбиниране на модули, тази рутинна не е намерена или не са свързани списъка опция. В повечето случаи този вид грешка е възможно също така за бързо намиране и премахване.

Изпълнение грешки. За най-непредсказуем група включва грешки по време на работа. На първо място, те могат да бъдат от различно естество и следователно се проявява по различни начини. Част от откритите и документирани от операционната система грешки. Има четири начина за показване на тези грешки:

- Съобщение за грешка, фиксираните вериги наблюдават прилагането на машинни инструкции, като преливане цифрен решетка, ситуация "разделение на нула" на, обръщайки се злоупотреби и др.;.

- Появата на съобщение за грешка, открита от операционната система, като например нарушаване на защитата на паметта, се опитва да напише върху устройството, защитена срещу запис, няма файл с посоченото име и др.;.

- "Замразяване" на компютъра си толкова лесно, колкото е възможно, за да завърши програмата без рестартиране на операционната система, както и "трудно" да се продължи работата, необходима, за да се рестартира;

- Несъответствие между получените резултати с очакваните.

Имайте предвид, че ако етап грешка, потребителят разбира, че в първите два случая, получаване на съобщение, потребителят зависимост от тяхното естество, степента на нуждата и опита на работа с компютър, или се опитват да разберат какво се е случило, грижа за тяхната вина или да търсят помогне или се опитват да никога повече да има нищо общо с този продукт. В "виси" потребителят не може веднага да се разбере на компютъра, който е не, че нещо, макар и тъжно си опит и прави притеснявате всеки път, когато компютърът не дава бърз отговор на въведената команда, е препоръчително също да се има предвид. Тя също може да бъде опасна ситуация, в която потребителят получава грешни резултати и да ги използват в работата си.

Причини за възникване на грешки по време на работа са много разнообразни, и следователно локализация може да бъде изключително трудно. Всички възможни причини за грешки могат да бъдат разделени в следните групи:

- Грешно определение на първоначалните данни,

- логически грешки,

- Натрупването на грешки при изчисляването на резултатите (Фигура 2).

Неправилно определяне на първоначалните данни се извършва, ако има някакви грешки, когато операциите по входно-изходни: грешки при изпращане, грешки при конвертиране, пренаписване грешки и грешки в данните. Освен това, използването на специален хардуер и софтуер за защита на грешка може да се открие и предотврати само част от тези грешки.

Логическите грешки са различни по своя характер. Така че те могат да са резултат от грешки, направени в дизайна, например, при избора на метод, разработването на алгоритми за определяне на класове или структура, и може да се направи директно при кодирането на модул. Последната група включва:

- Грешки на неправилно използване на променливите, например, лош избор на типове данни, използване на променливи, които да им инициализация, използването на индекси, които излизат извън границите на определението на масиви, нарушения на типа за съответствие на данни с използване на косвено или пряко предефиниране на вида на данните, поставени в памет с помощта нетипизирани променливи, отворен масиви, съюзи, динамична памет, адрес аритметични, и така нататък и др..

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

- Грешки Интер-модул интерфейс, например, без да обръща внимание на системата от споразумения, нарушаването на видовете и последователност priperedachi параметри, провал edinitsizmereniya единството на формални и действителните параметри, нарушение на обхвата на локални и глобални променливи;

- Други кодиране грешки, като например неправилно прилагане в кодирането на логиката на програмата, без да обръща внимание на особености или ограничения на всеки конкретен език за програмиране.

Натрупването на резултатите от числени грешки в изчисленията се случи например, когато неправилното изхвърляне на дробни цифри числа, неправилна работа с приблизителни методи на изчисление, игнорирайки пределната дължина на думата представителство на реални числа в компютъра, и така нататък. Н.

Всички причините, посочени по-горе грешки трябва да се има предвид по време на отстраняване на грешки. Освен това, отстраняване на грешки сложност също е увеличена поради влиянието на следните фактори:

- Косвени прояви на грешки;

- Възможността за намеса на грешка;

- Възможността за получаване на различни прояви на същия външен грешка;

- Липсата на повторяемост на проявите на някои грешки от серия да тече (стохастични грешки);

- Възможност за елиминиране на външните прояви на грешка в проучването на ситуацията, когато се направят някои промени в програмата, като например включване в програмата на диагностични фрагменти могат да анулират или променят външната изява на грешки;

- Писане на отделните части на програмата чрез различни програмисти.

така или иначе Debugging програма включва мислене и логично тълкуване на цялата налична информация за грешката. Повечето от грешките могат да бъдат открити чрез косвени доказателства чрез внимателен анализ на програмен код и резултати от тестове, без повече информация. В същото време се използват различни методи:

- Ръчно тестване;

- Индукция;

- Приспадане;

- Връщане назад.

Ръчен метод за изпитване. Това - най-простият и най-естествен начин към тази група. Когато се открие грешка е необходимо за изпълнение на тест програма ръчно, с помощта на тест набор, грешка е била открита по време на работа с кого.

Методът е много ефективен, но не са подходящи за големи програми, програми с сложни изчисления и в случаите, когато грешката е свързано с неправилно програмиране идея на някои операции.

Този метод често се използва като част от други техники за отстраняване на грешки.

Индукция метод. Методът се основава на задълбочен анализ на симптомите на грешки, които могат да се проявят като невалидни резултатите от изчисленията, или като съобщение за грешка. Ако компютърът е просто "замръзва" фрагмент на дисплея грешка изчислява от получените резултати и последното действие на потребителите. Полученият по този начин ще се организира и внимателно информацията, проучени от гледане на съответната програма фрагмент. В резултат на тези действия, заложени хипотези за грешки, всеки от които се проверяват. Ако хипотезата е вярна, подробна информация за тази грешка, или - да представи друга хипотеза. Последователността на индукция на грешки метод е показан на фиг. 3 схематично алгоритъм.

Фигура 3 - схема на метода за определяне на процеса на индукция

Най-важният етап - идентифициране на симптомите на грешката. Организиране на грешка в данните, е препоръчително да запишете всичко, че не се знае за неговите проявления, и фиксиран, като ситуацията, в която един фрагмент от грешка се извършва нормално, и ситуацията, в която се появи грешка. Ако проучването не показват никакви данни хипотези, имате нужда от повече информация за грешката. Допълнителна информация може да се получи, например, като резултат от подобни тестове.

В процеса на се опитва да намери доказателства за това дали всички проявления на тази хипотеза обяснява грешката, ако не всички, или хипотезата не е вярна, или няколко грешки.

метод на приспадане. По метода за образуване на множество първи приспадане на причини, че това може да доведе до проява на грешка. След това, анализ на причините, премахване на тези, които са в противоречие с доклади. Ако всички причини са изключени, то е необходимо да се извършат допълнителни тестове на изпитваната проба. В противен случай, най-вероятно хипотеза се опитва да докаже. Ако хипотезата обяснява получените грешка знаци, грешката е намерена, в противен случай - да се провери следната причина (Фигура 4).

Фигура 4 - Схема на процеса на отстраняване на грешки метод приспадане

Трейс-назад метод. За по-малки програми за ефективно използване на метода на връщане назад. Започнете от точката на отнемане на неправилен резултат. Към този момент на хипотезата се основава на ценностите на ключовите променливи, които биха могли да доведат до наличните резултати. Освен това, въз основа на тази хипотеза, прави предложения за стойностите на променливите в предишната точка. Процесът продължава, докато той ще се намери причината.





; Дата: 05.01.2014; ; Прегледи: 1073; Нарушаването на авторските права? ;


Ние ценим Вашето мнение! Беше ли полезна публикуван материал? Да | не



ТЪРСЕНЕ:


Вижте също:



zdes-stroika.ru - Studopediya (2013 - 2017) на година. Тя не е автор на материали, и дава на студентите с безплатно образование и използва! Най-новото допълнение , Al IP: 66.102.9.24
Page генерирана за: 0.05 секунди.