Z čoho sa skladajú informačné toky? Informačné toky v logistike: pojem, všeobecná schéma, typy, merné jednotky. Príklady informačných tokov. Vývoj a implementácia informačných systémov

  • 31.10.2019

Ladenie programu je iteratívny proces hľadania a opravy chýb a zvyčajne si vyžaduje štyri kroky za sebou:

    detekcia chýb;

    lokalizácia chyby v texte programu;

    zistenie príčiny chyby;

    opravy chýb.

Niektoré chyby sa objavia po prvom spustení programu na spustenie a na ich zistenie nie je potrebné uchýliť sa k žiadnym špeciálnym prostriedkom. Niektoré chyby sa objavia v náhodných časoch, keď je program spustený. S týmito chybami je najťažšie sa vysporiadať – opraviť podmienky pre vznik chyby, pochopiť príčinu chyby a odstrániť ju. Ak chcete odhaliť takéto chyby, testovanie programu– jeho vykonanie pre špeciálne vybrané reprezentatívne testovacie prípady – testy. Test - ide o taký súbor počiatočných údajov, pre ktoré sa manuálne alebo iným spôsobom vypočítajú medzivýsledky a konečné výsledky a pomocou ktorých možno získať informácie o spoľahlivosti testovaného programu.

Testovanie programu by malo zahŕňať spustenie troch druhov testovacích prípadov: normálne situácie, hraničné situácie a prípady neplatných údajov. . Normálne prípady sú príklady s platnými vstupnými údajmi. Ak program v takýchto prípadoch nefunguje, vyžaduje si vážne prepracovanie. Prípady hraničných testov pomáhajú určiť, či je program schopný normálne reagovať na špeciálne prípady vo vstupe. Príklady hraníc sú údaje, ktoré, ak sú matematicky správne, spôsobujú, že program funguje určitým spôsobom. nesprávne sú také údajov ktoré sú mimo povoleného rozsahu. Príklady nesprávnych údajov musia byť spracované primerane, pretože program sa bude musieť v každodennej prevádzke vysporiadať s neplatnými vstupnými údajmi.

Po zistení chyby je potrebné nájsť v zdrojovom kóde programu miesto, kde sa vyskytla, - lokalizovať chybu. Na nájdenie miesta chyby môžete použiť množstvo rôznych metód ladenia; Výber do značnej miery závisí od špecifík situácie. Väčšina programátorov začína neformálnou metódou známou ako kontrola stola. Pomocou testovacieho prípadu, ktorý spôsobil chybu v programe, programátor analyticky sleduje výpis programu v nádeji, že chybu izoluje. Kontrola pri stole je dobrá metóda, pretože núti programátora podrobne pochopiť, ako program funguje. Ak sa metóda kontroly tabuľky ukáže ako neúspešná, mali by sa použiť špeciálne metódy a metódy ladenia na sledovanie prenosu kontroly v programe a zmeny hodnôt najdôležitejších premenných. Prijaté informácie o ladení vám umožnia lokalizovať podozrivé situácie, analyzovať a identifikovať príčinu chyby, odstrániť ju a potom pokračovať v hľadaní ďalších chýb.

      1. Príčiny a typy chýb

Vo všeobecnosti sa chyby môžu vyskytnúť v ktorejkoľvek fáze vývoja programu, príčina chýb môže súvisieť s nepochopením podstaty problému, chybami v návrhu algoritmu a nesprávnym používaním jazykových nástrojov. Pri spustení programu sa rôzne typy chýb prejavujú rôznymi spôsobmi a zvyčajne sa delia do nasledujúcich skupín:

    syntaktické chyby;

    sémantické chyby;

    logické chyby.

OD syntaktické chyby sú chyby, ktoré sa objavia vo fáze kompilácie programu a vyskytujú sa v dôsledku porušenia pravidiel syntaxe pre písanie viet v použitom programovacom jazyku (takéto chyby zahŕňajú chýbajúce bodkočiarky, odkazy na nedeklarované premenné, priradenie hodnôt nesprávneho typu k premennej , atď.). Ak kompilátor narazí v texte programu na operátor alebo popis, ktorý nevie interpretovať, umiestni kurzor na miesto zistenej chyby a v stavovom riadku zobrazí hlásenie s číslom chyby a jej stručným popisom.

OD sémantické chyby - Ide o chyby, ktoré sa vyskytujú počas behu programu, keď sa pokúša vyhodnotiť neplatné hodnoty parametrov alebo vykonať neplatné akcie. Príčina výskytu chýb tohto typu je spojená s porušením sémantických pravidiel pre písanie programov (príkladom je situácia pokusu o otvorenie neexistujúceho súboru alebo vykonanie delenia nulou). Ak program zistí chybu tohto typu, ukončí jej vykonávanie a v okne Build zobrazí príslušnú správu s číslom riadku s chybou a jej možným charakterom. Zoznam správ je možné zobraziť pomocou príkazu ponuky View/Debug Windows/Event log. Pri spustení programu z Delphi sa automaticky vyberie príslušný zdrojový súbor, ktorý obsahuje umiestnenie chyby. Ak bol program spustený mimo prostredia a objavila sa v ňom chyba tohto typu, tak je potrebné spustiť prostredie a nájsť výpis, ktorý chybu spôsobil.

Logické (sémantické) chyby - najkomplexnejšie a nepolapiteľné, spojené s nesprávnym použitím určitých algoritmických štruktúr. Tieto chyby pri vykonávaní programu sa môžu prejaviť explicitne (vygeneruje sa chybové hlásenie, nie je výsledok alebo sa vytvorí nesprávny výsledok, program sa „zacyklí“), ale častejšie sa prejavia len pri určitých kombináciách parametrov alebo nespôsobia narušenie programu vôbec, čo v tomto prípade vydáva hodnoverné, ale nesprávne výsledky.

Chyby prvého typu ľahko zistí samotný kompilátor. Odstránenie syntaktických chýb zvyčajne nespôsobuje veľké ťažkosti. Ťažšie je odhaliť chyby druhého a najmä tretieho typu. Na detekciu a odstránenie chýb druhého a tretieho typu sa zvyčajne používajú špeciálne metódy a nástroje na ladenie programov. Odhaľovaniu chýb druhého typu často pomáha použitie režimov riadenia kompilátora s kontrolou prípustných hodnôt určitých parametrov (hranice indexov prvkov poľa, hodnoty premenných typu rozsahu, situácie pretečenia, I/O chyby). Tieto režimy sa nastavujú pomocou prepínače kompilátora, nastavte buď v programe, alebo v menu Project/Options/Compiler prostredia Delphi, alebo v menu Options/Compiler prostredia Turbo.


Úvod 2

Definícia programovania. Kroky vytvorenia programu 3

Ladenie programu 6

Úloha 2 a 3 9

Úloha 4 a 5 12

Záver 14

Zoznam použitej literatúry 15

Úvod

Výpočtová technika a výpočtová technika pevne vstúpili do ľudského života. Rozvoj vedeckého a technologického pokroku nie je možný bez automatizácie výpočtových procesov. Práve potreba automatizácie výpočtových procesov sa stala prvotným impulzom pri vývoji programovania.

Tradičná programovacia technológia vznikla na úsvite výpočtovej techniky, keď používatelia mali k dispozícii obmedzené počítačové zdroje a vývojár programu bol zároveň jeho hlavným používateľom. Za týchto podmienok bola hlavná pozornosť venovaná získavaniu efektívnych programov v zmysle optimálneho využitia počítačových zdrojov.

V súčasnosti, keď sa rozsah počítačov výrazne rozšíril, vývoj a prevádzku programov spravidla vykonávajú rôzni ľudia. Spolu s efektívnosťou sa preto do popredia dostávajú aj ďalšie dôležité vlastnosti programov, akými sú zrozumiteľnosť, dobrá dokumentácia, spoľahlivosť, flexibilita, nenáročnosť na údržbu a pod. Problém vývoja programov s takýmito kvalitami sa vysvetľuje zložitosťou procesu programovania.

Na vytvorenie programu je potrebné dodržiavať určité princípy a nové programovacie technológie.

V dnešnej dobe, vzhľadom na neustály pokrok výpočtovej techniky, hrá programovanie v živote človeka dôležitú úlohu.

Definícia programovania. Etapy tvorby programu

Na to, aby počítač vyriešil problém, potrebuje od človeka dostať pokyny, ako ho vyriešiť, súbor takýchto pokynov pre počítač zameraný na riešenie problému sa nazýva program.

