Publikcis Portl tesztelse UML bzis modellezs s analzis
Publikációs Portál tesztelése UML bázisú modellezés és analízis Csapat: UML 7 (Percze Dániel, Rajnai Zoltán, Ráth István, Tóth Dániel, Vágó Dávid) 2005. 23.
Change User Account unit tesztek 1. Teszteset Bemenet Elvárt eredmény Rights Verification Felhasználó nem rendelkezik admin jogokkal UNAUTHORIZED visszatérési érték Invalid Usernames Nem létező felhasználó név átadása FAILED visszatérési érték Mismatched passwords Nem egyező jelszavak INVALID visszatérési érték Change User Password Helyesen kitöltött Account. Info SUCCESS visszatérési érték, sikeres login az új jelszóval Add/Remove Usernames Helyesen kitöltött Account. Info nemlétező usernévvel SUCCESS visszatérési érték, új Username hozzárendelve a megadott Accounthoz, remove után: hozzárendelés megszüntetve
Change User Account unit tesztek 2. Teszteset Bemenet Elvárt eredmény Rename to Existing Account Helyesen kitöltött Account. Info létező loginnévvel ACC_EXISTS visszatérési érték Rename Account Helyesen kitöltött Account. Info nemlétező loginnévvel SUCCESS visszatérési érték, új Account létrejötte, régi megszűnte Rename Account To Empty String Account. Info üres loginnévvel INVALID visszatérési érték Username clash Már hozzárendelt Username tartalmazó Account. Info USERNAME_CLASH visszatérési érték Remove Only Username Egyetlen usernév törlése NOT_ENOUGH_USERNAMES visszatérési érték
Change User Account CFG Legend: Branch Coverage: A B Invalid Usernames: AX C A: Find Current User By Name B: Check Admin Rights D C: Check Account. Info Validity D: Find Account to Change E: Check Account Name Clash, Username Count E X F: Hash Password F G: Get a Username (If Renaming) H: Connect to New Account I: Remove Old Account G J: Change Password, If Not Renaming X: Exit Point H I J Right Verification: ABX Mismatched Passwords: ABCDX Change User Password: ABCDEFJX Rename To Existing Account: ABCDEX Rename Account: ABCDEF(GH)*IJX Username Clash: ABCDEF(GH)*X Remove Only Username: ABCDEX
Upload Publication unit tesztek 1. Teszteset Bemenet Elvárt eredmény Upload with Empty Title Üres cím mező Publication. Info. Incomplete visszatérési érték Upload with Empty File Name Üres fájlnév/URL mező Publication. Info. Incomplete visszatérési érték Upload Year Domain Év > 1900 kényszer tesztelése Lásd külön fólián Upload Type Domain Típus domén teszt Lásd külön fólián Upload with No Authors Üres szerzők mező Publication. Info. Incomplete visszatérési érték
Upload Publication unit tesztek 2. Teszteset Bemenet Elvárt eredmény Upload Already Existing Publication (OCL Constraint Test) Már létező publikáció feltöltése („cím, év, szerzők, típus négyes azonosít egy publikációt”-kényszer teszt) Publication. Already. Exists visszatérési érték Upload with Non-Existent Author Még nem felvett szerző a szerzők mezőben Upload. Successful visszatérési érték, új User. Name létrejötte, asszociáció létrejötte Upload with already Existing Author Már felvett szerző a szerzők mezőben Upload. Successful visszatérési érték, asszociáció létrejötte Upload with Non-Existent Keywords Még nem felvett kulcsszó a kulcsszavak mezőben Upload. Successful visszatérési érték, új Keyword létrejötte, asszociáció létrejötte Upload with already Existing Keywords Már felvett kulcsszó a kulcsszavak mezőben Upload. Successful visszatérési érték, asszociáció létrejötte
Upload. Publication - Domain matrix Boundary Test case / Value Expected Result (Return value) Variable Condition Type year >1899 On YD-1 / 1899 Publication. Info. Incomplete Off YD-2 / 1900 Upload. Successful Typical In Összes többi / 1999 Upload. Successful >=1 On TD-* / 1 Upload. Successful Off TD-1 / 0 Publication. Info. Incomplete On TD-* / 12 Upload. Successful Off TD-4 / 13 Publication. Info. Incomplete In TD-* / 3 -11 Upload. Successful type =<12 Typical
Upload Publication CFG Branch Coverage: Legend: A B Empty Title: AX C A: Check Publication. Info Validity Empty File. Name: AX B: Generate Unique ID D C: Check ID Uniqueness Type Domain: AX D: Get a Pub with same Title E: Check Year Clash No Authors: AX X F: Check Type Clash E G: Check Authors Clash F H: Create Publication I: Get username M J: Create/Associate User. Name G K: Get keyword L: Create/Associate Keyword K M: Set Publication Data X: Exit Point Year Domain: AX H I L J Already Existing Pub: ABC(DEFG)*X Non-existent Author: ABC(DEFG)*H(IJ)*KMX Already existing Author: ABC(DEFG)*HIKMX Non-existent Keywords: ABC(DEFG)*HI(KL)*MX Already existing Keywords: ABC(DEFG)*HIKMX
Add User Account unit tesztek 1. Teszteset Bemenet Elvárt eredmény Non-existent user Nem létező felhasználó hajtja végre FAILED visszatérési érték Unauthorized user Admin joggal nem rendelkező felhasználó hajtja végre UNAUTHORIZED visszatérési érték Mismatched passwords Nem egyező jelszavak INVALID visszatérési érték Null Account. Name A létrehozandó fiók neve null INVALID visszatérési érték Zero long Account. Name A létrehozandó fiók neve 0 hosszú INVALID visszatérési érték string
Add User Account unit tesztek 2. Teszteset Bemenet Elvárt eredmény Null User. Names A létrehozandó fiókhoz tartozó usernames tömb null INVALID visszatérési érték Empty User. Names A létrehozandó fiókhoz tartozó Usernames tömb üres NOT_ENOUGH_USERNAMES visszatérési érték Account Name Exists A létrehozandó fióknév létezik ACC_EXISTS visszatérési érték User Name Clash A létrehozandó fiókhoz tartozó felhasználói név már hozzá van rendelve egy másik fiókhoz USERNAME_CLASH visszatérési érték Success A sikeres lefutáshoz szükséges paraméterek SUCCESS visszatérési érték, új Account és User. Name létrehozása
Add User Account CFG Legend: Branch Coverage: A B Non-existent User: AX C A: Find Current User By Name Unauthorized User: ABX B: Check Admin Rights D C: Check Account. Info Validity D: Check User. Names != null E: Check User. Names not empty X E F: Get a User. Name (If Renaming) Mismatched Passwords: ABCX Null Account. Name: ABCX Zero Long Account. Name: ABCX G: Check if Username is used by an existing account F H: Hash Password Null User. Names: ABCDX Empty User. Names: ABCDEX I: Create a new Account G X: Exit Point H I User. Name clash: ABCDE(FG)*X Success: ABCDEFGHIX
Change Publication Data unit tesztek 1. Teszteset Bemenet Elvárt eredmény Invalid Role Egy nem létező felhasználó kívánja módosítani az adatokat Actor. Unauthorized eredmény Unauthorized Role Egy olyan létező felhasználó kíván módosítani, aki nem társszerzője a publikációnak Actor. Unauthorized eredmény Coauthor Role Egy társszerző kívánja módosítani az adatokat Modification. Successful eredmény, és adatok változnak Admin Role Egy nem társszerző, de adminisztrátor jogú felhasználó kíván adatokat módosítani Modification. Successful eredmény, és adatok változnak Bogus Publication Egy nem létező publikáció adatait akarjuk módosítani No. Such. Publication eredmény
Change Publication Data unit tesztek 2. Teszteset Bemenet Elvárt eredmény Invalid Publication Data Hibás adatra próbáljuk meg változtatni a publikálás évét Publication. Info. Incomplete eredmény Already Exists A módosítás után a publikáció adatai ütköznének egy másik, már létező publikációval Publication. Already. Exists eredmény Already Exists (tricky) Csak rossz szándékkal elérhető ütközés generálása Publication. Info. Incomplete eredmény Change Less Author Módosítás úgy, hogy csak a szerzők halmazában legyen különbség egy létezőtől Modification. Successful eredmény és adatok megváltozása New author and keyword Módosítás, ahol új, az adatbázisban még nem létező szerzőt és kulcsszót adunk a publikációhoz Modification. Successful eredmény, és az új szerző és kulcsszó létrehozása
Change Publication Data CFG A Legend: B A: Find Publication C Branch Coverage: B: Check coauthors C: Check admin rights D D: Validate new publication data E: Find nearly equivalent publication in the database Invalid, unauthorized role: ABX, ACX X E F: Check author set difference G: Change basic data (title, year, type) H: Change authors (add new authors to the database) I: Change keywords (add new keywords to the database, if required) Bogus Publication: AX F G H X: Exit Point I Coauthor role: ABDEGX Invalid publication data: ACDX Already exists: ACDEFX New author and keyword: ACDEGHIX
Delete User Account unit tesztek 1. Teszteset Bemenet Elvárt eredmény Current User Null Nincs megadva a törlést végző felhasználó FAILED visszatérési érték Current User Empty Törlést végző felhasználó neve érvénytelen üres string FAILED visszatérési érték Current User Not Admin A törlést végző felhasználó nem jogosult törölni. UNAUTHORIZED visszatérési érték Target User Null Nincs megadva a törölni kívánt fiók azonosítója INVALID visszatérési érték Target User Empty A törölni kívánt felhasználói fiók azonosítója érvénytelen, üres string INVALID visszatérési érték
Delete User Account unit tesztek 2. Teszteset Bemenet Elvárt eredmény Target User “Admin” A kezdeti „Admin” felhasználói fiók törlése. Az „Admin” nem szabad hogy törölhető legyen. INVALID visszatérési érték Succeed 1. Helyesen kitöltött Account. Info és a törlést admin szerepű felhasználó végzi SUCCESS visszatérési érték Succeed 2. A fenti folytatása A kiválasztott Accountnak a törlés után nem szabad léteznie
Delete User Account CFG Branch Coverage: A B Legend: C Target invalid: AX D A: Check target validity (not null/””) B: Find current user E C: Check Admin rigths D: Find target Account to delete E: Get Username related to target F: Remove username's reference to target G: Remove all references to usernames from target X Current user not admin: ABCX Target account does not exist: ABCDX F G H: Remove target X: Exit Point Current user invalid or nonexistent: ABX H Remove username references: ABCD(EF)*X Remove target : ABCD(EF)*GHX
Unit tesztek kódfedése Metódus Unittesztek száma Sorfedés change. User. Account 8 81. 82% add. User. Name. To. Account 3 75. 61% remove. User. Name. From. Account 4 82. 93% upload. Publication 10 85. 72% delete. Publication 6 53, 55% get. Pub. Info 4 93. 10% add. User. Account 10 84. 21% may. Modify 4 77. 78% change. Publication. Data 10 94. 05% delete. Account 8 87. 88%
Unit tesztek által felfedett hibák Metódus Hiba leírása Unit test Publication. Manager. Bean. upload. Publication() authors == null kezelése, authors. size < 1 esetén jelezzen Upload with No Authors test Publication. Manager. Bean. upload. Publication() File. Name == null || File. Name. length() kisebb mint 1 esetén ne legyen valid -- OCL Constraint! Upload With Empty File. Name test Account. Info. is. Valid() Account. Info. java: : is. Valid() üres login-névre false- Rename Account ot adjon vissza To Empty String test Publication. Manager. Bean. may. Modify() Nem-létező publikáció-azonosító helyes kezelése Bogus Publication Change Publication. Manager. Bean. change. Publication. Data() Szerzők tömb halmazként kezelése hibás Already Existing Publication Change (tricky) Account. Manager. Bean. add. User. Account() User. Name == null kezelése Add. User. Account null User. Names Account. Manager. Bean. delete. User. Account() ai. user. Name == null és ai. username==”” kezelése Delete. User. Account Target User null test
Köszönjük a figyelmet! © UML 7 2005
- Slides: 20