Patikra ( verification) ir Atestavimas ( validation) - PowerPoint PPT Presentation

1 / 46
About This Presentation
Title:

Patikra ( verification) ir Atestavimas ( validation)

Description:

U tikrina, kad programin s rangos sistemos atitikt vartotoj poreikius (K u tikrina patikra ir atestavimas?) – PowerPoint PPT presentation

Number of Views:73
Avg rating:3.0/5.0
Slides: 47
Provided by: ktu80
Category:

less

Transcript and Presenter's Notes

Title: Patikra ( verification) ir Atestavimas ( validation)


1
Patikra ( verification) ir Atestavimas (
validation)
  • Užtikrina, kad programines irangos sistemos
    atitiktu vartotoju poreikius
  • (Ka užtikrina patikra ir atestavimas?)

2
Tikslai
  • Pristatyti programines irangos patikra
    (verification) ir atestavima ( validation) ir
    aptarti ju skirtumus
  • Apibudinti programu peržiuros procesus ir ju
    itaka tikrinimui ir atestavimui ( TA)
  • Paaiškinti statine analize kaip atestavimo metoda
  • Apibudinti bedefektini (Cleanroom) programines
    irangos kurimo procesa

3
Nagrinejamos temos
  • Patikros ir atestavimo planavimas
  • Programines irangos peržiura
  • Automatizuota statine analize
  • Bedefektinis programines irangos kurimas

4
Patikra ir Atestavimas
  • Patikra
  • Ar mes teisingai kuriame produkta?
  • Programine iranga turi atitikti specifikacija
  • Atestavimas
  • Ar mes kuriame teisinga produkta?
  • Programine iranga turi daryti tai ko vartotojas
    reikalauja
  • ( I kokius klausimus atsako patikra ir
    atestavimas?)

5
P A procesas
  • PA proceso gyvavimo ciklas (life-cycle) PA
    turi buti taikoma kiekvienoje programines irangos
    kurimo proceso pakopoje.
  • (Koks yra PA gyvavimo ciklas?)
  • Yra du principiniai PA tikslai
  • Atskleisti sistemos klaidas
  • Ivertinti ar sistema yra naudotina darbineje
    situacijoje
  • ( Kokie principiniai PA tikslai?)

6
Statine ir dinamine patikra
  • Programines irangos peržiura ( inspection).
    Susijusi su statines sistemos atvaizdavimo
    analize, atskleidžiant problemas (statine
    patikra)
  • Gali buti papildyta su priemonemis susijusiomis
    su dokumentu ir kodo analize
  • Programines irangos testavimas. Susijes su
    produkto elgsenos sužadinimu ( bandymu) ir
    stebejimu (dinamine patikra)
  • Sistema yra bandoma su testiniais duomenimis ir
    yra stebima jos darbine elgsena
  • (Kuo skiriasi statine ir dinamine patikra?)

7
Statinis ir dinaminis atestavimas
Statinis atestavimas
Detalus projektas
Formali specifikacija
Aukšto lygio projektas
Reikalavimu specifikacija
Programa
Dinaminis atestavimas
Prototipas
8
Programu testavimas
  • Gali parodyti klaidas bet ne ju nebuvima
  • Sekmingas testas tas, kuris atskleidžia viena
    ar daugiau klaidu
  • Vienintelis PA metodas, taikomas nefunkciniams
    reikalavimams
  • Programu testavimas turi buti panaudotas
    apjungiant kartu su statine patikra, kad butu
    pilna P A apimtis
  • ( Ka galima pasakyti apie programu testavima?)

9
Testavimo tipai
  • Klaidu testavimas
  • Testavimas skirtas sistemos klaidu
    atskleidimui.
  • Sekmingas testas yra tas , kuris išryškina
    klaidas
  • Statistinis testavimas
  • Testavimas pagristas atsitiktiniu ivedamu
    duomenu generavimu. Naudojama patikimumo
    ivertinimui.
  • ( Kokie yra testavimo tipai?)

10
P A paskirtis
  • Patikra ir atestavimas turi parodyti, kad ši
    programine iranga yra tinkama skirtam tikslui
  • Tai nereiškia kad ši programa bus visai be klaidu
  • Bet ji bus pakankamai gera numatomam naudojimui,
    ir naudojant bus pasiektas reikiamas pasitikejimo
    lygis
  • ( Kokia PA paskirtis?)