Programovanie je proces vytvárania počítačových programov alebo softvéru pomocou programovacích jazykov. Programovanie kombinuje prvky základných vied, ako je matematika, vyššia matematika a inžinierstvo.

Programovací jazyk je formálny znakový systém určený na písanie programov. Od stvorenia prvých programovateľných strojov si ľudstvo vymyslelo viac ako osem a pol tisíca programovacích jazykov. Každý rok sa ich počet dopĺňa o nové. Niektoré jazyky používa iba malý počet vlastných vývojárov, iné sa stávajú známymi miliónom ľudí. Profesionálni programátori niekedy pri svojej práci používajú viac ako tucet rôznych programovacích jazykov.

V procese vytvárania akéhokoľvek programu je možné rozlíšiť nasledujúcu postupnosť etáp:

1. fáza Stanovenie úlohy: v tejto fáze sa zúčastňuje osoba, ktorá dobre zastupuje predmet úlohy. Musí jasne definovať cieľ, úlohy, slovne opísať obsah úlohy a navrhnúť všeobecný postup pri jej riešení, rozobrať povahu a podstatu všetkých veličín použitých v úlohe a určiť podmienky, za ktorých je vyriešené, inými slovami, v tejto fáze sa vytvorí podmienka úlohy. Táto fáza je veľmi dôležitá, keďže úspešnosť implementácie vytváraného programu závisí najmä od správneho pochopenia cieľov a požiadaviek.

2. fáza Analýza a modelovanie problémov: Účelom tejto fázy je matematický model alebo matematické vyhlásenie. V tejto fáze sa vykonajú nasledujúce kroky

1) Stanovia sa počiatočné údaje a ich typy.

2) Riešenie úlohy je popísané formou analytických závislostí (rovnice, funkcie).

3) Definujú sa konečné údaje a ich typy.

Matematický model sa teda vytvára s určitou presnosťou, predpokladmi a obmedzeniami. V tomto prípade, v závislosti od špecifík riešeného problému, možno použiť rôzne sekcie matematiky a iných disciplín.

3. fáza Algoritmizácia úlohy a zostavenie vývojového diagramu: vykonáva sa na základe matematického popisu programu. V tejto fáze sa zostaví algoritmus na riešenie problému podľa akcií špecifikovaných zvolenou metódou riešenia. Proces spracovania údajov je rozdelený do samostatných relatívne nezávislých blokov a je stanovená postupnosť vykonávania bloku. Vytvára sa bloková schéma algoritmu.

4. fáza Programovanie: v tejto fáze je algoritmus na riešenie problému preložený do špecifického programovacieho jazyka. Na programovanie sa zvyčajne používajú jazyky na vysokej úrovni, takže zostavený program vyžaduje preklad do strojového jazyka. Po takomto preklade sa príslušný strojový program už vykoná.

5. fáza Ladenie a testovanie programu: je nájsť a odstrániť syntaktické a logické chyby v programe.

Prekladateľ pri syntaktickej kontrole programu identifikuje konštrukcie a kombinácie symbolov, ktoré sú neprijateľné z hľadiska pravidiel ich konštrukcie či pravopisu prijatých v danom jazyku. Počítač vydáva chybové hlásenia programátorovi a typ a forma vydávania takýchto hlásení závisí od typu jazyka a verzie použitého prekladača. Po odstránení syntaktických chýb sa logika programu kontroluje pri jeho vykonávaní s konkrétnymi počiatočnými údajmi.

6. fáza Spustenie odladeného programu a analýza výsledkov: po odladení programu ho možno použiť na vyriešenie aplikovaného problému. V tomto prípade sa viacnásobné riešenie problému zvyčajne vykonáva na počítači pre rôzne súbory počiatočných údajov. Získané výsledky interpretuje a analyzuje špecialista alebo používateľ, ktorý zadal úlohu.

Ladenie programu

Napriek tomu, že tvorba programu prebieha v niekoľkých etapách, najdôležitejšou a časovo najnáročnejšou etapou je etapa ladenia a testovania programu. Práve v tejto fáze sú odstránené všetky logické a syntetické chyby vo vytvorenom programe.

Ladenie je činnosť hľadania a opravy chýb v programe.

Testovanie je proces spustenia programu na určitom súbore údajov, pri ktorom je vopred známy výsledok aplikácie alebo sú známe pravidlá správania sa týchto programov. Ladenie teda možno reprezentovať ako opakované opakovanie troch procesov: testovanie, v dôsledku ktorého je možné konštatovať prítomnosť chyby, hľadanie miesta chyby v programe a úprava programu a dokumentácie s cieľom odstrániť zistená chyba. Všetko vyššie uvedené teda môže byť vyjadrené vzorcom:

Ladenie = Testovanie + Hľadanie chýb + Úpravy.

Úspešnosť ladenia je do značnej miery určená racionálnou organizáciou testovania. Pri ladení sa zisťujú a odstraňujú najmä tie chyby, ktorých prítomnosť sa zistí pri testovaní. Ako už bolo uvedené, testovanie nemôže dokázať správnosť programu, v najlepšom prípade môže preukázať prítomnosť chyby v ňom. Preto vznikajú dva problémy. Po prvé: pripravte si taký súbor testov, aby ste v ňom odhalili čo najviac chýb. Čím dlhšie však proces testovania pokračuje, tým sú náklady na program vyššie. Preto druhá úloha: určiť koniec ladenia. Znakom možnosti ukončenia ladenia je úplnosť pokrytia testov, ktoré prešli programom, a relatívne zriedkavé prejavy chýb v testovanom programe v poslednom segmente testovacieho procesu.

Existujú rôzne prístupy a prostriedky na ladenie; ako hlavný nástroj sa používajú vstavané softvérové ​​debuggery, ktoré obsahujú používateľské rozhranie na postupné vykonávanie programu: príkaz po príkaze, funkcia po funkcii, zastavenie na niektorých riadkoch zdrojového kódu alebo pri dosiahnutí určitej podmienky.

Okrem použitia vstavaných softvérových debuggerov existujú aj iné spôsoby ladenia programu: použitie emulátora v obvode, ladenie pomocou externých softvérových debuggerov a ladeného zariadenia s binárnym kódom programu zaznamenaným v pamäti programu.

In-circuit emulátor so zobrazením premenných programovacieho jazyka na displeji počítača poskytuje významnú pomoc pri ladení programov priamo na vyvíjanom hardvéri. Táto metóda ladenia poskytuje najpohodlnejšie prostredie, keď môžete zastaviť program priamo v ladiacom zariadení, riadiť vykonávanie programu priamo zdrojovým kódom programu, stavom externých portov a interných premenných, ktoré sú súčasťou mikroobvodu a deklarované pri zápise. zdrojový kód programu. Donedávna bol in-circuit emulátor samostatným zariadením pripojeným k vyvinutej doske.

Zabudovaný softvérový debugger, ktorý je súčasťou integrovaného programovacieho prostredia, výrazne zjednodušuje proces ladenia programu. No zároveň sa výrazne spomalí.

Externý softvérový debugger. V niektorých prípadoch sa nepoužíva integrované programovacie prostredie, ale samostatný prekladač z vybraného programovacieho jazyka. Keďže formáty objektov rôznych prekladačov sa od seba trochu líšia, ako vstupný súbor sa používa zavádzací modul v binárnom formáte.

Ladenie programov slúži na kontrolu správneho fungovania programu a hardvéru. Program, ktorý neobsahuje syntaktické chyby, však môže obsahovať logické chyby, ktoré bránia programu vykonávať zamýšľané funkcie. Logické chyby môžu súvisieť s algoritmom programu alebo s nepochopením fungovania zariadenia pripojeného k portom mikrokontroléra.

