FIAB

10
1. Testarea claselor, a ierarhiilor de clase si a interactiunilor Testarea unei clase = verificare dacă implementarea corespunde specificaţiei Implementare corectă= fiecare instanţă a clasei se comportă corect Moduri de testare: pe baza executarii cazurilor de test ; Efort pt identificarea cazurilor de test şi dezvoltarea driverelor de test; revizii - afectate de eroarea umană;Mai mult efort la testarea regresivă Dezvoltatorul testeaza daca implementarea rasp specificatiei sau daca se fac op in plus Testam După dezvoltare, înainte de folosirea clasei în program. Prin dezvoltarea unui driver de test care creează instanţele clasei şi mediul ptr instanţe potrivit executarii cazurilor de test.Testam Operaţii, tranziţii de stări şi pe bază de specificaţie şi pe bază de implementare Testarea ierarhiilor de clase - testarea claselor ce intra in mecanismul de mostenire. Mostenirea permite refolosirea specificatiei si implementarii une clase pre- existente(superclasa) de catre o subclasa. Testarea se face ptr fiecare metoda/operatie mostenita. Mecanism de refolosire a codului. Mulţimea cazurilor de test ale unei clase repr cazuri de test şi ptr subclase. Ptr subclase apar de obicei cazuri de test adiţionale. Implementarea driverelor de testare ptr subclase PACT: arhitectura paralelă pentru testarea claselor. Mod de org a claselor Tester într-o ierarhie de moştenire. Testarea subclaselor - Se testează vârful ierarhiei – ptr interfaţa comună, apoi se specializează driverul de test ptr fiecare subclasă Interacţiunile se testează între obiecte la momentul execuţiei. Interacţiunile pot implica: Mesaje unidirecţionale / Mesaje bidirecţionale Interacţiunile se pot testa: Integrate în aplicaţie sau într-un mediu construit artificial de Tester O interacţiune între obiecte este o cerere din partea unui obiect (transmiţător) către altul (receptor) de a executa una dintre operaţiile receptorului şi toată procesarea efectuată de receptor ptr a completa cererea. Inainte de testarea interactiunii trebuiesc validate testele individuale ale claselor implicate in interactiuni.

description

Cursuri Fiabilitate

Transcript of FIAB

1. Testarea claselor, a ierarhiilor de clase si a interactiunilorTestarea unei clase = verificare dac implementarea corespunde specificaiei Implementare corect= fiecare instan a clasei se comport corect Moduri de testare: pe baza executarii cazurilor de test ; Efort pt identificarea cazurilor de test i dezvoltarea driverelor de test; revizii -afectate de eroarea uman;Mai mult efort la testarea regresiv Dezvoltatorul testeaza daca implementarea rasp specificatiei sau daca se fac op in plusTestam Dup dezvoltare, nainte de folosirea clasei n program. Prin dezvoltarea unui driver de test care creeaz instanele clasei i mediul ptr instane potrivit executarii cazurilor de test.Testam Operaii, tranziii de stri i pe baz de specificaie i pe baz de implementare

Testarea ierarhiilor de clase - testarea claselor ce intra in mecanismul de mostenire. Mostenirea permite refolosirea specificatiei si implementarii une clase pre-existente(superclasa) de catre o subclasa. Testarea se face ptr fiecare metoda/operatie mostenita. Mecanism de refolosire a codului.Mulimea cazurilor de test ale unei clase repr cazuri de test i ptr subclase. Ptr subclase apar de obicei cazuri de test adiionale. Implementarea driverelor de testare ptr subclase PACT: arhitectura paralel pentru testarea claselor. Mod de org a claselor Tester ntr-o ierarhie de motenire. Testarea subclaselor - Se testeaz vrful ierarhiei ptr interfaa comun, apoi se specializeaz driverul de test ptr fiecare subclas

Interaciunile se testeaz ntre obiecte la momentul execuiei.Interaciunile pot implica: Mesaje unidirecionale / Mesaje bidirecionale Interaciunile se pot testa: Integrate n aplicaie sau ntr-un mediu construit artificial de TesterO interaciune ntre obiecte este o cerere din partea unui obiect (transmitor) ctre altul (receptor) de a executa una dintre operaiile receptorului i toat procesarea efectuat de receptor ptr a completa cererea.Inainte de testarea interactiunii trebuiesc validate testele individuale ale claselor implicate in interactiuni.ntruct n procesarea unei singure metode pot aprea interaciuni cu mai multe obiecte, dorim s vedem impactul acestor interaciuni asupra strii interne a obiectului receptor i asupra obiectelor cu care acesta este asociat .Testarea interaciunilor pe baza specificaiei e mai direct dect cea pe baza implementrii.

