Tehnologia UniTESK
Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de
versiunea revizuită pe 22 decembrie 2020; verificarea necesită
1 editare .
UniTESK (Unified Testing & Specification ToolKit) este o tehnologie pentru testarea software -ului și hardware -ului bazată pe specificații formale , dezvoltată la Institutul de Programare a Sistemelor al Academiei Ruse de Științe . Tehnologia este o combinație de tehnici bine stabilite care pot fi aplicate în diferite combinații, combinându-se și întărindu-se reciproc. Acest lucru face ca tehnologia să fie flexibilă și personalizabilă pentru procesele de dezvoltare existente în toate etapele ciclului de viață al dezvoltării software, de la colectarea și analizarea cerințelor până la întreținere.
Baza pentru emiterea de verdicte privind corectitudinea comportamentului sistemului testat sunt specificațiile contractuale sub formă de condiții pre- și post- condiții , scrise în extensii ale limbajelor de programare tradiționale precum C , Java și care permit realizarea unui verdictul complet automat. Specificațiile sunt o reprezentare a cerințelor funcționale pentru un sistem. Forma caietului de sarcini și criteriile de acoperire bazate pe acestea asigură trasabilitatea cerințelor .
Folosite cu succes în practică, tehnicile de construire a testelor bazate pe traversarea graficului de stare pot minimiza semnificativ cantitatea de cod de program creat manual , asigurând în același timp diversitatea și masivitatea setului de teste.
Tehnicile de extragere a datelor și criteriile de acoperire bazate pe cerințe permit un control flexibil asupra dimensiunii setului de testare și generarea directă pentru a acoperi cerințele specifice, reducând astfel la minimum timpul de execuție a setului de teste.
Un strat intermediar special disponibil în tehnologie vă permite să personalizați rapid suita de testare pentru diferite implementări cu aceeași funcționalitate.
Toate aceste tehnici oferă testare de înaltă calitate, trasabilitate a cerințelor și un nivel ridicat de reutilizare a componentelor suitei de testare cu un minim de lucru manual și timp acceptabil de execuție a testelor.
Pașii tehnologiei
Definirea părții sistemului testat
La acest pas, se determină funcționalitatea testată, adică o parte din capacitățile sistemului în cauză care trebuie testată și interfața testată, adică modul de acces la capabilitățile testate.
Definirea și analiza cerințelor pentru sistemul testat
Pe baza
analizei tuturor datelor de intrare, a comunicării cu clientul, experții și utilizatorii, cerințele pentru sistemul testat sunt identificate și sistematizate. Care sunt prezentate în continuare sub forma unui model formal.
Definirea și analiza cerințelor pentru exhaustivitatea testării
Sunt evidențiate criteriile de completitudine a testării, care se reflectă în modelul formal.
Dezvoltarea testelor
Dezvoltarea surselor de date de testare și a modelului de testare în general.
Tehnici de bază .
Enumerarea mulțimilor finite, enumerarea combinațiilor, enumerarea valorilor limită și a celor apropiate acestora, enumerarea valorilor nodale și apropiate, enumerarea structurilor gramaticale folosind generatoare modulare, enumerarea cu filtrare, enumerarea graficelor și secvențelor atribuite.
Automate finite, sisteme de tranziție etichetate, reprezentarea implicită a modelelor de automate, testarea strat cu strat a modelelor complexe.
Dezvoltarea adaptoarelor care leagă testele de implementarea testată
Depanarea și rularea testelor
Analiza rezultatelor testelor
Istoricul creației
- În 1994, Institutul de Programare a Sistemelor al Academiei Ruse de Științe (ISP RAS) , în baza unui contract cu Nortel Networks , a dezvoltat o metodologie și un set de instrumente pentru automatizarea testării interfeței programului de aplicație (API) . Prima aplicare practică a metodologiei a fost nucleul sistemului de operare în timp real.
- În perioada 1994-1999 ISP RAS a creat și instalat mai multe versiuni ale tehnologiei KVEST-1 în Nortel Networks.
- În 1998-1999, crearea tehnologiei KVEST-2 a fost finalizată.
- În 2000, tehnologia KVEST a fost adaptată pentru utilizare în proiecte C și C++ .
- În 1999, ISP RAS a început să dezvolte o tehnologie de verificare de nouă generație - UniTESK (Unified Testing & Specification ToolKit).
Aplicare în practică
Tehnologia a fost aplicată cu succes în multe proiecte. Cel mai interesant:
Suport instrumental
- CTESK este un instrument de testare a software-ului implementat în limbajul C.
- CTESK Community Edition este o versiune gratuită, complet funcțională a instrumentului CTESK pentru platforma Linux .
- JavaTESK este un instrument de testare a software-ului implementat în limbajul Java .
- C++TESK este un instrument de testare a software-ului implementat în limbajul C++ , precum și a modelelor de echipamente digitale sincrone în limbaje de descriere hardware .
- Pinery - conceput pentru a genera date de testare ale unei structuri complexe bazate pe descrieri sub formă de gramatici (astfel de descrieri includ, de exemplu, BNF , expresii regulate , DTD etc.).
- OTK (Optimizer Testing Kit) este un instrument pentru testarea sistemelor software care lucrează cu date care au o structură complexă. Utilizarea OTK este cea mai eficientă atunci când se testează compilatoare sau alte sisteme formale de procesare a textului. Accentul principal în OTK este pe construirea unei varietăți de date de testare de intrare.
- SynTESK (Syntax Testing Kit) este un instrument pentru testarea parserilor (parserilor ) limbajelor formale. SynTESK vă permite să verificați conformitatea implementării parserului și specificarea unui anumit limbaj formal, adică dacă analizatorul recunoaște acest limbaj formal particular.
- MicroTESK (Microprocessor Testing Kit) este un instrument pentru dezvoltarea automată a generatoarelor de programe de testare pentru microprocesoare și alte dispozitive programabile.
Literatură
- Kulyamin V. V. . Criterii de acoperire a testelor bazate pe structura specificațiilor contractului // Proceedings of ISP RAS, UniTESK Approach: Results and Perspectives. 14(1):89-107, 2008 [1]
- Grinevich A. I. , Kulyamin V. V. , Markovtsev D. A. , Petrenko A. K. , Rubanov V. V. , Khoroshilov A. V. Utilizarea metodelor formale pentru a asigura conformitatea cu standardele software // Proceedings of ISP RAS, Asigurarea fiabilității și compatibilitatea sistemelor Linux. 10:51-68, 2006 [2]
- Burdonov I. B. , Kosachev A. S. , Kulyamin V. V. Algoritmi neredundanți de traversare a graficului direcționat: caz nedeterminist //Programare. 30(1):2-17, 2004 [3]
- Burdonov I. B. , Kosachev A. S. , Kulyamin V. V. Utilizarea mașinilor cu stări finite pentru testarea programelor //Programare. 26(2):61-73, 2000 [4]
- Bourdonov I. , Kossatchev A. , Kuliamin V. și Petrenko A. . UniTesK Test Suite Architecture // Proc. din FME 2002. LNCS 2391, pp. 77-88, Springer-Verlag, 2002. ISBN 3-540-43928-5
- Bourdonov IB , Demakov AV , Jarov AA , Kossatchev AS , Kuliamin VV , Petrenko AK și Zelenov SV . Extensie de specificații Java pentru dezvoltarea testelor automate //Proceedings of PSI'2001. Novosibirsk, Rusia, 2-6 iulie 2001. LNCS 2244:301-307, Springer-Verlag, 2001. ISBN 978-3-540-43075-9 [5] (link nu este disponibil)
- Bourdonov I. , Kossatchev A. , Petrenko A. și Galter D. . KVEST: Generare automată de suite de testare din specificații formale //FM'99: Metode formale. LNCS 1708, Springer-Verlag, 1999, pp. 608-621. ISBN 3-540-66587-0 [6] (link indisponibil)
Link -uri