11
Pasitikejimas P A ( confidence)
  • Priklauso nuo sistemos tikslu, vartotojo lukesciu
    ir marketingo aplinkos
  • Programines irangos funkcijos
  • Tikrumo lygis priklauso nuo to, kiek
    programine iranga yra kritine (svarbi)
    organizacijai.
  • Vartojo lukesciai
  • Vartotojai gali buti nereiklus kai kurioms
    programines irangos rušims.
  • Marketingo aplinka
  • Ankstyvas produkto pateikimas rinkai gali buti
    svarbesnis nei tolesne defektu paieška
    programoje.
  • ( Nuo ko priklauso pasitikejimas PA ?)

12
Testavimas ir derinimas
  • Defektu testavimas ir derinimas yra skirtingi
    procesai
  • Patikra ir atestavimas yra skirtas klaidos buvimo
    programoje nustatymui
  • Derinimas yra skirtas defektu vietos nustatymui
    ir ištaisymui
  • Derinimo metu formuojamos hipotezes apie
    programos veikima, po to, testuojant šias
    hipotezes, randamas sistemos defektas.
  • ( Kuo skiriasi testavimas ir derinimas?)

13
Derinimo procesas
Testavimo rezultatai
Testavimo kriterijai
Specifikacija
Klaidos vietos nustatymas
Klaidu taisymo projektavimas
Klaidos ištaisymas
Programos testavimas iš naujo

( Kokie veiksmai vykdomi derinimo proceso metu?)
14
Nagrinejamos temos
  • Patikros ir atestavimo planavimas
  • Programines irangos peržiura
  • Automatizuota statine analize
  • Bedefektinis programines irangos kurimas

15
P A planavimas
  • Atidus planavimas yra butinas norint gauti
    geriausia rezultata iš testavimo ir peržiuros
    procesu.
  • Planavimas turi prasideti anksti kurimo procese.
  • Planavimas turi nustatyti pusiausvyra tarp
    statinio tikrinimo ir testavimo.
  • Testo planavimas labiau nustato testavimo
    standartus nei apibudina produkto testus.
  • ( Kas tvirtinama apie P A planavima?)

16
Kurimo ir testavimo modelis
Reikalavimu specifikacija
Sistemos specifikacija
Sistemos projektas
Detalus projektas
Posistemiu integracijos tikrinimo planas
Sistemos integracijos tikrinimo planas
Moduliu ir vienetu kodavimas ir testavimas
Priemimo testo planas



Sistemos integracijos testas
Posistemiu integracijos testas
Naudojimas
Priemimo testas


(Kaip grafiškai atvaizduojamas kurimo ir
testavimo modelis?)
17
Programines irangos testo plano struktura
  • Testavimo procesas
  • Reikalavimu sekamumas (traceability)
  • Testuojami vienetai
  • Testavimo tvarkaraštis
  • Testu užrašymo proceduros
  • Technines ir programines irangos reikalavimai
  • Apribojimai
  • (Kokia testo plano struktura?)

18
Nagrinejamos temos
  • Tikrinimo ir atestavimo planavimas
  • Programines irangos peržiura
  • Automatizuota statine analize
  • Bedefektinis programines irangos kurimas

19
Programines irangos peržiura
  • Siejasi su žmonemis, nagrinejanciais išeities
    tekstus, siekiant atrasti anomalijas ir klaidas.
  • Nereikalauja vykdyti sistemos, todel gali buti
    naudojama prieš realizacija.
  • Gali buti taikoma bet kokiam sistemos
    atvaizdavimui (reikalavimams, projektui, testu
    duomenims ir t.t.).
  • Tai labai efektyvi metodika klaidu suradimui.
  • ( Kas budinga programines irangos peržiurai?)

20
Peržiuros privalumai
  • Daug defektu gali buti atrasta per viena
    peržiura. Testuojant vienas defektas gali
    paslepti kita, taigi reikalingi keli vykdymai.
  • Pakartotinai panaudojamos srities ir programavimo
    žinios, kai taisytojai supažindinami su
    dažniausiai pasitaikanciu klaidu tipais.
  • (Kokie peržiuros privalumai?)

