Príklad
Firma používa systém na správu dokumentov, v ktorom pracujú zamestnanci, vedúci oddelení a administrátori.
Bežný zamestnanec môže dokument zobraziť, ale nemôže ho upraviť ani odstrániť. Editor môže dokument zobraziť a upraviť. Administrátor má oprávnenie dokument zobraziť, upraviť aj odstrániť.
Tester musí overiť nielen to, či sa používateľovi zobrazujú správne tlačidlá, ale aj to, či systém zakázanú operáciu odmietne pri priamom volaní API alebo pri otvorení upravenej URL adresy.
Ako otestovať
1. Príprava používateľov a dokumentov
- Vytvor používateľov s rôznymi oprávneniami, napríklad view, edit a delete.
- Priprav dokumenty s rôznou úrovňou prístupu.
- Skontroluj, či sú oprávnenia priradené konkrétnemu používateľovi, skupine alebo role.
- Zaznamenaj očakávané oprávnenia do jednoduchej matice používateľ – dokument – povolená operácia.
2. Oprávnenie na zobrazenie dokumentu – view
- Over, že oprávnený používateľ vidí dokument v zozname.
- Skontroluj, či môže otvoriť detail a náhľad dokumentu.
- Over, či môže dokument stiahnuť, ak je s oprávnením view povolené aj sťahovanie.
- Skontroluj, že neoprávnený používateľ dokument nevidí vo výsledkoch vyhľadávania ani v priečinku.
- Skús otvoriť dokument pomocou priamej URL adresy.
- Over, že systém vráti primeranú správu, napríklad Nemáte oprávnenie na zobrazenie dokumentu, a neodhalí citlivé údaje.
3. Oprávnenie na úpravu dokumentu – edit
- Over, že používateľ s oprávnením edit môže zmeniť názov, obsah alebo metadáta dokumentu.
- Skontroluj, či môže nahrať novú verziu dokumentu.
- Over, že používateľ iba s oprávnením view nevidí alebo nemôže použiť tlačidlo na úpravu.
- Skús odoslať požiadavku na úpravu priamo cez API.
- Over, že zakázaná zmena sa neuloží ani čiastočne.
- Skontroluj, či sa úspešná zmena zaznamenala do histórie verzií a auditného logu.
4. Oprávnenie na odstránenie dokumentu – delete
- Over, že používateľ s oprávnením delete môže dokument odstrániť.
- Skontroluj, či systém vyžaduje potvrdenie odstránenia.
- Over, či ide o trvalé odstránenie alebo presun do koša.
- Skontroluj, že používateľ bez oprávnenia delete dokument odstrániť nemôže.
- Skús odstránenie cez upravenú URL adresu alebo priame API volanie.
- Over, že zamietnutý pokus nezmení stav dokumentu.
- Skontroluj auditný záznam: kto, kedy a ktorý dokument odstránil alebo sa o odstránenie pokúsil.
5. Kombinácie oprávnení
- Otestuj používateľa, ktorý môže dokument zobraziť, ale nemôže ho upraviť ani odstrániť.
- Otestuj používateľa s právami view a edit, ale bez práva delete.
- Over, či oprávnenie edit automaticky zahŕňa aj view.
- Skontroluj správanie pri neúplnej alebo neplatnej kombinácii oprávnení.
- Over, čo sa stane, ak používateľ získa právo cez viacero skupín alebo rolí.
- Skontroluj, ktoré pravidlo má prednosť pri kombinácii povolenia a zákazu.
6. Zmena oprávnení počas relácie
- Prihlás používateľa a následne mu zmeň oprávnenia.
- Over, či sa zmena prejaví okamžite alebo až po novom prihlásení.
- Skontroluj správanie dokumentu, ktorý má používateľ otvorený počas odobratia oprávnenia.
- Over, že používateľ po odobratí práva nemôže uložiť rozpracovanú zmenu.
- Skontroluj aktualizáciu menu, tlačidiel a dostupných akcií.
7. Kontrola backendu a API
- Over, že oprávnenia nekontroluje iba používateľské rozhranie.
- Pošli požiadavku na zobrazenie, úpravu a odstránenie dokumentu s rôznymi používateľskými účtami.
- Skontroluj návratové kódy, napríklad
200,401,403alebo404. - Over, že odpoveď neobsahuje obsah dokumentu ani jeho citlivé metadáta.
- Skontroluj, že používateľ nemôže zmeniť identifikátor dokumentu a získať prístup k cudziemu súboru.
8. Audit a bezpečnosť
- Over zaznamenávanie úspešných aj zamietnutých operácií.
- Skontroluj používateľa, čas, dokument, vykonanú operáciu a výsledok.
- Over, že auditný záznam nemôže meniť bežný používateľ.
- Skontroluj, či systém neprezrádza existenciu dokumentu neoprávnenému používateľovi.
- Over správanie po vypršaní relácie alebo používateľského tokenu.
Prístupové práva nemožno testovať iba podľa toho, ktoré tlačidlá sa zobrazujú v aplikácii. Rozhodujúce je, či systém kontroluje každú operáciu aj na backende a či neoprávnený používateľ nedokáže zákaz obísť priamym volaním API alebo upravenou URL adresou.
