Жұмыс бағдарламасы №2 баспа «Бағдарламалау технологиясы»


Тестілеу процесінің кезеңдері



бет3/3
Дата05.03.2016
өлшемі261 Kb.
#42509
түріЖұмыс бағдарламасы
1   2   3

2.6.1 Тестілеу процесінің кезеңдері
Тестілеу процесін үш кезеңге бөлуге болады.

1.Қалыпты жағдайда тексеру. Программалардың жұмыс істеуінің нақты жағдайына тән алғашқы деректер негізінде тестілеу болжанады.

2.Экстремальды жағдайда тексеру. Бұл жерде тестілік деректер дегеніміз алғашқы деректер жиынының шекаралық мәндері. Бұл жиын программа дұрыс жұмыс істеуге тиісті алғашқы деректерден тұрады. Өте кіші немесе өте үлкен сандар және деректердің болмауы мұндай деректердің типтік мысалдары болып табылады.

Барлық программалар қандайда бір шектеулі алғашқы деректер жиынын өңдеуде есептеліп жасақталатындығы белгілі. Сондықтан мына төмендегі сұрақтарға жауап алу маңызды:



  1. Айнымалының теріс және нолдік мәндерін өңдеуге арналмаған программаға қандай да бір кеткен қателіктің себептерінен дәл сол мәндерді өңдеуге тура келсе не болар еді?

  2. Егер массив элементтері оны хабарлауда көрсетілген саннан асып кетсе, онда массивтермен жұмыс істеп жатқан программа өзін қалай ұстар еді?

  3. Егер өңделіп жатқан сан өте кіші немесе өте үлкен болса, онда не болар еді?

Программа дұрыс емес деректерді дұрыс деректер ретінде қабылдап, дұрыс нәтижеге ұқсас, бірақ дұрыс емес нәтиже беретін жағдайлар ең жаман жағдайлар болып есептеледі.

Программа өзі дұрыс өңдей алмайтын кез келген деректерді теріске шығаратын болу тиіс.


2.7 Программалауда кездесетін қателіктер
Компьютерде есеп шығарудың барлық кезеңдерінде, атап айтқанда, есептің қойылуына бастап, оның құжаттарын даярлағанға дейін қателіктің кетуі мүмкін.

Мысалы есептің дұрыс қойылмауы, есепті шығару үшін құрылған алгоритмнің дұрыс болмауы, логикалық қателіктер кететін жағдайларды дұрыс есепке алмау, семантикалық және синтаксистік қателер, операцияларды орындау кезінде кететін қателіктер, деректерді беруде жіберілетін қателіктер, ендіру-шығару кезінде кететін қателіктер.

Әдетте синтаксистік қателіктер трансляциялау кезінде байқалады. Көптеген басқа да қателіктерді программалаушының не ойлағандығын білмегендіктен транслятор таба алмайды.

Сондықтан компьютердің синтакасистік қателіктер туралы хабарының жоқ болуы программаның дұрыстығының жеткілікті щарты болып табылмайды.

Синтаксистік қателіктердің мысалдары:


  • тыныс белгілерінің қалып кетуі;

  • жақшалардың сәйкес келмеуі;

  • оператордың дұрыс жазылмауы;

  • қызметші сөздің дұрыс жазылмауы;

  • айнымалы атының дұрыс жазылмауы;

  • циклдің аяқталу шартының жоқ болуы;

  • массив сипаттамасының жоқ болуы т.с.с.


2.7.1 Транслятор таба алмайтын қателіктер
Программада пайдаланылатын операторлар дұрыс жазылғанымен транслятор таба алмайтын көптеген қателіктер болады.

Осындай қателіктердің мысалдарын келтірейік.



Логикалық қателіктер:

  • кейбір шартты тексергенмен кейін алгоритмнің қай тармағын орындауға өтуді дұрыс көрсетпеу;

  • мүмкін болатын шарттарды толық есептемеу;

  • программада алгоритм блоктарын орындау үшін қажет болатын бір немесе бірнеше шамаларды қалдырып кету.