21
Peržiura ir testavimas
  • Peržiura ir testavimas yra vienas kita
    papildantys ir neprieštaraujantys tikrinimo
    metodai.
  • Abu turetu buti naudojami PA proceso metu
  • Peržiura gali išsiaiškinti atitikima
    specifikacijai, bet ne atitikima realiems
    užsakovu reikalavimams.
  • Peržiura negali patikrinti nefunkciniu
    charakteristiku (tokiu kaip našumas, tinkamumas
    naudoti ir t.t.)
  • ( Koks santykis tarp peržiuros ir testavimo?)

22
Programu peržiura
  • Formalizuotas metodas dokumentu peržiurai
  • Skirtas defektu aptikimui (ne taisymui)
  • Defektas gali buti logines klaidos, kodo
    anomalijos, kurios gali signalizuoti apie
    klaidinga busena (pvz., neinicializuota
    kintamaji) arba neatitikima standartams
  • (Kas tai yra programu peržiura?)

23
Peržiuros išankstines salygos
  • Turi buti prieinama tiksli specifikacija
  • Komandos nariai turi buti susipažine su
    organizacijos standartais
  • Turi buti prieinamas sintaksiškai teisingas kodas
  • Klaidu tikrinimo sarašas turi buti paruoštas
  • Vadovybe turi susitaikyti su tuo, kad peržiura
    padidina kaštus ankstyvame programines irangos
    kurimo etape
  • Vadovybe neturetu naudoti peržiuros personalui
    ivertinti
  • (Kokios išanktines salygos keliamos peržiurai?)

24
Peržiuros procesas
Planavimas
Tolimesnis efektyvumo didinimas
Apžvalga
Individualus pasiruošimas
Ivertinimas
Peržiuros pasitarimas
(Kokie veiksmai vykdomi peržiuros proceso metu?)
25
Peržiuros procedura
  • Sistemos apžvalga pristatoma peržiuros komandai
  • Kodai ir kita susijusi dokumentacija yra
    paskirstoma peržiuros komandai iš anksto
  • Ivyksta tikrinimas, ir atrastos klaidos yra
    pažymimos
  • Padaromi pakeitimai, kad pataisyti atrastas
    klaidas
  • Pakartotina peržiura gali buti reikalinga arba ne
  • (Kas budinga peržiuros procedurai?)

26
Peržiuros komandos
  • Sudaromos iš mažiausiai 4 nariu
  • Tikrinamo kodo autorius
  • Peržiuretojas tas, kuris randa klaidas,
    trukumus ar nesuderinamumus
  • Pranešejas tas, kuris skaito koda komandai
  • Pirmininkas tas, kuris vadovauja pasitarimui ir
    žymi atrastas klaidas
  • Kiti vaidmenys raštininkas ir vadovas
  • ( Kas budinga peržiuros komandai?)

27
Peržiuros tikrinimu klaidu sarašas
  • Dažniausiai pasitaikanciu klaidu sarašas turetu
    buti naudojamas viso tikrinimo metu
  • Klaidu tikrinimo sarašas priklauso nuo
    programavimo kalbos
  • Kuo silpnesnis tipu tikrinimas, tuo didesnis
    klaidu tikrinimo sarašas
  • Pvz inicializacija, konstantu pavadinimai, ciklu
    pabaigos, masyvu ribos ir t.t.
  • (Kas budinga peržiuros metu tikrinamu klaidu
    sarašui?)

28
Tikrinimai peržiuros metu
(Kas tikrinama peržiuros metu?)
Tikrinimai peržiuros metu
Klaidu klase
Ar visi programu kintamieji aprašyti prieš
panaudojima? Ar visos konstantos turi vardus? Ar
apatine masyvo riba turetu buti 0,1 ar dar
kita? Ar viršutine masyvo riba turetu buti lygi
masyvo dydžiui ar 1?
Duomenu klaidos
Ar kiekvienam salyginiam sakiniui yra teisinga
salyga? Ar kiekvienas ciklas turi pabaiga? Ar
sudetiniai sakiniai yra teisingai apskliausti? Ar
variantu sakiniuose visi variantai numatyti?
Kontroles klaidos
Ar visi ivedimo kintamieji panaudoti? Ar visi
išvedimo kintamieji igauna reikšmes prieš juos
panaudojant?
Ivedimo/išvedimo klaidos
Ar visos funkcijos ir proceduros turi teisinga
parametru skaiciu? Ar sutampa formalus ir realus
parametrai? Ar parametrai išdestyti teisinga
tvarka? Jei komponentai naudojasi ta pacia
atmintimi, ar jie turi ta pati atminties
strukturos modeli?
Sasajos klaidos
Jeigu struktura su nuoroda i ja yra pakeista,
ar visos nuorodos yra pakeistos teisingai? Jei
dinaminis saugojimas yra naudojamas, ar teisingai
nurodyta vieta? Ar atmintis yra atlaisvinama,
kai baigiama ja naudotis?
Saugojimo valdymo klaidos
Ar yra numatytos visos klaidu atsiradimo salygos?
Išimciu valdymo klaidos
29
Peržiuros tempas
  • 500 sakiniu per valanda apžvalgos metu
  • 125 kodo sakiniai per valanda per individualu
    pasiruošima
  • 90-125 sakiniai per valanda gali buti peržiureti
    klaidu klases požiuriu
  • Del to tikrinimas yra brangus procesas
  • 500 kodo eiluciu patikrinimui reikia 40 žmogaus
    darbo valandu
  • (Koks peržiuros tempas?)