Ladiaci program zabudovaný do integrovaného programovacieho prostredia umožňuje ladiť tie časti programového kódu, ktoré nezávisia od prevádzky zariadenia, ktoré nie je súčasťou čipu mikrokontroléra. Zvyčajne sa to týka výpočtu matematických výrazov alebo prevodu formátov reprezentácie údajov. Programovanie je " ladenie" programy, teda zisťovanie a oprava chýb vzniknutých počas Programovanie Hlavná vec ladenie ...

  • Pascal Ladenie programy

    Abstrakt >> Informatika

    Logické a cyklické operátory. Ladenie programy. Skrátený tvar príkazu if In... if. Nástroje prostredia programovanie pre ladenie programy Prostredie Borland Pascal ... niekoľko vstavaných nástrojov ladenie programy. S niektorými z nich...

  • Program mzdy a dane pre zamestnancov firmy

    Abstrakt >> Ekonomika

    Softvér: štúdium zadania problému; programovanie A ladenie programy; opis testovacieho prípadu; spolu s ... počítačový čas o ladenie programy určí sa vynásobením skutočného času ladenie programy za cenu...

  • Prevedenie a ladenie programy v integrovanom prostredí programovanie Turbo Pascal (MS-Dos)

    Laboratórne práce >> Informatika, programovanie

    Praktické využitie integrovaných prostredí programovanie za účelom splnenia a ladenie programy v jazyku Pascal. TEORETICKÉ ... PODROBNOSTI Základné komponenty systému programovanie Turbo...

  • Úvod

    Koncepty testovania a ladenia softvéru

    1 Princípy testovania a ladenia softvéru

    2 fázy testovania softvéru

    3 Ciele a ciele testovania softvéru

    4 Komplexné testovanie softvéru

    5 Testovanie pred a po prúde

    Stratégia testovania a ladenia softvéru

    1 Sendvičová metóda

    2 Metóda bieleho poľa

    3 Metóda čiernej skrinky

    4 Metóda ladenia softvéru

    Záver

    Slovník pojmov

    Zoznam použitých zdrojov

    Zoznam skratiek

    Úvod

    História testovania softvéru odráža vývoj samotného vývoja softvéru. Vývoj softvéru sa dlhodobo zameriaval na rozsiahle vedecké programy, ako aj programy rezortu obrany spojené s podnikovými databázovými systémami, ktoré boli navrhnuté na báze mainframe alebo minipočítača. Skúšobné scenáre boli napísané na papieri. S ich pomocou boli testované cieľové riadiace toky, zložité výpočty algoritmov a manipulácia s dátami. Konečný súbor testovacích postupov by mohol efektívne otestovať celý systém. Testovanie sa zvyčajne začalo až po dokončení harmonogramu projektu a vykonávali ho tí istí pracovníci.

    Príchod osobného počítača pomohol štandardizovať priemysel, pretože aplikácie boli od základov postavené tak, aby bežali na bežnom operačnom systéme. Zavedenie osobných počítačov ohlásilo novú éru a viedlo k rýchlemu a explozívnemu rastu komerčného rozvoja. Komerčné aplikácie tvrdo bojovali o nadvládu a prežitie. Používatelia počítačov akceptovali dochovaný softvér ako defacto štandardy. Dávkové spracovanie bolo nahradené systémami v reálnom čase.

    Testovanie systémov v reálnom čase si vyžadovalo odlišný prístup k návrhu testov, pretože pracovné vlákna bolo možné volať v ľubovoľnom poradí. Táto vlastnosť viedla k vzniku obrovského množstva testovacích postupov, ktoré môžu podporovať nekonečné množstvo permutácií a kombinácií.

    Príčinou nešťastia mnohých vývojárov sú softvérové ​​chyby, kvôli ktorým na ich dlho trpiacich hlavách dopadajú tak dávno prekonané projekty, ako aj bezsenné noci. Chyby môžu vývojárom poriadne znepríjemniť život, pretože do ich programov sa vkradne pár chýb a zákazníci tieto programy prestanú používať a oni sami môžu prísť o prácu.

    Po dlhú dobu sa chyby považovali len za nepríjemnosti. Nič nemôže byť ďalej od pravdy. Všetci programátori poznajú spoločnosti, ktoré zatvorili len preto, že vydali softvérové ​​produkty, ktoré boli úplne nepoužiteľné kvôli množstvu chýb. Vzhľadom na to, že globálna informatizácia čoraz viac preberá dôležité oblasti, ako sú systémy na podporu života, lekárske prístroje a ultradrahý počítačový hardvér, nemožno sa chybám už len vysmievať alebo sa na ne pozerať ako na niečo, na čom záleží len vo fázach vývoja.

    V priemere sa asi 50 % vývojového cyklu vynakladá na ladenie. Ak sa ladenie spustí včas, jeho trvanie sa môže výrazne skrátiť, čo znamená, že zákazník dostane program oveľa rýchlejšie. Nemôžete ušetriť čas na kontrolu požiadaviek a návrh, ale môžete urobiť ladenie oveľa efektívnejším. Ladenie by malo začať vo fáze vývoja požiadaviek a pokračovať až do konečnej verzie produktu.

    1. Koncepcie testovania a ladenia softvéru

    .1 Princípy testovania a ladenia softvéru

    Testovanie softvéru je proces analýzy alebo prevádzky softvéru s cieľom identifikovať chyby.

    Napriek jednoduchosti tejto definície obsahuje body, ktoré si vyžadujú ďalšie vysvetlenie. Slovo proces sa používa na zdôraznenie, že testovanie je plánovaná, usporiadaná činnosť. Tento bod je veľmi dôležitý, ak máme záujem o rýchly vývoj, pretože premyslený, systematický prístup vedie k odhaleniu softvérových chýb rýchlejšie ako zle naplánované testovanie, ktoré sa navyše vykonáva narýchlo.

    Podľa tejto definície testovanie zahŕňa „analýzu“ alebo „využívanie“ softvérového produktu. Testovacia činnosť súvisiaca s analýzou výsledkov vývoja softvéru sa nazýva statické testovanie. Statické testovanie zahŕňa kontrolu programových kódov, end-to-end kontrolu a kontrolu programu bez spustenia na stroji, t.j. stolové kontroly. Naproti tomu testovacia aktivita, ktorá zahŕňa prevádzku softvérového produktu, sa nazýva dynamické testovanie. Statické a dynamické testovanie sa navzájom dopĺňajú a každý z týchto typov testovania implementuje svoj vlastný prístup k identifikácii chýb.

    Posledným bodom definície, ktorý si vyžaduje ďalšie vysvetlenia, je pojem defekt (chyba). Zjednodušene povedané, softvérová chyba nie je nič iné ako chyba vo vývoji softvérového produktu, ktorá spôsobuje nesúlad medzi očakávanými výsledkami softvérového produktu a skutočne získanými výsledkami. Chyba sa môže vyskytnúť vo fáze kódovania, vo fáze požiadaviek alebo vo fáze návrhu, alebo môže byť spôsobená nesprávnou konfiguráciou alebo údajmi. Chybou môže byť aj niečo iné, čo nespĺňa očakávania zákazníka a môže, ale nemusí byť definované v špecifikácii softvérového produktu. Podrobnejší popis terminológie defektov nájdete na bočnom paneli.

    Ladenie je proces identifikácie zdrojov porúch, t.j. chyby a vykonanie príslušných opráv v programe.

    1.2 Kroky testovania softvéru

    Prvý krok v plánovaní testov zahŕňa vývoj stratégie testovania na vysokej úrovni. Vo všeobecnosti by stratégia testovania mala definovať rozsah testovacej práce, typy testovacích postupov, ktoré sa majú použiť na zisťovanie defektov, postupy hlásenia a odstraňovania defektov a vstupné a výstupné kritériá testu, ktorými sa riadia rôzne typy testovania. Implementáciou princípu tesnej integrácie vývoja a testovania s cieľom optimalizovať plán vývoja by stratégia testovania mala mapovať rôzne typy testovacích činností na životný cyklus vývoja. Pri formulovaní celkovej stratégie by sa malo zvážiť statické aj dynamické testovanie.

    Ak sa automatizácia používa na podporu rôznych testovacích činností, stratégia automatizácie by sa mala považovať za súčasť celkovej stratégie testovania. Automatizácia si vyžaduje vykonávanie nezávislých paralelných úloh, ktoré je potrebné starostlivo plánovať a vykonávať iba v prípadoch, keď to nevedie k zníženiu efektívnosti.

    Existujú nasledujúce prístupy k formulovaniu testovacej stratégie:

    Stanovte rozsah testovacej práce preskúmaním dokumentov s požiadavkami na softvérový produkt (technické špecifikácie), aby ste určili, čo je potrebné testovať. Zvážte typy testovania, ktoré nevyplývajú priamo z dokumentov s požiadavkami, ako je testovanie inštalovateľnosti a rozšíriteľnosti softvérového produktu, použiteľnosti a jednoduchosti údržby produktu a schopnosti interakcie s inými typmi hardvéru z prostredia zákazníka. .

    Určte prístup k testovaniu výberom statických a dynamických testov spojených s každou fázou vývoja. To bude musieť obsahovať popisy všetkých pracovných produktov, ktoré má testovací tím vyrobiť.

    Definujte vstupné a výstupné kritériá pre každú fázu testovania, ako aj všetky body kontroly kvality, ktoré si budú vyžadovať účasť testerov.

    Určite stratégiu automatizácie, ak plánujete použiť automatizáciu pre akýkoľvek typ testovacej aktivity. Automatizácia vyžaduje nezávislé, paralelné činnosti, ktoré sa musia starostlivo plánovať a vykonávať len vtedy, keď nedôjde k strate efektívnosti.

    Určenie rozsahu skúšobnej práce

    Keďže je nemožné otestovať úplne všetko, o dôležitosti výberu toho, čo sa má testovať, nemožno pochybovať. Ak pri testovaní povolíte „hrubú silu“, t. j. ak je testovacie pokrytie nadbytočné, potom odladenie softvérového produktu zaberie veľa času, čo ohrozí termín dodania projektu. Ak sa ukáže, že testovanie je nedostatočné (presnejšie pokrytie testom bude nedostatočné), tak sa zvýši riziko vynechania tej či onej chyby, ktorej odstránenie bude najmä po uvedení softvérového produktu do prevádzky veľmi nákladné. Nájdenie správnej rovnováhy medzi týmito dvoma extrémami pomôže skúsenostiam a spôsobu merania úspešnosti testov.

    Tu je niekoľko návrhov na vývoj testovacej stratégie, ktoré vám pomôžu nájsť optimálne pokrytie testov:

    Najprv otestujte požiadavky s najvyššou prioritou.

    Otestujte novú funkčnosť a kód, ktorý sa zmenil s cieľom opraviť alebo zlepšiť starú funkčnosť

    Použite rozdelenie do ekvivalentných tried a analýzu hraničných hodnôt, aby ste znížili náklady na testovanie

    Otestujte oblasti, kde sa s najväčšou pravdepodobnosťou vyskytnú problémy

    Zamerajte sa na funkcie a konfigurácie, s ktorými sa bude koncový používateľ najčastejšie zaoberať.

    Definovanie testovacieho prístupu

    Druhá časť formulovania testovacej stratégie sa týka definície testovacieho prístupu. Vybudovanie testovacieho prístupu začína skúmaním každej fázy životného cyklu vývoja s cieľom vybrať statické a dynamické testovacie testy, ktoré možno použiť vo vhodnej fáze. Nezáleží na tom, ktorý model životného cyklu vývoja sa použije: vodopád, špirála alebo iteratívne verzie – na výber efektívnych testov môžete preskúmať fázy ktoréhokoľvek z uvedených modelov. Ako príklad si vezmime vodopádový model a zistime, aké typy testovania je možné použiť:

    Fáza formulovania požiadaviek

    Fáza návrhu systému

    Testovacie fázy programových projektov, programové kódy, jednotkové testovanie a integrované testovanie

    Systémové testy

    Akceptačné testy

    Regresné testovanie

    Testovací prístup by sa mal odraziť v dokumentoch plánu testovania.

    Definícia testovacích kritérií a bodov kontroly kvality

    Existuje päť typov kritérií, ktoré možno definovať pred začatím testovania systému:

    Vstupné kritérium. Popisuje, čo je potrebné urobiť pred začatím testovania.

    výstupné kritérium. Popisuje, čo považujete za potrebné na dokončenie testu.

    Kritériá pozastavenia/obnovenia. Popisuje, čo sa stane, ak v dôsledku chýb nie je možné pokračovať v testovaní.

    Kritériá úspešného/neúspešného testu. Spustenie každého testu by malo poskytnúť vopred určené výsledky.

    Ďalšie kritériá určené procesom alebo normami. Ak softvérový produkt musí spĺňať určitý štandard alebo má spoločnosť určité požiadavky na vykonávaný proces, je potrebné vziať do úvahy množstvo dodatočných kritérií.

    Definovanie stratégie automatizácie.

    S realistickými plánmi a rozumnými predpokladmi je používanie automatizovaných nástrojov a automatizovaných testovacích prípadov skvelým spôsobom, ako skrátiť čas strávený testovaním softvérového produktu. Akákoľvek opakujúca sa úloha je kandidátom na automatizáciu. Automatizácia úlohy však zvyčajne trvá oveľa dlhšie ako jej dokončenie, takže pre každú úlohu, ktorú je možné automatizovať, je rozumné vykonať dôkladnú analýzu potenciálneho zisku z automatizácie. Pri analýze prínosov majte na pamäti, že samotná automatizácia má svoj vlastný autonómny životný cyklus.

    Efektívna automatizácia si vyžaduje školenie, vývoj, ladenie a overovanie špecializovaných zamestnancov, ako každý iný projekt vývoja softvéru. Neplánovaná a zle vykonaná automatizácia nie je len plytvaním zdrojmi, ale môže dokonca viesť k prerušeniu plánovania, ak sa čas strávi ladením automatizácie namiesto testovania.

    1.3 Ciele a ciele testovania softvéru

    Ciele testovania:

    Zvýšte pravdepodobnosť, že aplikácia určená na testovanie bude fungovať správne za každých okolností.

    Zvýšte pravdepodobnosť, že aplikácia určená na testovanie bude spĺňať všetky popísané požiadavky.

    Testovacie úlohy:

    Skontrolujte, či systém funguje v rámci špecifikovaných časov odozvy klienta a servera.

    Skontrolujte, či sa najdôležitejšie sekvencie akcií so systémom koncového používateľa vykonávajú správne.

    Otestujte používateľské rozhrania

    Skontrolujte, či zmeny v databázach nemajú nepriaznivý vplyv na existujúce programové moduly.

    Pri navrhovaní testov minimalizujte prepracovanie testov pri zmene aplikácie.

    V prípade potreby používajte automatizované testovacie nástroje.

    Vykonajte testovanie spôsobom, ktorý nielen odhalí, ale aj zabráni defektom.

    Pri navrhovaní automatizovaných testov používajte vývojové štandardy takým spôsobom, aby ste vytvorili opakovane použiteľné a udržiavateľné skripty.

    1.4 Komplexné testovanie softvéru

    Účelom due diligence je overiť, či je každý modul softvérového produktu správne zarovnaný so zvyškom modulov produktu. Integrované testovanie môže využívať techniku ​​spracovania zhora nadol a zdola nahor, kde je každý modul, ktorý je listom v strome systému, integrovaný s ďalším modulom nižšej alebo vyššej úrovne, kým sa nevytvorí strom softvérového produktu. Táto testovacia technika je zameraná na kontrolu nielen tých parametrov, ktoré sa odovzdávajú medzi dvoma komponentmi, ale aj globálnych parametrov a v prípade objektovo orientovanej aplikácie aj všetkých tried najvyššej úrovne.

    Každá testovacia sada pozostáva z testovacích skriptov najvyššej úrovne, ktoré simulujú vykonávanie špecifickej úlohy používateľom, pričom na testovanie rozhrania aplikujú testy jednotiek nižšej úrovne s potrebnými parametrami. Po prijatí rozhodnutí o všetkých správach o problémoch s testom jednotky sa moduly postupne spájajú a testujú spoločne na základe riadiacej logiky. Pretože moduly môžu byť zložené z iných modulov, niektoré zložité testovacie práce je možné vykonať počas testovania jednotky. Ak boli skripty na testovanie jednotiek vytvorené pomocou automatizovaných testovacích nástrojov, možno ich kombinovať a pridávať nové skripty na testovanie komunikácie medzi modulmi.

    Dodržiavajú sa komplexné testovacie postupy a náležite sa upravujú a hlásenia o problémoch sa dokumentujú a sledujú. Hlásenia problémov sú vo všeobecnosti hodnotené na stupnici od 1 do 4, pričom 1 je najkritickejšie a 4 najmenej kritické. Po spracovaní týchto správ tester vykoná regresné testovanie, aby overil, či sú problémy úplne vyriešené.

    1.5 Testovanie pred a po prúde

    Upstream testovanie je skvelý spôsob, ako izolovať chyby. Ak sa pri testovaní jedného modulu zistí chyba, je zrejmé, že je v ňom obsiahnutá - na nájdenie jej zdroja nie je potrebné analyzovať kód celého systému. A ak sa chyba vyskytne, keď dva predtým testované moduly spolupracujú, potom ide o ich rozhranie. Ďalšou výhodou testovania zdola nahor je, že programátor, ktorý ho vykonáva, sa sústreďuje na veľmi úzku oblasť (jeden modul, odovzdávanie dát medzi dvojicou modulov atď.). Vďaka tomu je testovanie dôkladnejšie a pravdepodobnejšie zachytí chyby.

    Hlavnou nevýhodou testovania zdola nahor je potreba napísať špeciálny obalový kód, ktorý zavolá testovanú jednotku. Ak to zase zavolá iný modul, musíte preň napísať "stub". Stub je imitácia volanej funkcie, ktorá vracia rovnaké dáta, ale nerobí nič iné.

    Je jasné, že písanie mušlí a pahýľov spomaľuje prácu a pre výsledný produkt sú absolútne zbytočné. Ale akonáhle je napísaný, ani jeden z prvkov nemôže byť znovu použitý pri každej zmene profilu. Dobrá sada obalov a stubov je veľmi efektívnym testovacím nástrojom.

    Na rozdiel od testovania zdola nahor holistická stratégia testovania predpokladá, že kým nie je systém úplne integrovaný, jeho jednotlivé moduly neprechádzajú obzvlášť dôkladným testovaním.

    Výhodou tejto stratégie je, že nie je potrebné písať ďalší kód. Mnohí manažéri preto volia túto metódu z dôvodu úspory času – domnievajú sa, že je lepšie vyvinúť jednu veľkú sadu testov a použiť ju na testovanie celého systému naraz. Ale tento názor je úplne nesprávny a tu je dôvod.

    Je veľmi ťažké identifikovať zdroj chyby. Toto je hlavný problém. Keďže žiadny z modulov nie je riadne otestovaný, väčšina z nich má chyby. Ukazuje sa, že otázkou nie je ani tak to, v ktorom module sa zistená chyba vyskytla, ale ktorá z chýb všetkých modulov zapojených do procesu viedla k výsledku. A keď sa chyby z viacerých modulov prekrývajú, situácia môže byť oveľa ťažšie izolovať a replikovať.

    Okrem toho chyba v jednom z modulov môže zablokovať testovanie iného. Ako otestovať funkciu, ak modul, ktorý ju volá, nefunguje? Ak nenapíšete obal pre túto funkciu, budete musieť počkať na odladenie modulu, čo môže trvať dlho.

    Je ťažké organizovať opravy chýb. Ak je program napísaný viacerými programátormi (a to je presne to, čo sa deje vo veľkých systémoch) a nie je známe, v ktorom module je chyba, kto ju bude hľadať a opravovať? Jeden programátor ukáže na druhého, ktorý po zistení, že jeho kód s tým nemá nič spoločné, sa opäť obráti na prvého a v dôsledku toho výrazne utrpí rýchlosť vývoja.

    Proces testovania je slabo automatizovaný. To, čo sa na prvý pohľad javí ako výhoda holistického testovania – absencia nutnosti zapisovania obalov a stubov – sa v skutočnosti ukazuje ako jeho nevýhoda. Počas procesu vývoja sa program denne mení a musí sa testovať znova a znova. A mušle a pahýly pomáhajú automatizovať túto monotónnu prácu.

    Existuje ďalší princíp organizácie testovania, v ktorom sa program, rovnako ako pri metóde zdola nahor, testuje nie úplne, ale po častiach. Mení sa len smer pohybu - najskôr sa otestuje najvyššia úroveň hierarchie modulov a z nej tester postupne klesá. Táto technológia sa nazýva zhora nadol. Obe technológie – zhora nadol aj zdola nahor – sa nazývajú aj prírastkové.

    Pri testovaní smerom nadol nie je potrebné písať škrupiny, ale zostávajú tuby. Ako testovanie postupuje, pahýly sa jeden po druhom nahrádzajú skutočnými modulmi.

    Názory odborníkov na to, ktorá z dvoch stratégií prírastkového testovania je účinnejšia, sa výrazne líšia. V praxi sa otázka výberu testovacej stratégie zvyčajne rieši jednoducho: každý modul, ak je to možné, sa testuje ihneď po jeho napísaní, v dôsledku čoho sa môže ukázať, že postupnosť testovania niektorých častí programu je vzostupná a ostatné - zostupné.

    2. Stratégia testovania a ladenia softvéru

    .1 Sendvičová metóda

    Sendvičové testovanie je kompromisom medzi prístupom zdola nahor a zhora nadol. Tu sa pokúšame využiť výhody oboch metód a zároveň sa vyhnúť ich nevýhodám. Pri použití tejto metódy sa začína testovanie smerom nahor aj nadol súčasne, pričom sa program zostavuje zdola aj zhora a nakoniec sa stretne niekde uprostred. Miesto stretnutia závisí od konkrétneho testovaného programu a musí byť určené vopred pri štúdiu jeho štruktúry. Ak si napríklad vývojár dokáže predstaviť svoj systém ako vrstvu aplikačného modulu, potom vrstvu modulu na spracovanie požiadaviek a potom vrstvu primitívnych funkcií, potom sa môže rozhodnúť použiť metódu zhora nadol na úrovni aplikačného modulu (namiesto toho programovacie útržky modulov spracovania požiadaviek) a na zvyšných vrstvách použiť vzostupnú metódu. Použitie sendvičovej metódy je rozumný prístup k integrácii veľkých programov, ako je operačný systém alebo balík aplikácií.

    Sendvičová metóda si zachováva výhodu prístupu zhora nadol a zdola nahor, ktorá spočíva v začatí systémovej integrácie vo veľmi skorom štádiu. Keďže horná časť programu je spustená skoro, tak ako pri metóde zhora nadol už v ranej fáze získame pracovnú kostru programu. Keďže nižšie úrovne programu sú vytvárané metódou zdola nahor, sú odstránené tie problémy metódy zhora nadol, ktoré súviseli s nemožnosťou otestovať niektoré podmienky v hĺbke programu.

    Modifikovaná sendvičová metóda.

    Sendvičové testovanie má rovnaký problém ako prístup zhora nadol, aj keď tu nie je také akútne. Problémom je, že nie je možné dôkladne otestovať jednotlivé moduly. Sendvičový test zdola nahor rieši tento problém pre moduly nižšej úrovne, ale stále môže zostať otvorený pre spodnú polovicu hornej časti programu. V modifikovanej sendvičovej metóde sú nižšie úrovne tiež testované striktne zdola nahor. A moduly vyšších úrovní sa najprv testujú izolovane a potom sa zostavia metódou zhora nadol. Modifikovaná sendvičová metóda je teda tiež kompromisom medzi prístupom zdola nahor a zhora nadol.

    2.2 Metóda bieleho poľa

    Pojem „biela skrinka“ znamená, že pri vývoji testovacích prípadov používajú testeri všetky dostupné informácie o vnútornej štruktúre alebo kóde. Technológie používané počas testovania bielej skrinky sa bežne označujú ako technológie statického testovania.

    Táto metóda si nekladie za cieľ odhaliť syntaktické chyby, pretože chyby tohto druhu zvyčajne zistí kompilátor. Metódy bieleho boxu sú zamerané na lokalizáciu chýb, ktoré je ťažšie identifikovať, nájsť a opraviť. S ich pomocou môžete odhaliť logické chyby a skontrolovať stupeň pokrytia testom.

    Testovacie postupy spojené s používaním stratégie bieleho boxu využívajú kontrolnú logiku postupov. Poskytujú celý rad služieb vrátane:

    Uistite sa, že všetky nezávislé cesty v module sú skontrolované aspoň raz.

    Skontrolujte všetky logické riešenia, či sú pravdivé alebo nepravdivé.

    Vykonajte všetky slučky v rámci prevádzkových hraníc a pomocou hraničných hodnôt.

    Preskúmajte interné dátové štruktúry a skontrolujte ich platnosť.

    Testovanie v bielej skrinke zvyčajne zahŕňa stratégiu testovania jednotiek, v ktorej sa testovanie vykonáva na úrovni jednotky alebo funkcie a testovacie aktivity sú zamerané na preskúmanie vnútorných častí jednotky. Tento typ testovania sa tiež nazýva testovanie jednotiek, testovanie v priehľadnom boxe alebo testovanie priesvitného priestoru, pretože ľudia, ktorí testujú, majú prístup ku kódu a môžu vidieť, ako program funguje zvnútra. Tento prístup k testovaniu je známy aj ako štruktúrovaný prístup.

    Na tejto úrovni testovania sa testuje riadiaca logika, ktorá sa objaví na úrovni modulu. Testovacie ovládače sa používajú na zabezpečenie toho, aby sa všetky cesty v danom module otestovali aspoň raz, všetky logické rozhodnutia sa zohľadnili za všetkých možných podmienok, slučky sa vykonávajú pomocou horných a dolných hraníc a kontrolujú sa vnútorné dátové štruktúry.

    Testovacie metódy založené na stratégii bieleho boxu:

    Zadávanie neplatných hodnôt. Keď sú zadané neplatné hodnoty, tester zobrazí chyby v návratových kódoch a pozrie sa na reakciu kódu. Je to dobrý spôsob, ako simulovať určité udalosti, ako je plný disk, nedostatok pamäte atď. Obľúbenou technikou je nahradenie alloc() funkciou, ktorá vracia NULL 10 % času, aby zistila, koľko zlyhaní bude výsledkom. Tento prístup sa tiež nazýva testovanie na chybné vstupné údaje. Pri takomto testovaní sa kontroluje spracovanie správnych aj nesprávnych vstupných údajov. Testeri môžu vybrať hodnoty, ktoré testujú rozsah vstupných/výstupných parametrov, ako aj hodnoty, ktoré sú mimo rozsahu.

    Jednotkové testovanie. Pri vytváraní kódu pre každý modul softvérového produktu sa vykonáva testovanie jednotky, aby sa overilo, či kód funguje správne a správne implementuje architektúru. Pri testovaní jednotiek sa nový kód testuje podľa podrobného popisu architektúry; cesty v kóde sa preskúmajú, zistí sa, že obrazovky, rozbaľovacie ponuky a správy sú správne naformátované; kontroluje sa rozsah a typ vstupných údajov a že každý blok kódu vyvoláva výnimky a v prípade potreby vracia chyby (teda vracia). Testovanie každého modulu softvérového produktu sa vykonáva s cieľom overiť správnosť algoritmov a logiky a či softvérový modul spĺňa požiadavky a poskytuje potrebnú funkčnosť. Na základe výsledkov testovania jednotky sa opravia chyby súvisiace s logikou programu, preťažením a mimo dosahu, časom chodu a únikmi pamäte.

    Pri testovaní sa vyskytla chyba. Pri použití tejto metódy sa uznáva, že v praxi je nereálne testovať všetky možné chybové stavy. Z tohto dôvodu môže obsluha chýb zmierniť následky, keď sa vyskytnú neočakávané chyby. Tester je zodpovedný za to, aby sa ubezpečil, že aplikácia správne vygeneruje chybové hlásenie. Aplikácia, ktorá hlási systémovú chybu v dôsledku midlvéru, má teda pre koncového užívateľa aj testera malú hodnotu.

    Únik pamäte. Testovanie úniku pamäte skúma aplikáciu, aby zistila situácie, v ktorých aplikácia neuvoľní pridelenú pamäť, čo vedie k zníženiu výkonu alebo zablokovaniu. Táto technológia sa používa ako na testovanie verzie aplikácie, tak aj na testovanie hotového softvérového produktu. Je možné použiť testovacie nástroje. Môžu monitorovať využitie pamäte aplikáciou počas niekoľkých hodín alebo dokonca dní, aby zistili, či množstvo použitej pamäte rastie. Môžu sa tiež použiť na identifikáciu tých príkazov programu, ktoré neuvoľňujú pridelenú pamäť.

    Komplexné testovanie. Účelom due diligence je overiť, či je každý modul softvérového produktu správne zarovnaný so zvyškom modulov produktu. Integrované testovanie môže využívať techniku ​​spracovania zhora nadol a zdola nahor, kde je každý modul, ktorý je listom v strome systému, integrovaný s ďalším modulom nižšej alebo vyššej úrovne, kým sa nevytvorí strom softvérového produktu. Táto testovacia technika je zameraná na kontrolu nielen tých parametrov, ktoré sa odovzdávajú medzi dvoma komponentmi, ale aj globálnych parametrov a v prípade objektovo orientovanej aplikácie aj všetkých tried najvyššej úrovne.

    Testovanie reťaze. Reťazové testovanie zahŕňa testovanie skupiny modulov, ktoré tvoria funkciu softvérového produktu. Táto činnosť je známa aj ako testovanie jednotiek, ktoré zabezpečuje primerané testovanie komponentov systému. Toto testovanie určuje, či moduly fungujú dostatočne spoľahlivo na vytvorenie jedného modulu a či modul softvérového produktu poskytuje presné a konzistentné výsledky.

    Výskum povlakov. Pri výbere nástroja na štúdium pokrytia je dôležité, aby testovací tím analyzoval typ pokrytia požadovaný pre aplikáciu. Štúdie pokrytia sa môžu vykonávať pomocou rôznych technológií. Spôsob pokrytia operátora sa často označuje ako C1, čo tiež znamená pokrytie uzla. Tieto merania ukazujú, či bol skontrolovaný každý vykonateľný príkaz. Táto testovacia metóda zvyčajne používa profilovač výkonu.

    Pokrytie rozhodnutí. Cieľom metódy pokrytia rozhodnutí je určiť (v percentách) všetky možné výsledky rozhodnutí, ktoré boli testované pomocou súboru testovacích postupov. Pokrytie rozhodnutí sa niekedy označuje ako pokrytie pobočky a nazýva sa C2. Vyžaduje, aby sa každý vstupný a výstupný bod v programe dosiahol aspoň raz, aby sa aspoň raz otestovali všetky možné podmienky pre rozhodnutia v programe a aby sa každé rozhodnutie v programe aspoň raz otestovalo s použitím všetkých možných výsledkov.

    Pokrytie podmienok. Pokrytie podmienok je podobné ako pokrytie rozhodnutí. Jeho cieľom je otestovať presnosť pravdivých alebo nepravdivých výsledkov každého boolovského výrazu. Táto metóda zahŕňa testy, ktoré testujú výrazy nezávisle od seba. Výsledky týchto kontrol sú podobné tým, ktoré sa získali použitím metódy pokrytia rozhodnutí, s výnimkou toho, že metóda pokrytia rozhodnutí je citlivejšia na riadiacu logiku programu.

    2.3 Metóda čiernej skrinky

    Testovanie čiernej skrinky je možné len so zavedenými verejnými rozhraniami, ako je používateľské rozhranie alebo aplikačné programové rozhranie (API). Zatiaľ čo testovanie stratégie white-box skúma vnútorné fungovanie programu, testovacie metódy black-box porovnávajú správanie aplikácie s príslušnými požiadavkami. Okrem toho sú tieto metódy zvyčajne zamerané na identifikáciu troch hlavných typov chýb: funkčnosť podporovaná softvérovým produktom; vykonané výpočty; povolený rozsah alebo rozsah údajových hodnôt, ktoré môže softvérový produkt spracovať. Na tejto úrovni testeri neskúmajú vnútorné fungovanie komponentov softvérového produktu, sú však testované implicitne. Testovací tím skúma vstupy a výstupy softvérového produktu. Z tohto hľadiska sa testovanie čiernej skrinky považuje za synonymum testovania na úrovni systému, hoci testovanie pomocou čiernej skrinky možno použiť aj počas testovania jednotiek alebo komponentov.

    Pri testovaní čiernej skrinky je dôležitá účasť používateľov, pretože práve oni najlepšie vedia, aké výsledky očakávať od obchodných funkcií. Kľúčom k úspešnému ukončeniu testovania systému je správnosť údajov. Preto je vo fáze generovania údajov na testovanie dôležité, aby koncoví používatelia poskytli čo najviac vstupov.

    Testovanie metódami čiernej skrinky je zamerané na získanie súborov vstupných údajov, ktoré maximálne otestujú všetky funkčné požiadavky systému. Toto nie je alternatíva testovania v bielej skrinke. Cieľom tohto typu testovania je nájsť chyby, ktoré spadajú do niekoľkých kategórií vrátane:

    Neplatná alebo chýbajúca funkcia

    Chyby rozhrania

    Problémy s použiteľnosťou

    Testovacie metódy založené na automatizovaných nástrojoch

    Chyby v dátových štruktúrach alebo chyby v prístupe k externým databázam

    Problémy s výkonom a iné chyby výkonu

    Chyby sťahovania

    Chyby prístupu viacerých používateľov

    Chyby inicializácie a ukončenia

    Problémy s udržiavaním záloh a schopnosťou obnoviť prácu

    Bezpečnostné problémy

    Testovacie metódy založené na stratégii čiernej skrinky

    Ekvivalentný oddiel. Vyčerpávajúce testovanie vstupných údajov zvyčajne nie je možné. Preto by sa testovanie malo vykonávať pomocou podmnožiny vstupných údajov.

    Pri testovaní chýb mimo rozsahu existujú tri hlavné typy ekvivalentných tried: hodnoty vo vnútri hranice rozsahu, mimo hranice rozsahu a na hranici. Oplatí sa vytvoriť testovacie rutiny, ktoré testujú plus/mínus jeden okrajový prípad, aby sa predišlo vynechaniu chýb „o jednu viac“ alebo „o jednu menej“. Okrem vývoja testovacích postupov, ktoré používajú vysoko štruktúrované triedy ekvivalencie, musí testovací tím vykonať prieskumné testovanie. Testovacie postupy, ktoré prinášajú očakávané výsledky, sa nazývajú validné testy. Testovacie postupy, ktoré by mali viesť k chybe, sa nazývajú nesprávne testy.

    Diagramy vzťahov príčina-následok. Diagram príčin a následkov je technika, ktorá poskytuje jasnú predstavu o logických podmienkach a zodpovedajúcich akciách. Metóda zahŕňa štyri fázy. Prvým krokom je zostavenie zoznamu príčin (vstupných podmienok) a následkov (činností) pre modul a pridelenie identifikátora každému modulu. V druhej fáze sa vypracuje diagram vzťahov príčina-následok. V treťom kroku sa diagram prevedie na rozhodovaciu tabuľku. Štvrtý krok zahŕňa stanovenie príčiny a následku prečítaním špecifikácie funkcie. Každá príčina a následok má svoj vlastný identifikátor. Príčiny sú uvedené v stĺpci na ľavej strane listu papiera a následky sú uvedené na pravej strane. Potom sú príčiny a následky spojené čiarami tak, aby sa odzrkadľovali korešpondencie medzi nimi. Diagram obsahuje boolovské výrazy, ktoré kombinujú dve alebo viac príčin spojených s účinkom. Ďalej sa pravidlá rozhodovacej tabuľky prevedú na testovacie postupy.

    Testovanie systému. Pojem „testovanie systému“ sa často používa ako synonymum pre „testovanie pomocou techník čiernej skrinky“, pretože počas testovania systému sa testovací tím zameriava najmä na „vonkajšie správanie“ aplikácie. Systémové testovanie zahŕňa niekoľko podtypov testovania, vrátane testovania funkčnosti, regresie, bezpečnosti, preťaženia, výkonu, použiteľnosti, náhodného testovania, integrity údajov, konverzie údajov, uchovávania a obnovy záloh, prevádzkovej pripravenosti, akceptačného testovania a testovania alfa/beta.

    Funkčné testovanie. Funkčné testovanie kontroluje systémovú aplikáciu z hľadiska funkčných požiadaviek, aby sa zistilo nesúlad s požiadavkami koncového používateľa. Pre väčšinu programov na testovanie softvérových produktov je táto testovacia metóda hlavnou. Jeho hlavnou úlohou je vyhodnotiť, či aplikácia funguje v súlade s požiadavkami.

    Regresné testovanie. Cieľom testovania je nájsť chyby, zdokumentovať ich a sledovať, kým nebudú opravené. Tester si musí byť istý, že opatrenia prijaté na odstránenie zistených chýb nebudú následne generovať nové chyby v iných oblastiach systému. Regresné testovanie umožňuje zistiť, či sa v dôsledku eliminácie už objavených chýb objavili nejaké chyby. Práve pre regresné testovanie prináša použitie automatizovaných testovacích nástrojov najväčšiu návratnosť. Všetky predtým vytvorené skripty možno znova použiť na potvrdenie toho, že neboli zavedené žiadne nové chyby v dôsledku zmien vykonaných pri oprave chyby. Tento cieľ je ľahko dosiahnuteľný, pretože skripty je možné spúšťať bez manuálneho zásahu a opakovane ich používať toľkokrát, koľkokrát je potrebné na zachytenie chýb.

    Testovanie bezpečnosti. Testovanie bezpečnosti zahŕňa kontrolu fungovania mechanizmov pre prístup k systému a dátam. Na tento účel vymyslite skúšobné postupy, ktoré sa snažia prekonať ochranu systému. Tester kontroluje stupeň zabezpečenia a obmedzenia prístupu, čím identifikuje súlad so stanovenými bezpečnostnými požiadavkami a všetkými platnými pravidlami zabezpečenia systému.

    Testovanie preťaženia. Testovanie preťaženia testuje systém bez zohľadnenia obmedzení architektúry s cieľom identifikovať technické obmedzenia systému. Tieto testy sa vykonávajú na vrchole spracovania transakcií a keď sa nepretržite načítava veľké množstvo údajov. Testovanie preťaženia meria priepustnosť a odolnosť systému na všetkých hardvérových platformách. Táto metóda zahŕňa súčasný prístup mnohých používateľov k určitým funkciám systému, pričom niektoré zadávajú hodnoty, ktoré presahujú normu. Systém musí spracovať obrovské množstvo údajov alebo vykonať veľké množstvo funkčných požiadaviek v krátkom čase.

    Testovanie výkonu. Benchmark testy kontrolujú, či systémová aplikácia spĺňa požiadavky na výkon. Pomocou testovania výkonu môžete merať a vykazovať metriky, ako je rýchlosť prenosu vstupných a výstupných údajov, celková vstupná a výstupná aktivita, priemerný čas, ktorý potrebuje databáza na odpoveď na dotaz, a využitie procesora. Spravidla sa na automatickú kontrolu stupňa výkonu v rámci testovania výkonu používajú rovnaké nástroje ako pri testovaní preťaženia.

    Testovanie použiteľnosti. Testy použiteľnosti sú zamerané na potvrdenie jednoduchosti používania systému a toho, že používateľské rozhranie vyzerá atraktívne. Takéto testy berú do úvahy ľudský faktor pri prevádzke systému. Tester potrebuje zhodnotiť aplikáciu z pohľadu koncového užívateľa.

    2.4 Techniky ladenia softvéru

    ladenie testovania softvéru

    Ladenie programu nejakým spôsobom berie do úvahy a logické rozhodnutie o dostupných chybových informáciách. Väčšinu chýb možno rozpoznať ako nepriame znaky prostredníctvom dôkladnej analýzy textov programu a výsledkov testov bez získania ďalších informácií. Preto použite rôzne metódy:

    Manuálne testovanie;

    klesá;

    Zadná stopa.

    Manuálna testovacia metóda.

    Toto je najjednoduchšia a najprirodzenejšia metóda tejto skupiny. Pri detekcii chýb musíte testovaný program spustiť manuálne pomocou prepínaného testu s úlohou, pri ktorej bola chyba rozpoznaná. Metóda je veľmi efektívna, ale nie je použiteľná pre veľké programy, programy s náročnými výpočtami a keď je chyba spojená s mylnou predstavou televíznej programovej spoločnosti o vykonaní niektorých operácií. Táto metóda sa často používa ako súčasť iných metód riešenia problémov.

    prológová metóda.

    Metóda je založená na dôkladnej analýze symptómov chyby, ktorá sa môže prejaviť ako nesprávne výsledky výpočtu alebo ako chybové hlásenie. Ak sa počítač jednoducho „zasekne“, časť Zobrazenie chýb vypočíta pôvod posledných prijatých výsledkov a pohybov používateľa. Takto získané informácie sa usporiadajú a pozorne sa učia prezeraním adekvátneho fragmentu programu. V dôsledku týchto hypotéz zlepšenia pohybu o chybách sa testuje každá z nich. Ak je hypotéza pravdivá, uveďte podrobné informácie o chybách, inak spresnite druhú hypotézu.

    Najdôležitejšou etapou je položenie textu symptómov chyby. Pri organizovaní chýb je všetko spôsob, ako zaznamenať údaje, ktoré sú známe o ich zobrazeniach, a opraviť miesta, na ktorých sa zvyčajne vykonáva fragment s chybou, ako aj miesta, na ktorých sa chyba zobrazuje. Ak sa v dôsledku tohto skúmania neobjavia žiadne hypotézy, sú potrebné ďalšie informácie o chybách. Dodatočné informácie možno získať napríklad ako výsledok vykonania takýchto testov. V priebehu pokusu o dôkaz sa zisťuje, či sú všetky zobrazenia chýb vysvetlené danou hypotézou, ak nie všetky, alebo hypotéza nie je pravdivá, alebo sú chyby nejaké.

    redukčná metóda.

    Na metóde drop v úvodnom formulári nastavte dôvody, ktoré môžu spôsobiť zobrazenie danej chyby. Potom sa rozdelí analýza príčin, ktorá je v rozpore s dostupnými údajmi. Ak sa odstránia všetky príčiny, malo by sa vykonať dodatočné testovanie študovaného fragmentu. V opačnom prípade je najpravdepodobnejší pokus dokázať hypotézu. Ak hypotéza vysvetľuje prijaté znaky chyby, chyba sa nájde iným spôsobom - skontrolujte ďalší dôvod.

    Metóda spätného sledovania.

    Pre malé programy je efektívna aplikácia metódy backtrace. Začnite v bode výstupu nesprávneho výsledku. V tomto bode pracujeme na hypotéze o hodnotách hlavných premenných, ktoré by mohli viesť k dostupnému výsledku. Ďalej, pôvod tejto hypotézy, navrhnite hodnoty premenných v predchádzajúcom bode. Proces pokračuje, ale nezistite príčinu chyby.

    Záver

    Programy bez chýb neexistujú. Chyby spojené s nesprávnym zadávaním príkazov v editore, nesprávnym zápisom identifikátorov sú takmer vždy možné, je možné zistiť jednoduchým štúdiom pôvodného textu a sú opravené kompilátorom platformy, na ktorej je program napísaný. Spoločnosti televíznych programov tradične používajú metódu pokusu - skúšať, či program bude fungovať v tej či onej zmene, zvyčajne sa to nazýva odstraňovanie problémov.

    Niektoré pomôcky zaoberajúce sa programovaním, testovaním a riešením problémov sú lacnejšie. Preto je potrebné poukázať na rôzne výdobytky televíznej programovej spoločnosti, ktoré umožňujú zlepšiť výkon softvéru a otvárať chyby čo najskôr ako začiatok, a profesionálne TV programové spoločnosti robia väčšinu rôznych chýb, a to ako v vo fáze návrhu av programovom kóde. Chyba často vedie k lavíne následkov, ktorá komplikuje prácu televíznej produkčnej spoločnosti, čo vedie k revízii celého kódu v počiatočnej fáze. Na tento účel si spoločnosť vyrábajúca televízne programy sama vytvorí program na testovanie softvéru alebo už používa dostupné testovacie softvérové ​​balíky.

    Hlavná úloha pri testovaní však patrí televíznej produkčnej spoločnosti, ktorá sleduje výkon programového kódu a výskyt zlomových bodov. Televízna programová spoločnosť musí záznam bez ohľadu na to zaviniť, vyžaduje len, aby bol odladený program spustený. Až potom môže vývojové prostredie monitorovať výkon programu a meniť hodnoty rôznych premenných. V minulosti veľké počítače kvôli extrémne náročným požiadavkám na RAM a slabým výpočtovým zdrojom používali techniku ​​odstraňovania problémov založenú len na prológoch.

    Pôvod tohto, TV program spoločnosť môže určiť chybu rýchlo zistiť, nie je možné poznať podprogram, ktorý spôsobil chybu. V starších programovacích jazykoch dokonca existovali špeciálne prevádzkové spoločnosti na výstup legitímnych informácií. Pri hľadaní chýb je však najúčinnejšie jednoduché prezeranie si pôvodného textu. V určitých prípadoch sa softvéroví vývojári prichytia pri vydávaní hrubého softvéru, takzvaného testovacieho softvéru. Používateľ alebo zariadenie prijímajúce takéto programy ich používa na vlastné riziko. Hlásenia o závažných chybách, pri ktorých je prítomnosť, objektový kód generovaný kompilátorom, samozrejme nesprávny a jeho ďalšie použitie je nemožné.

    Každá spoločnosť zaoberajúca sa televíznymi programami vie, koľko je hodín, a pri odstraňovaní problémov a testovaní programov napĺňa listy. V tejto fáze je to asi 50 % celkových požadovaných nákladov na programovanie. Nie každý vývojár softvéru môže skutočne definovať účel testovania. Pomerne často je možné počuť, že testovanie je proces výkonu programu za účelom opravy chýb. Tento cieľ je však nedosiahnuteľný: to najdôkladnejšie testovanie nezaručuje, že program neobsahuje chyby.

    Pri skúmaní výsledkov každého testu je potrebné skontrolovať, či to program robí, nemal by to robiť. Testovanie by nemalo byť plánovaným pôvodom predpokladu, ktorý v chybách v programe (najmä je potrebné zvoliť dostatočné časové a vlastnosti na testovanie) nebudú rozpoznané. Vyvarovať sa je potrebné vždy, keď je možné program otestovať jeho autorom, keďže okrem už naznačenej objektívnej náročnosti testovania pre televízne produkčné spoločnosti je tu aj fakt, že skladanie textu o absencii akcie je v rozpore s ľudskou psychológiou (ladenie programu však najefektívnejšie vykonáva autor programu). Vždy je potrebné mať na pamäti, že testovanie je tvorivý proces namiesto toho, aby sa s ním spájalo v súvislosti so štandardným umiestnením.

    Slovník pojmov

    № p / p Definícia konceptu 1 Testovanie softvéru je proces analýzy alebo prevádzky softvéru s cieľom identifikovať chyby 2 Ladenie je proces identifikácie zdrojov porúch, t.j. 3 Testovanie zdola nahor Testuje sa zdola nahor 4 Testovanie zhora nadol Testovanie sa vykonáva zhora nadol 5 Testovanie v bielej skrinke je vývoj testovacích prípadov, v ktorých sa používajú akékoľvek dostupné informácie o vnútornej štruktúre alebo kóde 6 Testovanie v čiernej skrinke je vývoj testovacích prípadov so zavedenými verejnými rozhraniami 7 Sendvičová metóda je prístup k integrácii veľkých programov, ako je operačný systém alebo balík aplikácií.8 Unit testovanie je proces, ktorý umožňuje kontrolovať správnosť jednotlivých modulov zdrojového kódu. programu9 Testovanie bezpečnosti je test fungovania mechanizmov na prístup k systému a dátam10Testovanie výkonu je test, či systémová aplikácia spĺňa požiadavky na výkon Zoznam použitých zdrojov

    1.Beizer B. Testovanie čiernej skrinky. Technológie funkčného testovania softvéru a systémov [text] / B. Beizer; - Peter, 2004, 320 s. ISBN 5-94723-698-2.

    2.Braude E.D. Technológia vývoja softvéru [text] / E.D. Braude; - Peter, 2004, 656 s. ISBN 5-94723-663-X.

    .Vinničenko I.V. Automatizácia testovacích procesov [text] / I. V. Vinničenko; - Peter, 2005, 208 s. ISBN 5-469-00798-7.

    .Kaner S. Testovanie softvéru. Základné koncepty riadenia podnikových aplikácií [text] / S. Kaner; - DiaSoft, 2001, 544 s, ISBN 966-7393-87-9.

    .Culbertson R. Rýchle testovanie [text] / R. Culbertson, C. Brown, G. Cobb; - Williams, 2002, 384 s. ISBN 5-8459-0336-X.

    .Kolíková T.V. Základy testovania softvéru. Učebnica [text] / T.V. Kolíková, V.P. Kotľarov; - Intuit, 2006, - 285 s. ISBN 5-85582-186-2.

    .Kaspersky K. Technika na ladenie programov bez zdrojového kódu [text] / K. Kaspersky; - BHV-Petersburg, 2005, 832 s. ISBN 5-94157-229-8.

    .McGregor D. Testovanie objektovo orientovaného softvéru. Praktická príručka [text] / D. McGregor, D. Sykes; - TID "DS", 2004, 432 s. ISBN 966-7992-12-8.

    .Plaksin M. Testovacie a ladiace programy - pre budúcich a skutočných profesionálov [text] / M. Plaskin; - Binom. Vedomostné laboratórium, 2007, - 168 s. ISBN 978-5-94774-458-3.

    .Robert M. Rýchly vývoj softvéru: princípy, príklady, prax [text] / M. Robert, D. Newkirk; - Williams, 2004, 752 s. ISBN 5-8459-0558-3.

    .Folk D. Testovanie softvéru [text] / D. Folk, E. K. Nguyen, S. Kaner; - Diasoft, 2003, 400 s. ISBN 966-7393-87-9.

    .Alfried D. Automatizované testovanie softvéru. Implementácia, riadenie a prevádzka [text] / Alfried D., Jeff R., John P.;- Laurie, 2003, ISBN 5-85582-186-2.

    Zoznam skratiek

    testovanie - testovanie softvéru - testovanie procesov - statické testovacie kontroly - testovanie tabuliek - dynamické testovanie - defektdown - zhora nadol - aplikačné programové rozhranie

    err returns - error return box - transparent box - transparent testing