Циклдерде кездесетін қателіктер:

  • циклдің басын дұрыс көрсетпеу;

  • циклдің аяқталу шарттарын дұрыс көрсетпеу;

  • итерация санын дұрыс көрсетпеу;

  • шексіз цикл.

Ендіру-шығару қателіктері; деректермен жұмыс істеудегі қателіктер:

  • деректердің түрін дұрыс бермеу;

  • талап етілген аз немесе көп деректерді оқуды ұйымдастыру;

  • деректерді дұрыс түзетпеу;

Айнымалыларды пайдалануда кететін қателіктер:

  • айнымалыларды олардың бастапқы мәндерін көрсетпей пайдалану;

  • бір айнымалыны басқа айнымалының орнына қате көрсету.

Массивтермен жұмыс істеуде кететін қателіктер:

  • алдын ала нолге келтірілмеген массивтер;

  • дұрыс сипатталмаған массивтер;

  • индекстерінің берілу реттілігі дұрыс емес массивтер.

Арифметикалық операцияларды орындауда кететін қателіктер:

  • айнымалының түрін дұрыс көрсетпеу (мысалы, нақты айнымалының орнына бүтін айнымалыны көрсету);

  • әрекеттер ретін дұрыс анықтамау;

  • нөлге бөлу;

  • теріс санның квадрат түбірін табу;

  • санның мәнді разрядын жоғалту.

Осы қателіктердің бәрін тестілеудің көмегімен табуға болады.
2.8 Программалау жүйесі
Программалау жүйесі компьютердің программалық қамсыздандыруының құрамына жатады және ол программаларды жасау және оларды жөндеу жұмыстарын автоматтандыруды қамтамасыз ететін құралдардың жиыны болып табылады. Программалау жүйесінің құрамы 5-суретте бейнеленген.

Программалау процесі үш кезеңге бөлінеді:



  • есепті шешудің алгоритмін құру;

  • программа құру;

  • жасалған программаны тексеру.

Екінші кезеңдегі, яғни программа қрудағы қиындық адамның тек машина тілінде ғана программа жасауына байланысты болады. Компьютерді пайдаланудың алғашқы жылдарында әрқайсының әр түрлі компьютерлердің пайда болуы бұл қиындықты тереңдетіп жібереді. Сондықтан нәтижесінде бір компьютерге арнап жасаған программаны басқа компьютерге пайдалануға болмайтын болды. Бұл бір алгоритмнің өзін әр түрлі компьютерлерде орындау үшін әрқайсына жеке-жеке программа құруға мәжбүр етіпижұмысты қиындатып жіберді.

Әрбір компьютер үшін жасалған программаның дұрыс және ұтымды жасалғандығын тексеру қажет. Қателік кеткендігі және басқа да кемістіктері бар екендігі анықталса, онда ол программаға түзетулер мен өзгерістер ендіріледі. Программалаудың осы аталған кезеңдерінің арнайы ерекшеліктері және қиыншылықтары бар.



Сурет 5 Программалау жүйесінің құрамы

Программалауды автоматттандырудың ең көп тараған негізгі тәсілдеріне мыналар жатады:


  • қолмен программалауды жеке жұмыстарын автоматтандыру тәсілдері;

  • бағыныңқы программалар кітапханасын құру;

  • программалаудың әр түрлі тілдерін пайдалану.

Қолмен программалаудың жеке жұмыстарын автоматтандыру тәсілдері. Қолмен программалаудағы жұмыстарды автоматтандыруда жұмыс программаларын түзетуді негізгі назарда ұстау керек.

Қазіргі кезде программаның дұрыстығын тексеру үшін жоғарыда айтқандай тест тәсілі кеңінен қолданылады. Тест тәсілі бойынша жауаптарды алдын ала белгілі есептердің бірнеше нұсқасы компьютерде құрылған программаны пайдаланып шығарылады. Алынған нәтижелер алдын ала белгілі жауаптармен салыстырылады. Ол жауаптар біріне – бірі сәйкес келмесе, онда программада қателіка кеткен болып шығады.