2. Testarea modelelor de analiza si design are multiple avantaje: Cazurile de test se pot identifica devreme, chiar odat cu determinarea cerinelor;Testarea timpurie ajut analitii i design-erii s neleag i s exprime mai bine cerinele, i s se asigure c acestea sunt testabile; Erorile se pot detecta devreme n procesul de dezvoltare, economisind timp, bani i efort;Cu cat problemele sunt descoperite mai rapid, cu atat vor fi mai uor i mai ieftin de reparat;Testarea modelului asigur ca testerii i dezvoltatorii s aib o nelegere consistent a cerinelor sistemului.Inspecia dirijat: tehnic de verificare a modelelor i de validare a lor n raport cu cerinele Scop: indentifica ce lipsete din model, conform specificaiei. Repararea unei greeli la testarea sistemului este de o sute de ori mai costisitoare dect repararea sa n timpul analizei

Modelul V de testare: system modals-system implementation; Arhitecture modals subsystem integration; Component modals - component implementaion

Acoperire model de analiz: crearea unui obiect al unei clase e suficient ptr a considera c am acoperit clasa. Acoperire la nivel de design: fiecare metod a clasei s fie folosit de cazurile de test ptr a considera clasa acoperit Verificarea regresiv: rularea de scenarii din incrementele precedente:Scenarii care au euat la testarea din incrementele precedente i Scenarii care acoper arii cu cea mai mare probabilitate s se fi schimbat ptr a ncorpora funcionalitile incrementului curent Criterii de verificare a MUT (Model Under Test):1. Corectitudine: Verifica daca modelul este corect2. Completitudine: Verifica daca modelul este o repr complet a info3. Consisten: Verifica daca modelul este consistent intern i consistent cu modelul su de bazModelul de analiz al domeniului - info despre domeniul cunoaterii aplicaiei.Nivele de design: arhitectural, dinamic, detaliat. Modelul design-ului arhitectural descrie structura de baz a aplicaiei definind modul de relaionare i coninutul interfeelor. Modelul de design detaliat al claselor descrie semantica precis a fiecrei clase i identific apartenena acesteia la o interfa arhitectural

3. Concepte de baza in fiabilitatea softwareFiabilitatea reprezint caracteristica unui produs exprimat prin probabilitatea ndeplinirii funciei cerute, n condiii date, pe o durat de timp specificat". Conceptul de caracteristic. Fiabilitatea este deci o caracteristic a unui produs, care poate fi determinat i caracterizat, la fel ca i celelalte caracteristici tehnice i exprimat cantitativ. Fiabilitatea trebuie s aib acelai statut ca i celelalte caracteristici tehnice: s fie considerat ncepnd de la concepie-proiectare, s fie urmrit corespunztor n fabricaie i s fie atestat prin ncercri sau prin alte metode de estimare. Conceptul de probabilitate. Fiabilitatea este exprimat printr-o probabilitate i are o valoare cuprins ntre 0 i 1. Fiind o probabilitate se determin pe baza metodelor statisticii matematice i a teoriei probabilitilor. Acest lucru constituie nc un obstacol important n asimilarea acestei caracteristici n mod corespunztor. n special ptr concepie i proiectare fiabilitatea trebuie privit ca o caracteristic de baz care sa orienteze i s optimizeze soluia constructive. Conceptul de funcie. Fiabilitatea presupune satisfacerea unei funcii cerute. Acest lucru implic definirea corect a funciei pe care trebuie s o realizeze. n cazul unui element simplu funcia nseamn ceea ce trebuie s fac, n cadrul ansamblului din care face parte. Conceptul de condiii de funcionare repr ansamblul condiiilor ptr care a fost proiectat produsul. Se face observaia ca n multe cazuri noiunea de fiabilitate nu este interpretat corect, mai ales atunci cnd valoarea fiabilitii este estimat prin prisma unor ncercri de laborator n care solicitrile nu sunt corelate cu cele din utilizarea normala.Un produs ideal are fiabilitatea corespunztoare condiiilor date. Necunoaterea unor condiii face ca fiabilitatea sa nu aib valoarea dorita.De aici decurg o serie de condiii care privesc pe de-o parte utilizarea, iar pe de alta parte concepia si proiectarea. Conceptul de durat de funcionare.Fiabilitatea presupune o durata de funcionare exprimata n uniti de timp sau un numr de cicluri, conectri, manevre etc.