30
Nagrinejamos temos
  • Tikrinimo ir atestavimo planavimas
  • Programines irangos peržiura
  • Automatizuota statine analize
  • Bedefektinis programines irangos kurimas

31
Automatizuota statine analize
  • Statiniai analizatoriai programines irangos
    irankiai išeities teksto apdorojimui
  • Jie išnagrineja programos teksta, bando surasti
    potencialiai klaidingas salygas ir atkreipti i
    jas PA komandos demesi
  • Labai efektyvi pagalba peržiurai. Priedas prie
    peržiuros, bet ne jos pakaitalas
  • (Kokia statiniu analizatoriu paskirtis?)

32
Tikrinimai statines analizes metu
(Kokie tikrinimai atliekami statines analizes
metu?)
33
Statines analizes etapai
  • Valdymo srauto analize. Tikrina ciklus su daug
    išejimo ir iejimo tašku, randa nepasiekiama koda
    ir t.t.
  • Duomenu naudojimo analize. Randa neaprašytus
    kintamuosius, kintamuosius aprašytus dukart be
    tarpinio priskyrimo, kintamuosius, kurie aprašyti
    bet niekada nepanaudoti ir t.t.
  • Sasajos(interfeiso) analize. Tikrina paprogramiu
    ir proceduru aprašymu neprieštaringuma bei ju
    panaudojima

34
Statines analizes etapai
  • Infomacijos srauto analize. Nustato išeities
    (output) reikšmiu priklausomybes. Neieško
    anomaliju, bet išryškina informacija kodo
    peržiurai ar analizei
  • Keliu analize. Parenka programos vykdymo kelia
    ir nurodo operatorius, vykdomus šiuo keliu. Be
    to, labai naudinga apžvalgos metu
  • Abu šie etapai dirba su labai daug informacijos.
    Jie turi buti naudojami apdairiai
  • (Kokie statines analizes etapai?)

35
LINT statine analize
138 more lint_ex.c include ltstdio.hgt printarray
(Anarray) int Anarray printf(d,Anarray)
main () int Anarray5 int i char c
printarray (Anarray, i, c) printarray
(Anarray) 139 cc lint_ex.c 140 lint
lint_ex.c lint_ex.c(10) warning c may be used
before set lint_ex.c(10) warning i may be used
before set printarray variable of args.
lint_ex.c(4) lint_ex.c(10) printarray, arg. 1
used inconsistently lint_ex.c(4)
lint_ex.c(10) printarray, arg. 1 used
inconsistently lint_ex.c(4) lint_ex.c(11) print
f returns value which is always ignored
36
Statines analizes naudojimas
  • Ypac vertinga, kai naudojama tokia kalba, kaip C,
    turinti silpna tipavima (typing), ko pasekoje
    kompiliatorius neaptinka daug klaidu
  • Mažiau rentabili kalboms kaip Java, turincioms
    stipru tipu tikrinima, todel galincioms rasti
    daug klaidu kompiliavimo metu
  • (Ka galima pasakyti apie statines analizes
    naudojima?)

37
Nagrinejamos temos
  • Tikrinimo ir atestavimo planavimas
  • Programines irangos peržiura
  • Automatizuota statine analize
  • Bedefektinis programines irangos kurimas

