UM/FERI/VSP-RI/PO
Iz E-študij, proste zakladnice študentskega znanja
| Abecedni seznam zapiskov
Predava: Vaje vodi: Povezave:
(Za kolokvije ustvari stran) Izpitni red:
Ostalo:
Ključne besede: PO |
Vsebina |
Snov
1.
Uvod
a. Opišite življenjski cikel proizvodov!
b. Kaj je izhodna kontrola? Zakaj je nujna?
Čeprav smo proizvodni proces dobro zastavili in med postopkom preverjali kakovost je najpomembnejša Izhodna kontrola; preizkusi nov proizvod kot celoto, ugotovi funkcionalnosti in estetske in varnostne norme. Izhodna(končna) kontrola združi izsledke prejšnjih preverjanj in opredeli proizvod kot primeren za tržišče, ali pa ga zavrne in odredi, da ga je treba popraviti. Vpliva na tržišče!
Opišite idejo preizkušanja računalniške opreme (SW, HW)!
Ko govorimo o preizkušanju računalniške opreme, moramo imeti v mislih dve dopolnjujoči komponenti, končni proizvod, to je računalniški sistem, je skupek dveh pod sklopov;
-strojna oprema ki se izdeluje po načinu življenjskega ciklusa proizvodov(1.a)vstopa v fazna preverjanja in kot končno preizkušanje skupaj z
-programsko opremo, ki dopolni strojno opremo v končni proizvod, ko preverjamo programsko opremo moramo biti prepričani, da strojna oprema deluje v celoti, saj je izjemno povezana z njo.
Kaj pomeni preizkušanje opreme(sw,hw)?
Strojno opremo spremlja preizkušanje od vstopnega materiala ter med samo proizvodnjo; to je gradnjo modulov (na nivoju komponent) in potem celotnega računalniškega sistema(združeno v celoto). Ko strojna oprema preverjeno deluje se lotimo z preverjanjem programskega dela računalniškega sistema.
Programsko opremo pa preverjamo(na preverjeni delujoči strojni opremi za katero je bila napisana) v glavnem v fazi načrtovanja in razvoja. To preizkušanje nam mora zagotoviti, da se vhodni podatki pravilno preslikajo v izhodne podatke.
Preizkušanje programske opreme
2. PEIZKUŠANJE PROGRAMSKE OPREME
1. Uvod
a. Opišite razliko med zgodnjim pojmovanjem preizkušanja programske opreme (debugiranje) in današnjim! Kaj je rezultat preizkušanja?
Debugiranje je bilo predvideno le na koncu proizvodnega procesa, torej takrat ko je program že bil napisan. Gre za iskanje in potem odpravljanje napak – čiščenje programov(debuging). Lahko tudi preverjanje pravilnosti zasnove in delovanja programa.
Dandanes pa za preizkušanje programske opreme opredelimo vse dejavnosti z katerimi lahko kakorkoli ovrednotimo atribute ali lastnosti programov, oziroma sistemov in opredelimo ali ustreza zahtevanim rezultatom. To da proizvod ustreza zahtevam pomeni kvaliteto. Z preizkušanjem naredimo kvaliteto vidno, preizkušanje samo je merilo kvalitete programske opreme
b. Opišite tipične faktorje kvalitete programov!
1. Funkcionalnost(zunanja kvaliteta)
a) pravilnost(correnctness)
b) zanesljivost (realiability)
c) uporabnost (usabiility)
d) celovitost(integtity)
2. Tehnični vidik(notranja kvaliteta)
a)učinkovitost(efficiancy)
b)možnost preizkušanja(testability)
c)dokumentacija(documentation)
d)strukturiranost(structure)
3.Uporabnost(bodoča kvaliteta)
a)prilagodljivost(flexibility)
b)ponovna uporaba(reusability)
c)možnost vzdrževanja(maintaninability)
c. Opišite kako izpeljemo preizkušanje programske opreme! Katere zahteve moramo upoštevati?
*
odločiti se moremo kaj bomo merili *
izbrati nadzorovane vhode in situacije, ki vplivajo na merjene atribute *
simulirati ali izvesti izbrane situacije ter ob tem zbirati rezultate *
primerjati zbrane rezultate s standardiziranim ali pričakovanim obnašanjem
d. Katere vrste preizkušanj poznamo? Opišite preizkušanje enot!
1.Preizkušanje enot(unit testing) - posameznih napisanih programov
Namen tovrstnega preizkušanja je ugotoviti pravilnost posameznega programskega modula, to preizkušanje ponavadi opravi programer sam, brez kakih posebnih postopkov, orodji ter brez zapisnika.
poznamo;
-funkcionalno z z eksternim pristopom – črna škatla(black box), tu preverjamo če program vrača pravilne rezultate če mu postavimo na vhod neko zaporedje.
-strukturno preizkušanje z internim pristopom, tukaj pa pregledujemo če je program pravilno napisan(white box), pregledujemo ga z uporabo očiščevalnika in krpalnika.
2.Sistemsko preizkušanjem(system testing) - vključuje preverjanje posameznih programskih sklopov
3.Preizkušanje sprejemljivosti(accaptance tessting) - pomeni ugotavljanje primernosti za implementacijsko uporabo
e. Katere vrste preizkušanj poznamo? Opišite razliko med sistemskim preizkušanjem in preizkušanjem sprejemljivosti!
Pri sistemskem preizkušanju preverjamo če se posamezni moduli nekega produkta dobro povezujejo med sabo(interface testing) šele nato pa pride na vrsto funkcionalno preizkušanje kjer preverimo če sistem deluje dobro in pravilno kot celota z metodo črne škatle. Prisotne so mnoge formalne metode in zapisniki. Izvaja se iz strani vodje razvojne skupine ali pa točno v ta namen sestavljene skupine.
Preizkušanje sprejemljivosti se ponavadi izvaja z strani uporabnika samega, npr. beta verzije. Tukaj ni formalnih metod, kljub temu da se izvaja podobno Natalija Lah kot pri pri sistemskem preizkušanju je v veliko manjšem obsegu, brez zapisnikov.
f. Opišite pojma: verifikacija(preizkušanje) in validacija (potrjevanje)!
Verifikacija pomeni ocenitev rezultatov po vsaki fazi razvoja programske opreme, da lahko nemoteno nadaljujemo z razvojem na naslednji fazi. (dejavnosti v zvezi z; pregled, nadzor, testiranje, kritično ocenjevanje, revizija)
Validacija je proces ocenjevanja programske opreme po končani fazi razvoja, da bi zagotovili skladnost z zahtevami.
g. Opišite razliko med funkcionalnim in strukturnim preizkušanjem! Kdaj je potrebno katero?
Strukturno preizkušanje odkrije napake ki so nastale pri kodiranju.(potreben je ciljni nabor podatkov, ki preveri zahteve preizkušene opreme)
Funkcionalno preizkušanje preveri ali je pri sestavi zahtev in načrta prišlo da napak. (zanimajo nas rezultati obdelav)
h. Opišite razliko med dinamičnim in statičnim preizkušanjem! Kdaj potrebno katero? Kdaj je potrebno ročno in kdaj avtomatično preizkušanje?
Dinamično preizkušanje nam preveri program 100% je časovno zelo zahtevno, statično preverjanje pa se omejuje na; sintaktično preverjanje, postavljanje zahtev ter snovanje programske opreme.
Avtomatično preizkušanje uporabimo tam, kjer je le možno(kjer ne potrebujemo človeške ocene)!
Ročno preizkušanje se uporabi povsod kjer je med izvajanjem preizkusa potrebno posredovanje preizkuševalca.
1.
Programske napake in pristopi k preizkušanju
i. Kaj je Programska napaka? Opišite napake uporabniškega vmesnika, mejne napake, začetna in poznejša stanja!
Programska napaka je neskladje med izvedbo programa in njegovimi specifikacijami. V programu obstaja napaka, če ne počne tega kar uporabnik od njega smiselno pričakuje.
Kot napake uporabniškega vezja smatramo vse, kar kakorkoli (funkcionalnost – manjka ali je težko dostopna neka funkcionalnost, komunikacija – ni uporabniku prijazen, struktura ukazov – če nekaj uporabnika zmede ali pa mu vzame preveč časa, manjkajoči ukazi – če uporabnik vidi boljšo rešitev redundanca, zmogljivost – če uporabnika upočasnjuje, izhod – nesmiselni ali napačni izpisi) omejuje uporabnika, ali pa ga zmede.
Mejne napake so napake do katerih pride če v neko spremenljivko skušamo zapisati število ki je večje od velikosti tipa, lako tudi polje, datoteka, disk.
napake pri začetnih ali poznejših stanjih, do teh napak pride ob prvem zagonu programa, - pojavijo se čudni izpisi, - računske napake, -neskončne zanke, ... vzrok teh napak je napačna inicializacija, nastavitvenih datotek, spremenljivk... napake so programerjev spodrsljaj :(
j. Kaj je programska napaka? Opišite napake pri obravnavi napak, računske napake, napake v toku izvajanja, problem sinhronizacije!
Napake v rutini za obravnavo napak so pogoste saj se izvajanje programa najmanj zadržuje v teh predelih. Zato so slabše preizkušena. Do takih napak pride tudi takrat ko program pred kakimi napakami ne zaščiti, ne sporoči vzrokov napake, ter ne da možnost da bi se uporabnik iz napake izvlekel.
Do računskih napak pride ponavadi zaradi napačnega zaokroževanje, premajhne natančnosti ali pa rezanja dela števil. Do računskih napak pridemo tudi zaradi napačne interpretacije kompleksnih formul. Ali pa napačni algoritem.
Napake toka izvajanja so napake, ki narobe interpretirajo določena stanja, razmere pri katerih pride do preusmeritve toka izvajanja.
Problemi sinhronizacije so prisotni takrat ko more nek del programa čakati na drugega saj le tisti del še ni pravilno obdelal podatkov. Odkrivanje in odprava tovrstnih napak je zahtevna saj je težko ali pa skoraj nemogoče predvideti ali ustvariti vsa možna stanja pri katerih lahko pride do težav.
k. Kaj je programska napaka? Opišite napake pri delu z podatki, napake zaradi preobremenitve, napake strojne opreme, napake dokumentacije!
Do napak pri delu z podatki pride lahko; zaradi napačno interpretiranja podatka, zadnji ne shranjenih zapisov v vmesniku, prepisane vsebine...
Napake preobremenitve so prisotne takrat ko nek program premočno obremenimo, namreč lahko zmanjka prostora na disku, polnilnika, buffer na tiskalniku je presežen...
Napake strojne opreme so napake do katerih pride ob okvari strojne opreme, ki jo program potrebuje za izvajanje, zato mora program preveriti izjeme in se pravilno na njih odzvati. Ravno tako program ne sme uporabiti zasedene, pokvarjene ali odsotne naprave.
Slaba dokumentacija vodi k napačnem razumevanju delovanja programa, in zato tudi napačno uporabo le tega...
l. Kaj je programska napaka? Opišite napake uporabniškega vmesnika, napake zaradi neusklajenosti izvornih verzij, napake pri preizkušanju!
Do napak pri neusklajenosti izvornih verzij pride če se povezujejo podprogrami različnih verzij, ki bi sicer morali biti navzdol kompatibilni pa niso, ali pa so ampak neustrezno.
Napake pri preizkušanju izvirajo iz preizkušanja samega(napačni testni podatki, napačna uporaba programa), ampak take napake razkrijejo tudi če zna program prebaviti napačne podatke, tako, da nas na napako opozori, ter nam da možnost, da le to popravimo.
m. V katere kategorije razdelimo pomanjkljivosti delovanja programov (nepomembne itd.)?
Nepomembne, estetske narave, napačno zamaknjen izpis
srednje resne, zavajajoči ali odvečni izpisi
nadležne, manjše neprijetnosti; napačno napisana imena, položnica 0.0€
moteče, zavrača dovoljene posege, bankomat ne sprejme kartice
resne, pripelje do izgube podatkov(napačna rezervacija...)
zelo resne, hude napake, bremenitev napačnih računov...
ekstremne, prizadene velik krog uporabnikov, pogosto a naključno
neznosne, pokvari važne podatkovne baze, možno prenehanje delovanje sistema, pomanjkljiva obnovitvena procedura
katastrofalne, popoln izpad sistema, zaradi napake v sistemski programski opremi (w2k)
kužne, napaka se preko raznih medijev seli na druge sisteme nenamerno-to ni virus, (onesnaženje zaradi odprtja napačnega ventila...)
n. Opišite kako sta povezana življenjski cikel programske opreme in preizkušanja!
Dandanes se mora zaradi kompleksnosti programske opreme testiranje izvajati vzporedno z vsemi fazami proizvodnje (ideja, analiza, načrtovanje, uvajanje, vzdrževanje), po vsaki zaključeni fazi je potrebno opraviti preizkušanje in napisat zapisnik. Včasih se je testiranje opravljalo le na koncu ko je bil program že napisan.
o. opišite primer testne metodologije STEP!
Systematic test and evaluation proces, predvideno je, da se ga izvaja vzporedno z vsemi nivoji življenjskega cikla, na vsakem nivoju se ustavimo in opravimo slednje korake:
-zasnova izhaja iz informacij o preizkušeni programski opremi in poda cilje preizkušanja ter celoten njegov potek, kar je zapisano v preizkusnem načrtu, ki je izhodni proizvod te faze
-zbiranje dodatnih podatkov o programskih zahtevah in izvedbi se poveže s podatki o že opravljenih testih, kar vodi k izbiri testne konfiguracije oziroma zasnove in dokumentacije o njej
-meritev pomeni izvedbo predvidenih testov. Vhod v to fazo je programska oprema ki jo preizkušamo, izhod pa poročilo o preizkusu.
p. Katere sklope aktivnosti povezujejo življenjski cikel programske opreme in preizkušanja (aktivnosti po posameznih fazah)?
Oba ciklusa razvoja povezujejo naslednje aktivnosti:
1)Zagon projekta
a.vzpostaviti celotno strategijo preizkušanja
b.določiti pristop k testiranju in cilje
2)Zahteve
a.ugotoviti zahteve za preizkušanje
b.določiti odgovornosti pri preizkusih
c.načrtovati preliminarne preizkusne postopke in preizkuse, ki izhajajo iz postavljenih zahtev
d.preizkusiti in potrditi zahteve
3)Načrt
a.pripraviti prelimenarni načrt za preizkušanje sistema in postaviti specifikacije
b.izdelati načrt za test sprejemljivosti in njegove podrobnosti(specifikacije)
c.zasnovati preizkus, ki temelji na tem načrtu
d.preizkusiti in potrditi načrt
4)Razvoj
a.izdelati načrt za preizkus sistema
b.dokončno oblikovati preizkusne postopke in vse teste, ki temeljijo na kodi
c.izdelati načrt za preizkušanje modulov in enot
d.preizkusiti programerje
e.povezati podsisteme in jih preizkusiti
f.izpeljati preizkus sistema
5)Uvajanje
a.izpeljati preizkus sprejemljivosti
b.preizkusiti spremembe in popravke
c.ovrednotiti uspešnost preizkušanja
Preizkusne metode in tehnike
3.
PREIZKUSNE METODE IN TEHNIKE
q. katere preizkusne metode poznamo?
Preizkušanje z pregledovanje
načrtno pregledovanje
preizkušanje zahtev
preizkušanje zasnove obdelav
????????????????????????????????????????Najdi še kaj !!!!
r. Opišite preizkušanje z pregledovanjem-preverjanjem. Zakaj je uporabno?
Preverjanje pomeni različne aktivnosti, ki vsebuje kakršnokoli ocenjevanje tehničnih vprašanj ali pa uspešnosti ali učinkovitost skupine ljudi, ki dela na skupni zadolžitvi. Oceniti je potrebno trenutno stanje in kvaliteto opravljenega dela. Obstaja več tipov preverjanja:
-preverjanje zahtev, specifikacij, zasnove programske kode
-preverjanje postopkov, dokumentacije, pretvorb, inštalacije in vzdrževanja
-preverjanje preizkusnih načrtov, postopkov in zasnov
s. Kaj pomeni da je preizkusna metoda formalna?
Preizkusna metoda je formalna če za preizkušanje napišemo poročila, in da nekdo prevzame odgovornost za rezultate.
t. Katere kontrole točke more vsebovati načrtno preverjanje?
-sistemske zahteve
-programske zahteve
-glavni načrt preizkušanja
-prelimentarna zasnova
-kritična zasnova
-pregledovanje modulov
-sistemsko preizkušanje
-preizkušanje sprejemljivosti
u.Opišite idejo preizkušanja zahtev! Opišite tehniko preizkušanja na osnovi potrdilne matrike zahtev.
Ali kakšna zahteva manjka?
-vse funkcije
-zahtevane lastnosti
-programska kvaliteta
-programska oprema
Ali lahko kake zahteve poenostavimo ali izločimo?
-združenje zahtevanim
-prestroge zahteve
-nasprotujoče zahteve
zahteva(kaj)
testni primer (kje)
status (ok)
avtomatično generiranje naročil za artikle brez zaloge
program za fakturiranje
skladiščno poslovanje
nabavna služna
ok
ok
v.Opišite idejo preizkušanja zahtev! Opišite tehniko preizkušanja s testnimi modeli ali prototipi
Ker uporabnik-stranka ne more ravno vedeti kaj točno potrebujejo, si za postavljanje zahtev pomagamo z protitipiranjem. Najprej postavimo osnovni prototip uporabnik pa pove kaj je potrebno spremeniti. Obstaja več različnih razvojnih orodji z katerimi se pri tem procesu pomagamo.
w. Opišite idejo preizkušanja zahtev! Opišite tehniko preizkušanja z odločitvenimi tabelami in grafi vzrok posledica
Odločitvene tabele so koristne pri načrtovanju razvoja programske opreme kakor tudi pri načrtovanju preizkusnih razmer. V odločitvene tabele napišemo razne različne situacije na katere odgovarjajo programske zahteve.
Grafi vzrok-posledica grafično prikaže vse možne rezultate, ki odgovarjajo na določene situacije. Na ta način lahko zreduciramo število preizkusov, ki se končajo z enakim končnim rezultatom, tako se zmanjša število preizkusov na tiste ki jih je nujno potrebno opraviti.
x.opišite idejo preizkušanja zasnove obdelav. Opišite metodo za potrjevanje programske zasnove s simulacijskimi modeli!
Zasnove obdelav;
- ali je rešitev pravilna(preprostejša rešitev, pristop boljši od alternativ, najpreprostejša izvedba)
- ali rešitev izpolnjuje zahteve(vse zahteve, bo delovalo?, nevarnost za napake)
Simulacijski modeli nam omogočajo, da stestiramo delovanje neke računalniško zasnovo, četudi je še nimamo izdelane. Torej z simulacijami lahko preverimo hitrost, vrste, zasedanje računalniških sredstev, ozka grla,... še preden začnemo z delom. Če pride do napake model popravimo in postopek ponovimo.
y.opišite idejo preizkušanja zasnove obdelav! Opišite metodo za potrjevanje programske zasnove s konkurenčnimi zasnovami!
Zasnovo projekta naredi več različnih konkurenčnih skupin, za izvedbo je izbrana najcenejša, najhitrejša, najoptimalnejša rešitev(čas kodiranja, število vrstic kode, ). Ko je zasnova izbrana se lahko začne izvajanje izbranega projekta.
z.opišite idejo preizkušanja zasnove obdelav! Opišite metodo za potrjevanje programske zasnove s pomočjo pripravljanja preizkusov, izhajajoč iz zasnove programskega paketa.
Potrjevanje programske zasnove s pomočjo pripravljanja preizkusov se osredotočajo na podatke in izvajalne poti znotraj programskih struktur, ugotovljenih po dokumentaciji programskega projekta. Pripravljat je potrebno specifične testne primere, ki jih uporabljamo pri preverjanju zasnove. Ti primeri vključujejo preizkušanje notranjih vmesnikov, zapletenih izvajalnih poti ali procesov, scenarijev najslabših možnosti, načrtovalskih poti delikatnih območji,...
aa. Kaj so metrike za preizkušanje? Opišite vrste metrik in zakaj so potrebne?
Metrike za preizkušanje so seznami vprašanj z katerimi lahko kvantitativno ocenimo neko programsko kvaliteto programa.
Poznamo različne vrste metrik;
+primeri vprašanj o integriteti sistema;
-ali varnost sistema nadzirajo posebni moduli? (3t)
-ali se poizkusi dostopa beležijo za kasnejšo preiskavo? (8t)
-ali se gesla pri vnosu zamenjajo za * (10t)
-kako je zagotovljena varnost sistema (več nivojev preden se ga sesuje) (6t)
+vprašanja v tipu kaj-če(what-if)
-želimo spremeniti neko lastnost programa, koliko % kode je treba spremeniti, v kolikih različnih podprogramih?
bb.Opišite idejo tehnik za strukturno preizkušanje! opišite tehniko preizkušanje z obremenitvijo
Tehnike za strukturno preizkušanje nam povejo ali sistem lahko deluje tak kot je sestavljen, kodiran. Ali so komponente in sistem zgrajene tako da lahko funkcionirajo. Ne pa odgovarja na vprašanje ali deluje funkcionalno pravilno.
Pri preizkušanju z obremenitvijo preverimo ali sistem deluje v zadovoljivih časovnih okvirjih četudi ga obremenimo z bremenom za katerega ni bil predviden(100 uporabnikov namesto 40)
cc.opišite idejo tehnik za strukturno preizkušanje! kakšna je razlika med preizkušanjem izvajanja in preizkušanja obnovitvenih procedur
Pri preizkušanju izvajanja preverimo odzivnost sistema, obračalni čas, prepustnost. To lahko za programsko opremo storimo z simulacijskimi modeli, produkcijskim izvajanjem.
Pri preizkušanju obnovitvenih procedur nas zanima, kako se sistem odzove na izpad – izgubitev integritete. Koliko časa traja, da se sistem ponovno vzpostavi na predvideno produkcijsko delovanje. Preveriti je potrebno ali
-se shranjujejo arhivski podatki,
-so arhivski podatki shranjeni na varno,
-so obnovitvene procedure dokumentirane,
-so na voljo obnovitvena orodja
-so na voljo usposobljeni uporabniki z znanjem potrebnem za vzpostavitev sistema
dd. opišite idejo tehnik za strukturno preizkušanje! kakšna je razlika med preizkušanjem produkcijskega delovanja, preizkušanja skladnosti in preizkušanja varnosti.
-preizkušanje produkcijskega delovanja je izvedeno pred redno produkcijo, preveri se dokumentacija, usposobljenost osebja, inštalacijske procedure
-preizkušanje skladnosti - ustreznosti ugotovi ali je sistem izdelan po standardih, predpisi, navodili (preveri se ali je program spisan z internimi standardi, dokumentacija temeljita,...)
-preizkušanje varnosti nam zagotovi, da je sistem varen pred uničenjem ali zlorabo. Preveriti je potrebno fizično dostopnost sistema, ter logično varnost – onemogočenje nepooblaščenega dostopa.
ee. opišite idejo tehnik za funkcionalno preizkušanje! Kakšna je razlika med regresijskim preizkušanjem in preizkušanjem obravnave napak?
Funkcionalno preizkušanje nam pokaže ali preizkušena oprema deluje v skladu z začetnimi zahtevami in specifikacijami.
Regresijsko preizkušanje preizkuša se segmente, ki so že uspešno preostale preizkuse in odkrije napake, ki nastanejo med spreminjanjem ostalih delov v sistemu.
ff. opišite idejo tehnik za funkcionalno preizkušanje! Kakšna je razlika med preizkušanjem ročnih posegov in med sistemskim preizkušanjem?
Pri preizkušanju ročnih posegov dejansko preizkušamo kako se bo uporabnik in osebje (ki skrbi za delovanje sistema), odzvalo na različne situacije, ki jim predstavimo.
Med sistemsko preizkušanje nam preveri če vse aplikacije v sistemu delujejo v povezavi ena z drugo.
gg. Opišite idejo tehnik funkcionalno preizkušanje! Kakšna je razlika med regresiskim in vzporednim preizkušanjem?
Regresisko preizkušanje preizkuša se segmente ki so že uspešno preostale preizkuse in odkrije napake, ki nastanejo med spreminjanjem ostalih delov v sistemu.
Vzporedno preizkušanje se uporabi kadar želimo uvesti novo verzijo programske opreme, ter takrat primerjamo novo in starejšo in tako ugotovimo kaj je potrebno pri novi še popraviti.
Preizkusna orodja in avtomatično regresijsko testiranje
hh.zakaj so potrebna preizkusna orodja pri preizkušanju programske opreme? Katera so osnovna preizkusna orodja?
Da lahko učinkovito preizkušamo programsko opremo
-osebni računalnik
-urejevalnik besedil
-elektronska preglednica
-pripomočki za primerjavo zbirk
-pregledovalnik zbirk
-pretvornik zbirčnih formatov
-zbiralci zaslonske vsebine
-pripomočki za iskanje tekstovnih nizov
-videorekorder
-diagnostika z strojno opremo in konfiguracijo
-diagnostika programske opreme
-štoparica
-sistem za sledenje napakam
ii.Opišite probleme pri izvajanju avtomatičnih regresijskih testov sprejemljivosti! Kakšne možnosti imamo za avtomatičen vnos podatkov?
Regresiski testi so lahko zahtevni ker se lahko vmesnik ki ga preverjamo spremeni (od zadnje preizkušene verzije) in avtomatičen vnos podatkov ni mogoč.
Podatke lahko avtomatično vnašamo z:
-podatkovne zbirke
-paketne zbirke
-preusmeritev vhoda
-serijski vhod
-prestrezanje vnosov iz tipkovnice in njihovo ponavljanje
jj.Opišite probleme pri izvajanju avtomatičnih regresijskih testov sprejemljivosti! Kakšne možnosti imamo za prestrezanje programskih izhodov?
*
izhod v obliki podatkovne zbirke *
preusmerjanje izhoda *
izhod preko serijske povezave *
prestrezanje zaslona *
prestrezanje izhoda z uporabo vhodno izhodnega testnega programa
kk. Opišite probleme pri izvajanju avtomatičnih regresijskih testov in testov sprejemljivosti! Kakšne možnosti imamo za avtomatično primerjavo programskih izhodov (referenčni podatki)?
-primerjava z referenčnim programom
-napisati vzporedni program (funkcijsko omejenega)
-knjižnica referenčnih izhodov
-prestrezanje programskega izhoda
ll. Opišite idejo preizkušanja skladnosti z dogovori in standardi! Opišite preverjanje skladnosti glede na pomanjkanje prenosljivosti, rekurzijo, nivoje ugnezdenja in konstante vgrajene v program!
To so nekakšni dogovori znotraj firme, ki določajo kako mora biti koda strukturirana. npr: če nekdo zboli ali odide, da ostali razumejo kodo.
Koda mora biti pisana tako, da se jo lahko prevede tudi na drugih prevajalnikih. Rekurzija je nezaželena ker je nekatere implementacije ne prenašajo dobro, je izvor mnogih napak. Nivoji ugnezdenja morajo biti čim manjši, da je koda lažje razumljiva. Konstante ne smejo biti vgrajene v programsko kodo ampak jih recimo preberemo iz datoteke ali #define
mm.Opišite idejo preizkušanja skladnosti z dogovori in standardi! Opišite preverjanje skladnosti glede na dolžino modulov, komentarje, poimenovanja, oblikovanje in prepovedane zasnove!
Deli programov – funkcije morajo biti primernih dolžin.
Komentarji; na primer dogovor da na 10 vrstic kode pride 3 vrstice komentarja.
Dogovor kako morajo biti poimenovane s_premenljivke, fUnkcije, Zbirke...
dogovori ki določajo kje se postavlja {} kako se zamika...
dogovor, da se ne uporablja go to in exit stavkov.
nn. Opišite idejo preizkušanja skladnosti z dogovori in standardi! Opišite preverjanje skladnosti glede na prepovedane posege, večkratna poimenovanja in dosledno upoštevanje podatkovnih tipov!
za prepovedane posege se smatrajo vejitve v kodi, ki niso posledica zank (skoki nazaj)
oo. Katere napake tipično še odkrivajo avtomatska orodja za strukturno preizkušanje(napačna sintaksa, mešanje načinov izračunavanja...)?
napačna sintaksa – napaka se pri interpreterjih pokaže šele pri izvajanju
mešanje načina izračunavanja- različni jeziki uporabljajo različne pristope za računanje do napak pride recimo ker jezik priredi nekaj na int namesto na double
uporaba spremenljivk pred njihovo inicializacijo
branje zbirk predrn je bila odprta ali po tem ko jo že zapremo
koda ki se v nobenem primeru ne more izvesti je lahko napačno načrtovana
neskončne zanke
3 PREIZKUŠANJE STROJNE OPREME
a. razložite razliko med pojavljanjem napak za programsko in strojno opremo!
Programski opremi se skozi življenjsko obdobje število napak stalno le zmanjšuje. Pri strojni opremi pa se po nekaj časa uporabe začne število napak ponovno poviševati, zaradi napak do katerih pride zaradi staranja - okvar strojne opreme.
b. Kaj pomeni diagnostika? Zakaj je danes nepogrešljiva? Kateri dve večji strojni diagnostiki poznamo?
Diagnostika je skupek strojne in programske opreme, ki avtomatizira preizkušanje strojne opreme. Nepogrešljiva je ker;
-so računalniški moduli prezakomplicirani in je klasično preizkušanje pretežko
-pohitritev postopka od starta projekta do splavitve proizvoda na trg
-odprava napak ko je proizvod že v fazi proizvodnje je zelo drago
-drag je vsak izpad računalniške opreme
--dve vrsti;
-odkrije napako
-odkrije napako in jo locira
c.Opišite kako diagnostika spremlja ves življenjski ciklus strojne opreme(testi prototipov, test dela ne dela, trajnostni test...)!
Že med načrtovanjem novega vezja, je potrebno misliti na bodoče preizkušanje. Testi se začno z prototipom, v zaostrenih pogojih v preizkusnih komorah, kjer lahko uravnavamo temperaturo, vlažnost,... Stresni preizkusi pokažejo kako robustna je zasnova prototipa.
Kasneje preverjamo na;
-osnovi komponent – dela ne dela
-po končani proizvodnji fazi – stresni testi v komorah, dalj časa -na terenu testiramo module ki jih je moč tam zamenjati
d.Opišite osnovna pravila za snovanje preizkusov strojne opreme!
Poznavanje pravilnih rezultatov (ob predvidenem pravilnem delovanju)
Ne preverjamo vezja ki smo ga zasnovali mi da ne ponovimo napake
Preizkušanje v nesmiselnih-nemogočih situacijah
predvideti je potrebno čim več napačnih scenarijev
Diagnostični programi morajo bitu uporabniku prijazni a vseeno temeljiti
e. Naštejte vrste diagnostik! Opišite razvojno diagnostiko.
-razvojna diagnostika;
Na novo načrtovano vezje je potrebno funkcionalno preizkusiti. Za zahtevnejšo opremo je priporočljiva diagnostika.
skeniraj sliko 3.2
Razvojna diagnostika vsebuje 3 sklope:
-smoke test ki preveri ali se ob priklopu na obratovalno napetost začne z vezjem dogajati kaj nepredvidenega (preveliki tokovi, segrevanje, preboji,...)
-preizkusi na nivoju komponent, kjer preverimo dostop do komponent(pomnilnik, krmilni registri, naslovna logika) preizkusimo pisanje branje... Praviloma uporabimo diagnostiko (očiščevalnik, programe za pisanje in branje pomnilnika), uporabimo še razna orodja (osciloskop, logični analizator, signaturni analizator, ...)
-preizkus krmilnikov(registri, naslovna logika, branje pisanje,...)
-preizkus povezave z okolico, modulove izhode, prilagodile člene
f.Naštejte vrste diagnostik! Opišite potrditveno diagnostiko!
Potrditvena diagnostika nam odgovori na vprašanje če je modul funkcionalno ustrezen in lahko tako preidemo iz razvojne v proizvodno fazo. Testi so v večini izvedeni kot trajnostni testi v preizkusnih komorah, celoten postopek beležimo. Ko je ta faza končana lahko pridobimo statična pokazatelja kvalitete;
-povprečni čas med odpovedmi
-povprečni čas do prve odpovedi
g. Naštejte vrste diagnostik! Opišite proizvodno diagnostiko!
Diagnostika v proizvodnji more natančno locirati napako. Uporabljajo se (preizkusne naprave, testni pripomočki, simulatorji periferije, avtomatična testna oprema).
Testne naprave so prirejeni računalniki z posebno diagnostiko, ki je sposobna napako lokalizirati, imajo konektorje in merilne priključke, ki jih povežemo na preizkusni modul. Vsebujejo izhodne indikatorje in sistem za trajno shranjevanje rezultatov(disk, tiskalnik).
Specialni testni pripomočki so zamenjava za normalno obratovalno okolje(npr.: test miške, nekaj premika miško naokoli drug del naprave preverja če miška vrača prave rezultate).
Simulatorji periferije pri branju diagnostika na vhodu naprave postavi neke pogoje in jih iz naprave preveri. Pri pisanju nekaj pošljemo na napravo, in na izhodu preverimo če je iz naprave prišel predviden rezultat.
Testna oprema sestavlja zgoraj naštete komponente v eno napravo in jih pravilno uporablja tako, da se izvede čimbolj avtomatično.
h.Naštejte vrste diagnostik! Opišite razliko med servisno diagnostiko in oddaljeno diagnostiko!
Servisna diagnostika se izvaja z namenom preventivnega, korektivnega in prediktivnega vzdrževanja. Izvaja se jo nad komponentami ki se jih da zamenjati na terenu. Preventivna in prediktivna diagnostiki sta pomembni ker zmanjšajo možnost izpada sistema.
Oddaljena diagnostika je v pomoč servisni diagnostiki saj lahko serviser na daljavo ugotovi kaj je narobe z sistemom in se pripravi za odpravo napake. Izvaja se jo preko komunikacijskih povezav, v kolikor sistem ni še huje prizadet in le tega ni zmožen.
i.Naštejte vrste diagnostik! Opišite začetno in sprotno diagnostiko!
Ko se sistem zažene se požene začetna diagnostika, v tej se sistem preveri če so njegove komponente delujoče. Preveri se ROM, RAM, komunikacijski kanali, sekundarni pomnilnik, vhodno izhodne enote.(POST)
Sprotna diagnostika se izvaja vzporedno z standardnim delovanjem sistema, le ta rahlo upočasni sistem ampak je nujna da vemo smo lahko prepričani da sistem deluje tako kot mora. npr.: preverjamo če je slučajno nenavadno veliko crc napak,... (S.M.A.R.T)
j. Opišite idejo načrtovanja diagnostike! Kaj je to zasnova za preizkušanje?
Pri načrtovanju diagnostike moramo do potankosti poznati zahteve in predvideno delovanje preizkušenega sistema. Potrebno je poznati zakaj pride do nekega stanja v registrih in kaj pomenijo, ravno tako je potrebno poznati tudi inicializacijski postopek. DFT (design for testability) zasnova za preizkušanje nam pomaga preverjati komponente, ki so tako kompleksne, da do stanj. ki so v njih ne moremo dostopati, omogoči nam npr. preverjanje modulov preko linij, ki so namenjene izključno preizkušanju, saj brez njih nebi mogli dostoprati do notranjih vmesnih stanj...
k. Kaj so tipične napake pri računalniških sistemih(logičnih vezjih)? Kaj povzroči (kako se kaže) napaka v vezju? Kako lahko napako v vezju lociramo?
Zelo pogoste napake so;
-kratki stiki med linijami
-prekinitve na tiskanini
-napaka pred preizkušenim vezjem
Napake se praviloma kažejo tako, da izhodi na preizkušenem vezju ostanejo na stalnem nivoju, ne glede na to, da se vhod spreminja.
stuck at 0
stuck at 1
Napako lociramo tako da do popolnosti poznamo pravilno delovanje vezja in napako lociramo. Napaka se v vezju kaže na vseh nivojih ki sedijo okvarjenemu gradniku.
l.Kaj je tabela okvar? Kako jo tvorimo? Kako nam pomaga pri lociranju napake v vezju?
Tabela okvar nam pomaga pri načrtovanju preizkušanja, saj z njeno pomočjo lahko najdemo pravilne preizkusne vektorje. Z tabelami okvar najdemo vsa stanja ki doprinesejo vse možne napake, tako lahko načrtujemo minimalno število preizkusov ki najdejo vse napake.
Sestavimo jo tako da vzamemo vse možne vhodne signale(in vmesna stanje), in pravilne izhode za dane vhode. Potem pa sestavimo tabelo pri kateri pravilnim stanjem(vhodnih, vmesnih in izhodnih linij) dodamo še enojne napake S-A-0 in S-A-1 na te linije. V tabeli potem z × označimo vsa tista stanja pri katerih pride do napak na izhodu. V izpolnjeni tabeli so podatki X/0 in X/1 kjer je X linija na kateri je napaka, 1 ali 0 pa tip napake. Pri preizkusih najprej preverimo kolone v tabeli kjer je le ena napaka, le ta natančno locira napako. Če le te ne odkrijejo vseh napak potem dodamo še minimalno število vektorjev ki odkrijejo preostanek napak. Za natančno lokalizacijo moramo postopati iterativno do izvora napake.
kako tabelo skeniraj
2.Diagnostične metode in preizkusna orodja
m.opišite oba pristopa pri preverjanju strojne opreme!
Pri preizkušanju strojne opreme se zatekamo k dvema različnima pristopoma;
Meritve uporabljamo ga takrat ko že imamo izdelano strojno opremo. Za meritve potrebujemo merilna orodja, to so strojni pripomočki(voltmeter, osciloskop) mikroračunalniki (logični analizator, signaturni analizator, mrežni analizator). Lahko so tudi v hibridni meritveni izvedbi – diagnostični programi in zunanji merilniki v kakršnikoli izvedbi.
Simulacije so drugi način to uporabljamo predvsem v fazi načrtovanja, takrat ko preizkušene naprave še ni izdelane. Možne so tudi simulacije v fazi servisiranja, da bolje razumemo naravo okvare. Simulatorji so računalniški programi v katerem lahko načrtujemo vezje in potem preverjamo njegovo odzivanje na različne vhodne podatke.
n. Kaj pomeni pojem vgrajeni testi? Naštej DFT metode! Opišite signaturno analizo!
Ker so z razvojem tehnologije novejše naprave zelo kompleksne je njihovo preizkušanje težko ali celo nemogoče, saj niso na voljo vmesna stanja. Zato sedaj med samim načrtovanjem vdelamo priključke (tudi vezja, logiko ...) za nekatera vmesna stanja.
poznamo :
-signaturna analiza
-preizkusni vzorci
-vgrajeni samopreizkusi
Signaturna analiza
Z signaturno analizo lahko sestavimo podpis nekega zaporedja. Torej če neko zaporedje signalov na neki točki v sistemu pomeni normalno delovanje, so vse druge vrednosti v registru signaturne analize indikator, da je prišlo do napake. Lahko sestavimo tudi slovar napak z katerim si lahko poenostavimo avtomatiziramo preizkušanje. Signaturna analiza deluje na principu pomikalnega registra z povratno zvezo.
Lahko pride do problemov saj lahko napaka v nekaterih primerih zgenerira enak podpis kot pravilno delovanje modula, verjetnost napake lahko zmanjšamo z večjim številom registrov – zapahov.
o. Kaj pomeni pojem vgrajeni testi? Naštej DFT metode! Opišite preizkusne vzorce!
Metoda preizkusni vzorci je nadgradnja signaturne analize in deluje tako da, hkrati preverjamo več linij (ponavadi vhodno – izhodne). Na vhode preizkušenega vezja pritisnemo vnaprej izbrane vzorce, le ti poženejo v predvidenem delovanju poženejo pomične registre, ki so priključeni na merilne točke. Normalno delovanje doseže drugačne vrednosti kot napačno.
p. Kaj pomeni pojem vgrajeni testi? Naštej DFT metode! Opišite vgrajene samo preizkuse!
Ker so sodobna vezja zelo kompleksna, zato jih od zunaj ni več mogoče preizkušati, zato imajo tovarniško vgrajene dele logike, ki opravijo avtomatičen preizkus vezja na našo zahtevo. Rezultate preizkusa lahko potem preberemo iz izhoda. Vezja za preizkušanje zasedajo prostor na vezju, porabljajo energijo, zmanjšajo zanesljivost vezja, v skrajnem primeru upočasnijo delovanje vezja.
q. Opišite kakšne vrste preizkusnih orodji za strojno opremo poznamo (analogna, digitalna)! Opišite osciloskop (funkcionalnosti, načini delovanja...)!
Preizkusna orodja ali bolje rečeno merilniki so lahko navadni analogni (voltmeter, osciloskop, ohm-meter) ali pa prirejeni za delo z diskretnimi vrednostmi(logični analizator, mrežni analizator, emulatorji mikroračunalniške komponente).
Osciloskop je univerzalni inštrument, ki nam prikazuje analogne signale – napetost.
Sestavljen je iz prikazovalnika z katodno cevjo. Prikazuje nam graf ampliuda:čas. Praviloma se lahko nastavi občutljivost(amplitude -> y), ojačanje, premik po oseh x in y. Nastavi se časovni interval, ki se ga prikazuje. Lahko zazna kdaj se nek periodičen signal začne in ga prikazuje od takrat naprej.
r. Opišite kakšne vrste preizkusnih orodji za strojno opremo poznamo (analogna, digitalna)! Opišite logični analizator (funkcionalnost, način delovanja,...)!
Logični analizator je nadgrajen osciloskop (osciloskop + analogno digitalni pretvornik) in sicer tako, da nam lahko prikazuje digitalne diskretne signale. Vsebovati mora nekaj pomnilnika kamor se shrani pretvorjen signal. Normalno vsebuje več sond. Nastaviti je potrebno na kaki tehnologiji deluje(ttl, cmos), vzorčevalno frekvenco...
u. Opišite kakšne vrste preizkusnih orodji za strojno opremo poznamo (analogna, digitalna)! Opišite razliko med logičnim in mrežnim analizatorjem (funkcionalnost, način delovanja...)!
Mrežni analizator se uporablja za analizo prometa po mrežnih povezavah. Fizično ga priklopimo na linijo, naprava je v omrežju prisotna pasivno(nima svojega ip -ja).
Lahko se nastavi različne filtre, kak promet naj upošteva.
Logični analizator zna iz analognih signalov prepoznati diskretne podatke. Mrežni analizator pozna različne protokole za prenos podatkov v omrežju, zna samodejno protokol prepoznati in izluščiti podatke.
v.Opišite kateri dve vrsti notranjih pomnilnikov poznamo! Kakšne so izvedbe vpisno bralnih pomnilnikov! Opišite statično izdelavo pomnilnikov ram z nand vrati! Opišite postopek za preizkus podatkovnega vodila!
Poznamo bralne(ROM) in vpisno bralne(RAM) pomnilnike. Vpisno bralni so lahko statični (izvedba z bi stabilnim elementom) ali dinamični (kapacitivni element ).
Če povežemo 2 nand vrata eno z drugo si lahko ena drugi vzdržuje stanje. Vhod v eno je /set vhod v drugo pa /reset.
Preizkus podatkovnega vodila je preizkus, ki nam odkrije napake med mikroprocesorjem, sistemskim vodilom in ramom. Izvedemo ga tako da v pomnilnik vnesemo drsečo enico med drsenjem preverjamo ali je podatek vredu vpisan. Potem ponovimo postopek še z drsečo ničlo.
_______________________________________-mogoč še dopiši algoritem
w. Opišite kateri dve vrsti notranjih pomnilnikov poznamo! Kakšne so izvedbe vpisno bralni pomnilnikov! Opišite dinamično izdelavo pomnilnikov ram! Opišite Knaizukov pomnilniški test!
Pomnilni element pri dinamičnih pomnilnikih je kondenzator, ampak v dejanskih izvedbah se uporabljajo kapacitevne lastnosti tranzistorja. Ponavadi so vzporedni dve liniji da se izloči šum. Ker je kapacitivni naboj majhen je potrebno stalno osveževati vrednosti v pomniniku.
Kanazukov test odkrije večkratne napake na katerikoli kombinaciji celic, ki so stalno obtičale na 0 ali 1
-pomnilnik razdelimo na 3 dele g0 (vse celice ki so deljive z 3 brez ostanka) g1(ostanek je 1) in g2 (ostanek 2)
-g0 napolnimo z1
-g1 in g2 napolnimo z 0
-preverimo če so vse celice g1 zares na 0
-g1 napolnimo z 1
-preverimo če so vse celice g2 zares na 1
-preverimo če so vse celice g0 in g1 zares na 1
-g0 napolnimo z 0
-preverimo ali je g0 na 0
-g2 napolnimo z 1
-preverimo g2 če je res 1
x.Opišite tipično organizacijo pomnilnika! Opišite koračni preizkus za preverjanje pomnilnika!
Pomnilniške komponente so vedno medsebojno povezane matrično. Pomnilniški naslov se razdeli na dva dela, del ki naslovi vrstice in del ki naslovi stolpce. Če se naslavlja več čipov zgornji naslovi naslovijo čip nižji naslovi pa naslovijo celice znotraj čipa.
-koračni preizkus najde napake stalnih nivojev ter napake naslovnega dekodiranja. Sestoji se z dveh delov; pregledovanja navzgor(odkrijemo napake na nižjih naslovih) in pregledovanje navzdol(odkrijemo napake na višjih naslovih).
y. opišite kateri dve vrsti notranjih pomnilnikov poznamo! Kakšne so izvedbe vpisno bralnih pomnilnikov! Opišite statično izdelavo pomnilnikov RAM z NAND vrati! Opišite galopirajoči preizkus za preverjanje pomnilnika!
Poznamo bralni in vpisno bralni pomnilnik. Statični, dinamični.
2 nand vrata so križno povezane in si držijo nastavljeno stanje.
Galopirajoči preizkus je uporabljen za preizkus rama. Preveri da na celicah ni obtičalih stanj in da niso medsebojno povezane.
Vse celice postavimo na 0, eno celico damo na 1 in preverimo ostale celice če so še vedno na 0, preverimo če je spremenjena celica še vedno na 1. to storimo za vse celice, postopek ponovimo še enkrat tako, da zamenjamo 0 in 1. Celoten postopek je temeljit ampak zamuden.
z. Opišite tipično organizacijo pomnilnika! Opišite koračni B preizkus za preverjanje pomnilnika!
Koračni B-preizkus, odkrije napake stalnega nivoja, in medsebojnega spoja na ramih in naslovnih in podatkovnih linijah, ne more pa odkriti občutljivost pomnilnika na določene vzorce. Ne deluje tudi na večkratne napake na naslovnih dekodirnikih in hkrati medsebojne spoje med celicami.
-napolnimo celoten pomnilnik z 0
-od nižjih na višje naslove
preberemo če je 0
zapišemo 1
preberemo če je 1
zapišemo 0
preberemo če je 0
-od nižjih k višjim naslovom
beremo če je 1
pišemo 0
pišemo 1
pišemo 0
-od višjih na nižje
beremo če je 0
pišemo 1
pišemo 0
aa. Opišite kateri dve vrsti notranjih pomnilnikov poznamo! Kakšne so izvedbe vpisno bralnih pomnilnikov! Opišite dinamično izdelavo pomnilnikov RAM! Opišite preizkus parnosti!
Test bita parnosti:
-inicializacoja za prekinitev ob napaki
-izključimo parnost
-zapis z napačnim parnostnim bitom
-omogočimo parnost
-preberemo lokacijo z napačno parnostjo
-ne sme priti do prekinitve ker je izključene parnost
-vključimo parnost
-preberemo lokacijo z napačno parnostjo
-priti more do prekinitve