4. Modele analitice de estimare si predictie a fiabilitatii unui program curs101. Modele Markov Tehnica puternica de analiza a sistemelor probabilistice complexe. Format din stari + tranzitiile intre stari .Multimea de stari mutual exclusiveDef model Markov - O multime de ecuatii: tranzitiile probabilistice dintr-o stare in alta Distributia initiala de probabilitate a starilor in proces Tranzitiile depind numai de starea curenta i Modele Markov cu timp continuu- permit tranzitii intre stari in orice momentModele Markov cu timp discret- toate tranzitiile dintre stari apar la intervale fixate de timp Un process Markov poate fi omogen(stationar) P{X(t+s)=j| X(s)=i}=Pij(t), sau neomogen (nonstationar). Pij(t) depinde de momentul de timp s.Procesele de nastere si de moarte sunt cazuri speciale de procese Markov in care tranzitiile din starea j sunt permise numai catre starile vecine j+1 si j-1. Cel mai simplu proces(n-m) cel Poison.2. Procese Poisson neomogene(Goel & Okumoto)Model de tip Poisson ce foloseste nr de defecte pe unitatea de timp- ca variabile aleatoare Poisson independenteBaza modelelor ce folosesc numarul observat de defecte pe unitatea de timp3. Modelul SchneidewindIdee: rata curenta a defectelor poate prezice mai bine, decat ratele observate in trecutul indepartatProcesul ratei caderilor poate sa se modifice in timp, astfel ca datele curente pot reprezenta un model mai bun al fiabilitatii actualeSchneidewind are 3 modele din care analistul poate alege, in functie de importanta pe care o da datelor ca functii de timp1.Folosim numarul defectelor din toate cele n perioade de timp2.Ignoram complet numarul caderilor de la prima perioada pana la perioada s-13.Folosim numarul cumulativ de defecte din intervalele 1 pana la s-1, ca prim element al sirului de date si in continuare, nr de defecte individuale ptr intervalele s pana la n 4. Modelul Duane (modelul la putere)E unul din primele modele, propus initial pt fiabilitatea hwDuane a observat ca daca se realizeaza graficul ln-ln ptr rata cumulativa a caderilor versus timpul cumulativ de testare, acest grafic se apropie foarte mult de o linie dreaptaAcest comportament poate fi repr ca un proces Weibull: un proces Poisson neomogen in care functia de intensitate a caderilor are aceeasi forma ca rata hazardului pentru o distributie Weibull.Acelasi comportament a fost observat si ptr sistemele sw, si a fost folosit ptr a construi diferite estimari de fiabilitate pe baza acestui rezultat (t)=t , >0, >0; (=1-> proces Poisson omogen)5. Modelul Musa-Okumoto logaritmic PoissonModelul Poisson logaritmic propus de Musa si Okumoto este un alt model care a fost folosit extensiv. Este tot un proces Poisson neomogen cu functia de intensitate ce descreste exponential cu aparitia caderilor. Rata exponentiala de descrestere reflecta viziunea ca acele caderi descoperite mai devreme au un impact mai mare in reducerea functiei de intensitate a caderilor decat cele intalnite mai tarziu. Se numeste logaritmic intrucat nr asteptat de caderi in timp este o functie logaritmica.

6. Modele bayesiene.Predictia si cresterea fiabilitatii sunt vazute intr-un cadru bayesianModelele anterioare permit modificari in fiabilitate doar la aparitia unei caderi, si majoritatea considera ca defectele au acelasi impact.Un model bayesian reprezinta un punct de vedere subiectiv: daca nu apar caderi pe perioada observarii sw, fiabilitatea trebuie sa creasca, -reflectand cresterea increderii utilizatorului in program. Fiabilitatea este, asadar, o reflectare atat a numarului de defecte detectate, cat si a duratei de operare fara caderi. Aceasta reflectare este exprimata in termenii unei distributii apriori ce reprezinta datele din trecut, si ai unei distributii aposteriori ce incorporeaza date trecute si curenteIn plus, in modelul bayesian diferite defecte pot avea impact diferit asupra fiabilitatii programului (numarul de defecte e mai putin important decat impactul lor)Daca un program are un anumit numar de erori intr-o parte a codului foarte rar utilizata, este acest program mai putin fiabil decat unul care are un singur defect intr-o parte frecvent folosita? NU.Modelatorul bayesian considera ca e mai important sa observi comportamentul sw decat sa estimezi numarul de defecte din el ,deci, in acest cadru, o statistica foarte importanta este MTTFO parte esentiala a metodologiei este distributia apriori ce reflecta parametrii modelului pe baza datelor anterioare. Se pleaca de la ideea ca trebuie sa incorporam informatii trecute. Aceasta distributie este, in acelasi timp, si pct forte dar si pct slab al modelului bayesian. 7. Modelul de crestere a fiabilitatii Littlewood-VerrallCel mai bun exemplu al acestei clase de modele. Un model de inceput bun (candidat initial)Modelul tine cont de posibila introducere de erori in procesul de corectare, permitand programului sa devina mai putin fiabil decat inainte, cu o anumita probabilitateCu fiecare corectura de eroare, se genereaza o secventa de programe sw, fiecare obtinandu-se din predecesorul sau prin incercarea de a repara defectulDin cauza incertitudinii, versiunea noua poate fi mai buna sau mai slaba decat cea veche (deci este introdusa inca o sursa de variatie).Aceasta se reflecta in parametrii ce definesc distributiile timpilor caderilor, care sunt, de data aceasta, aleatoare. Distributia timpilor caderilor este, ca si in modelele anterioare, exponentiala cu o anumita rata a caderilor, dar aceasta rata a caderilor este aleatoare, -nu o constanta ca la celelalte modele. Se presupune ca aceasta rata are o distributie gamma-reflectata apriori8. Modele binomialePt modelele binomiale avem presupunerile:Exista un numar fixat de defecte N in sw, la inceputul perioadei de observatie a software-uluiCand un defect e detectat e inlaturat imediatDaca Ta este variabila aleatoare ce denota timpul de cadere al defectului a, atunci Ta cu a=1,,n sunt v.a. independente si identic distribuite- Fa(t) pentru toate defectele ramasePentru modelul binomial avem un numar fixat de defecte, la inceput, N, in timp ce pentru tipul Poisson e numarul de caderi ce poate fi eventual descoperit pe o perioada infinita de timp9. Modelul Musa: timpul de executie de bazaCel mai raspandit model de fiabilitate. A fost primul model care a folosit timpul real de executie al unei componente sw pe un calculator. Timpii dintre caderi sunt exprimati in unitati de procesare computationala- nu in timpul calendaristic.10. Modelul cresterii fiabilitatii de forma S- YamadaModelul S de crestere a fiabilitatii este o ilustrare a clasei modelelor bazate pe distributia gamma. Totusi, numarul de caderi pe unitatea de timp e un model tip Poisson, un model cu caderi finite