Программаны жөндеу процесі бірнеше әмбебеп жөндеуші программаларды жасау және компьютердің өзін пайдалану арқылы автоматтандырылады. Бұл программалар командалардың қалай орындалып жатқандығы туралы информацияны баспаға бере отырып жөнделіп жатқан программаның кез келген бөлігінің жұмысын қадағалап бақылауға мүмкіндік береді. Программаны автоматты түрде жөндеуде программалаушыны қызықтыратын барлық информация құжатқа жазылады, соның арқасында ол компьютерді пайдаланбай-ақ есептің компьютерде шншілу процесінің дұрыстығын бақылай алады.
2.9 Программалау тілдері
Программаларды жасауда қазіргі заманғы компьютерлерде әр түрлі деңгейдегі программалау тілдері пайдаланылады.

Жалпы жағдайда тіл деп информацияның жазылыуын және оның түрленуін белгілі ережелер бойынша формальдыетіп беруші құралдарды түсінеміз.

Тілдің құрамында информацияның негізгі элементтерін құрудың құралдары және осы элементтерден әр түрлі мазмұнды құрылымдар құруға арналған ережелер жүйесі бар.

Программалау тілі деп деректерді жазуға және оларды белгілі ережелер бойынша өңдеуге арналған адам мен компьютерді байланыстыратын формальды тілді айтамыз.

Програмалаудың әр түрлі тілдерін пайдалану.

Әр түрлі белгілер бойынша жіктеуге болатын бірнеше жүздеген программалау тілдері бар. Ең жалпысы тілдің машинаға жақындық дәрежесі бойынша жіктеу болып табылады. Осы белгісі бойынша программалау тілдері екі үлкен топқа бөлінеді:



Машинаға тәуелді тілдер өз кезегінде былай бөлінеді:

  • машина тілі;

  • машинаға бағдарланған тілдер;

Машинаға бағдарланған тілдер кейде автокодтар деп те аталады. Машинаға бағдарланған тілдердің екі деңгейі бар:

  • символдық кодтау тілдері, басқаша айтқанда мнемокодтар;

  • макротілдер.

Макротілдер машина тілінің командаларына тікелей ұқсастығы жоқ макрокомандаларды пайдалануға рұхсат етеді. Макрокомандаларды пайдалану программаны қысқартады әрі тілді жасау құралдарының жиынын кеңейте отырып программалаушының еңбегінің өнімділігін арттырады.

Машинаға тәуелсіз тілдер программаларды бөлшектеу дәрежесіне қарай екі топқа бөлінеді:

  • процедулалы- бағдарланған тілдер;

  • проблемалы – бағдарланған тілдер.

Процедулалы – бағдарланған тілдер есепті шешу алгоритмін сипаттауға арналған, сондықтан да оларды кейде алгоритмдік тілдер деп те атайды. Алгоритмдік тіл деген ұғым программалау тілі деген ұғыммен сәйкес елмейді. Егер алгоритмдік тілде жазылған алгоритмдік жазу компьютерге ендіруге тікелей жарамды және дайын жұмысшы программаға түрленетін болса, онда мұндай алгоритмдік тіл программалау тілі де бола алады. Кейбір алгоритмдік тілдер тек оларға кейбір құралдарды қосқаннан кейін ғана программалау тілі болады.

Проблемалы – бағдарланған тілдер есептерді сипаттау үшін қызмет атқарады.

Бірақ алгоритмдік тілдер өздігінен барлық проблеманы, тіптен программаны да шеше алмайды. Мұндай тілде жазылған программа компьютерде тікелей орындалмайды, ол орындалу үшін алдын ала сол компьютердің машина тіліне аудару жеткілікті қиын мәселе болып табылады.

Алгоритмдік тілден программаны машина тіліне аудару жұмысын компьютердің әмбебаптығын пайдаланып, оның өзіне жүктеуге болады. Бұл үшін әрбір алгоритмдік тілден машина тіліне формальды аударуға яғни аударудың ережесін алгоритм түрінде тұжырымдауға мүмкіндік беретіндей болуы керек. Егер, осы алгоритмді бір рет машиналық программа түріне келтіріп алсақ, онда одан кейін осы программаның көмегімен компьютердің өзі берілген алгоритмдік тілде жазылған кез келген программаны нақтылы компьютердің машина тіліне аударып бере алады. Мұндай арнайы аудармашы-программа жоғарыда айтқанымыздай транслятор деп аталады.
3 Турбо Си программалау тілі туралы мағлұматтар