38
Bedefektinis (cleanroom) programines irangos
kurimas
  • Pavadinimas kilo iš cleanroom procesu
    puslaidininkiu gamyboje. Naudojama defektu
    išvengimo, bet ne defektu pašalinimo filosofija
  • Toks programines irangos kurimo procesas
    remiasi
  • palaipsniniu kurimu
  • formalia specifikacija
  • statiniu tikrinimu, naudojant korektiškumo
    argumentus
  • statistiniu testavimu, nustatant programos
    patikimuma
  • (Kuo remiasi bedefektinis programines irangos
    kurimas?)

39
Bedefektinis procesas
Formalus sistemos specifikavimas
Klaidu perdarymas

Strukturines programos konstravimas
PI kurimo pakopu apibrežimas
Formalus kodo patikrinimas
Kurimo pakopu integravimas
Operacinio profilio kurimas
Statistiniu testu projektavimas
Integruotos sistemos testavimas
(Kaip grafiškai atvaizduojamas bedefektinis
procesas?)
40
Bedefektinio proceso charakteristikos
  • Formali specifikacija, naudojanti busenu perejimo
    modeli
  • Palaipsninis kurimas
  • Strukturinis programavimas - naudojamos ribotos
    valdymo ir abstrakcios konstrukcijos
  • Statinis tikrinimas, naudojantis griežta peržiura
  • Statistinis sistemos testavimas
  • (Kas budinga bedefektiniam procesui?)

41
Palaipsninis kurimas
Išaldyta specifikacija

Formali specifikacija
Reikalavimu nustatymas
Programines irangos pristatymas
PI kurimo pakopos formavimas


Užklausa apie reikalavimu pasikeitima
(Kas budinga palaipsniniui kurimui bedefektiniam
procese?)
42
Formali specifikacija ir peržiura
  • Sistemos specifikacija yra busenu modelis, o
    peržiuros proceso metu tikrinama, ar programa
    atitinka ši modeli
  • Programavimo metodas apibrežtas taip, kad
    atitikimas tarp modelio ir sistemos butu aiškus
  • Matematiniai argumentai (ne irodymai) naudojami,
    norint padidinti pasitikejima peržiuros procesu
  • (Koks santykis tarp peržiuros ir formaliu
    specifikaciju bedefektinio proceso metu?)

43
Bedefektinio proceso grupes
  • Specifikaciju grupe. Atsakinga už sistemos
    specifikacijos kurima ir palaikyma
  • Kurimo grupe. Atsakinga už programines irangos
    kurima ir tikrinima. Programine iranga NERA
    vykdoma ir net nekompiliuojama šio proceso metu
  • Sertifikacijos grupe. Atsakinga už programines
    irangos statistiniu testu kurima. Naudojamas
    patikimumo augimo modelis, norint nustatyti, kada
    patikimumas yra tinkamas
  • (Kokios darbo grupes išskiriamos bedefektinio
    proceso metu?)

44
Bedefektinio proceso vertinimas
  • IBM rezultatai buvo labai ispudingi tik su keletu
    klaidu pristatytose sistemose
  • Nepriklausomas ivertinimas rodo, kad procesas yra
    nedaug brangesnis nei kiti metodai
  • Mažiau klaidu negu tradiciniame kurimo procese
  • Nevisai aišku, kaip ši metoda panaudoti aplinkoje
    su mažiau motyvuotais arba žemesnes
    kvalifikacijos inžinieriais
  • (Kaip vertinamas bedefektinis procesas?)

45
Esminiai aspektai
  • Patikra ir atestavimas nera tas pats. Patikra
    parodo atitikima specifikacijai Atestacija
    parodo, kad programa atitinka užsakovo norus
  • Testo planas turi buti pagrindas testavimo
    procesui
  • Statinio tikrinimo metodai apima patikrinima ir
    programos analize, norint surasti defektus

46
Esminiai aspektai
  • Programos peržiura yra labai efektyvi klaidu
    suradimui
  • Peržiurimas programos kodas yra tikrinamas mažu
    grupiu, norint surasti programines irangos
    defektus
  • Statines analizes priemones gali surasti
    programos anomalijas, kurios gali nurodyti
    klaidas, esancias kode
  • Bedefektinis procesas priklauso nuo palaipsninio
    kurimo, statinio tikrinimo ir statistinio
    testavimo
Write a Comment
User Comments (0)
About PowerShow.com