5. Tehnici de analiza predictiei Nu exista un unic model ce poate fi recomandat unui potential utilizatorNiciun model nu da rezultate precise in orice circumstante; mai mult, nu este posibil sa identificam apriori acele seturi de date care sunt potrivite pentru un anumit modelAcesta este un dezavantaj major al tehnicilor analiticeProblema de predictie (estimam pentru a putea prezice in viitor timpul pana la urmatoarea cadere)Predictii pe termen mai lung: incercarea de a estima (distributia) timpul(ui) necesar ptr a atinge o fiabilitate propusa sau fiabilitatea la care se ajunge dupa o perioada anume de testare

Fractia de verosimilitate precventialaMetoda foarte generala de comparare a preciziei secventelor predictiveTehnica arata care anume dintr-o pereche de predictii e mai precisa, intr-un inteles foarte general (fara sa furnizeze evidenta directa despre precizia absoluta a acesteia)Exista doua metode, de a face o predictie la stadiul jDistributia reala- functia de densitate a probabilitatilor a timpului pana la urmatoarea cadere,si estimarile sale- predictiile provenind din cele doua modele

Functia de distributie de probabilitate reala, fj(t), a timpului pana la urmatoarea cadere Tj, impreuna cu estimarile sale si Din cele doua modele A si B. A este, in mod evident, o predictie mai buna a adevarului decat B.Graficul uFractia de verosimilitate precventiala e o tehnica complet generala de a compara precizia mai multor predictii aflate in competitie, dar nu ne spune nimic despre precizia obiectiva a fiecarei predictii in parte. Graficul u: o prima tehnica generala de depistare a diferentelor obiective dintre comportamentul de caderi prezis si cel real. Scopul graficului u este de a determina daca predictiile sunt, in medie, aproape de distributiile reale Fj(t)Graficul yGraficul u trateaza un tip de deviatie a predictorilor de la realitate: un tip de erori sistematice, si suficient de consistente; dar exista si alte tipuri de erori care raman nedetectate de graficul uExista situatii in care modelul este optimist in predictiile timpurii si pesimist in predictiile mai tarzii, astfel ca la medie, deviatiile se anuleaza in metoda graficului u, in care ordonarea in timp a uj dispare si distanta KS e mica.

6. Principii in ingineria fiabilitatii softwareTrebuie planificate strategii de recuperare dupa caderi.Trebuie sa existe mecanisme care sa recunoasca operatia unei caderi, sa recupereze dupa posibilitati datele si sa previna o executie ulterioara bazata pe date eronate. Sa se foloseasca elemente de sortari redundante. Pot creste fiabilitatea doar daca nu sunt copii identice. Trebuie dezvoltate independent de grupuri diferite. Sa se identifice ariile de risc ridicat tehnici ptr arii de risc foarte ridicat. Analiza modurilor si efectelor caderilor tehnica bottom-up care incepe de la definirea modurilor de cadere ale fiecarei componente determinand cum pot cauza caderea sistemului. Analiza arborilor de defecte tehnica top-down , incepe de la nivelul caderilor sistemului si succesiv, descompune si relationeaza cu caderile la nivel de susisteme si componente.