3.1 Си тілінің негізі элементтері. Тіл алфавиті
Тіл алфавиті деп, осы тілдегі жазылатын программалық текстерді құру үшін пайдаланатын символдардың жиынтығын айтады. Кез - келген программалық тіл символдардан, сөздерден, сөз тізбектері және сөйлемдерден - операторлардан тұрады.Сөздер сиволдардан құралады, ал операторлар сөз тіркестерінен тұрады:

1. 26 латын алфавитінің әріптерінен, олармен қызметші сөздермен иденфикаторлар жазылады. Идентификаторлар - программада кездесетін барлық тұрақтыларды, айнымалыларды, функциялармен процедураларды белгілеу үшін қолданылатын әріптер мен сандар және сызықшадан тұратын қызметші сөздер. Идентификаторларға бұлардан басқа символдарды беруге болмайды, олар міндетті түрде әріптен басталуы керек және оларға тілдегі басқа қызметші сөздердің атын қоюға болмайды. Идентификаорларды бас әріппен де, кішкентай әріптермен де жаза беруге болады.

2. Сандарды белгілейтін араб цифраларынан: 0,1,2,3,4,5,6,7,8,9. Сандар бүтін және нақты болып екіге бөлінеді. Нақты сандардың бүтін бөлігімен бөлшегін нүкте арқылы бөліп жазады -9.7, 6.25, .41,-8.178.

Ал өте үлкен немесе өте кіші шамалар экспонициал сандар түрінде жазылады- 1.801Е + 5(1.801*105), 5.74E-4(5.74*10-4);

3. Ұлттық алфавит әріптерінен, ұлттық әріптер түсініктеме мен комментарийлар жазу үшін немесе символдық айнымалыларда қолданылады (ұлттық алфавит әріптері клавиатураның жоғарғы жағындағы цифрлар орнына арнаулы драйверлер қосылғанда ғана жұмыс істейді);

4. Арнаулы символдардан: +,-,:,',<,>,/,=,.,(,),,,$,%,& т.б.

Программалар белгілі бір мәселені, есепті шешуге арналған. Есеп шығару барысында компьютерге бастапқы мәліметтер енгізіледі, оларды қалай өңделетіндігі көрсетіледі және нәтиже қандай түрде, қандай құрылғыға шығарылатыны айтылады.

Си тілінде программа жеке - жеке жолдардан тұрады. Оларды теру, түзету арнайы мәтіндік редакторлар атқарылады. Программа алдындағы азат жол немесе бос орын саны өз қалауымызша алынады. Бір қатарда бірнеше команда немесе оператор орналаса алады, олар бір - бірімен нүктелі үтір (;) арқылы ажыратылып жазылады, бірақ бір жолда бір ғана оператор тұрғаны дұрыс, ол түзету жеңіл, әрі оқуға ыңғайлы.

Си тілінде программа үш бөліктен тұрады: тақырып, сипаттау бөлімі және операторлар бөлімі.

Кез келген программаның алғашқы жолы PROGRAM сөзінен басталатын оның тақырыбынан тұрады. Одан кейін программаның ішкі объектілерінің сипаттау бөлімі жазылады. Бұл бөлім программадағы айнымалылар, тұрақтылар тәрізді объектілердің жалпы қасиеттерін алдын ала анықтап алуға көмектеседі. Сипаттау бөлімі бірнеші бөліктерден тұрады, бірақ программаның күрделілігіне байланысты көбінесе ол бір немесе екі ғана бөліктен тұруы мүмкін.

Программаның соңғы және негізгі бөлімі операторлар бөлімі – болып табылады. Орындалатын іс - әрекеттер, командалар осы бөлімде орналасады.

Операторлар бөлімінде командалар ретімен орналасады. Олардың кейбірі шартқа байланысты атқарылса, ал кейбір қайталанатын цикл немесе қосымша программа түрінде орындалады. Операторлар бөлімінде орнатылатын негізгі әрекеттерді қарастырайық.



Деректер - сан мәндері мен мәтін түріндегі сөз тіркесін мән ретінде қабылдай алатын тұрақтылар, айнымалылар т.б. осы тәрізді құрылымдар немесе солардың адрестері.

Дерек енгізу - бастапқы деректерді пернетақтадан, дискіден немесе еңгізу - шығару порттарынан еңгізу арқылы жүзеге асады.

Операциялар немесе амалдар - берілген және есептелген мәндердің меншіктеу, соларды өңдеу, салыстыру операцияларын орындайды.

Шартты түрде атқарьшу белгілі бір көрсетілген шарттың орындалуына байланысты, командалар жиыны атқарылады, әйтпесе олар аттап өтіледі немесе басқа командалар жиыны орындалады.

Цикл - белгілі бір шарттар орындалған жағдайда көрсетілген командалар жиынын бірнеше рет қайталанып атқарылады. Қайталау саны бүтін санмен беріледі.

Көмекші программа - алдын ала қандай да бір атаумен атымен атымен аталған командалар тобы. Олар программаның кез келген жерінен оның атауын көрсету арқылы шақырылып атқарыла береді.

Түсініктеме - программа жолдары соңында немесе оның түйінді сөздері арасында қазақша (орысша) түсінік беретін пішінді жақшаға алынып жазылған сөз тіркесітері. Олар программа операторларының орындалуына ешқандай әсер етпейді.

3.2 Си тіліндегі программа дайындау жолдары

3.2.1 Программа құрылымы
Си тілінің программасы блоктардан құрылады. Қандай да бір блок ішінде басқа да кішігірім блоктар орналасуы мүмкін. Блоктар екі бөлімнен тұрады, олардың алғашқысы - мәліметтерді сипаттау бөлімі, ал екіншісі.- сол мәліметтерді пайдаланып, әр түрлі іс - әрекеттерді (операцияларды, амалдарды) атқару бөлімі.

Мәліметтерді сипаттау бөлімінің болуы міндетті емес, ал екінші негізгі бөлімінің болуы міндетті. Басқа блокқа кірмейтін блок негізгі (глобальді) блок болып саналады. Ал блок ішіндегі блок - жергілікті (локальді) блок деп аталады.

Негізгі блок - негізгі программа блогы, сондықтан ол басқа блоктарға кірмеуі тиіс. Жергілікті блоктарға процедуралар мен функциялар кіреді, олар кейбір программаларда болмауы да мүмкін.

Программалардың негізг объектілері болып саналатын айнымалы, тұрақты және oлapдың типтері орналасқан блогына байланысты басты немесе жергілікті деп аталады. Программа объектілерінің де жұмыс істеу, ықпал ету аймағы сол өздері орналасқан блокпен шектеледі. Блоктық құрылым программа мәтінін тиянақты түрде қатесіз құрастыруға мүмкіндік береді.

Турбо Си программасының тақырыбын (атауын) жазбай кетуге де болады, бірақ жалпы Си тілінің стандарты бойынша программада тақырып болуы қажет.

Си тіліндегі программалар бірнеше бір-бірімен байланысып тұратын бөлімдерден тұрады. Мысалы: бір программа келесі бөлімдерден тұруы мүмкін:

1. программа тақырыбы;

2. айнымалылар мен типтер бөлімі;

3. таңбалар (белгі) бөлімі;

4. тұрақтылар бөлімі;

5. процедуралар мен функциялар бөлімі;

6. программа денесі бөлімі;



Программа тақырыбы қызметші сөздерден, латын әріптерінен тұратын программа атынан тұрады. Программа тақырыбынан кейін әтірлі нүкте қойылады. Түсініктемелер жәй жақша ( * *) немесе фигуралық жақша { } ішінде жазылады.




Достарыңызбен бөлісу:
1   2   3




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет