GiPlan Test document
Inleiding
Software (en dus ook een interface) moet niet alleen voldoen aan de functionele eisen die er aan gesteld zijn, maar moet natuurlijk ook gebruikersvriendelijk zijn. We maken software omdat het een toegevoegde waarde moet leveren en dat is alleen mogelijk als er goed mee gewerkt kan worden. Anders kan het gebeuren dat de software nooit gebruikt zal worden.
Het controleren of ons programma aan de daarvoor bestemde eisen voldoet bestaat eigenlijk uit twee delen:
- Cognitieve aspecten: Het moet eenvoudig en bijna vanzelfsprekend voor de gebruiker zijn hoe hij met het programma om moet gaan. Verder is een goede ondersteuning aan de gebruiker de beste manier om te voorkomen dat incorrecte invoer plaats vindt, in plaats van alleen een afhandeling van fouten.
- Robuust, correct en volledig: Het programma moet correct functioneren, dat wil zeggen bij correcte invoer en een bevestiging moet het het gewenste resultaat opleveren en bij incorrecte invoer moeten de gegevens niet aangepast worden en een melding aan de gebruiker gegeven worden. De gebruiker mag niet in staat zijn foutieve handelingen te verrichten.
We maken hier onderscheid tussen het functioneel testen van het programma (correctheid) en de bruikbaarheid voor de gebruiker (cognitief). Dit onderscheid zal in dit document en tijdens onze aanpak duidelijk gehandhaafd worden. Dit zijn aspecten die vanuit verschillende oogpunten bekeken moeten worden, toch beide onmisbaar voor het goed functioneren van onze software en daarom beide deel van het 'testen' zoals wij dat hier noemen.
Projectaanpak
Ten eerste wordt met behulp van testcases en gesprekken met de klant bepaald welke handelingen een gebruiker moet kunnen uitvoeren. Na het gezamenlijk bedenken en tekenen van een interface wordt het programma gecodeerd. Hierna wordt eerst gekeken of het prototype deels functioneel is om een goede indruk te geven van wat wel en niet mogelijk is. Vervolgens worden buitenstaanders erbij gehaald om te kijken of onze interface goed bruikbaar is. De interface wordt aangepast aan de hand van de opmerkingen. De volledige functionaliteit wordt aan de interface gehangen; dan kunnen we weer correctheids testen uitvoeren en vragen we andere personen (ergonoom of toekomstige gebruiker) voor de laatste op en aanmerkingen. In dit document wordt beschreven hoe we alle stappen en tests hebben uitgevoerd en wat daarvan de resultaten zijn.
Testaanpak
Na coderen volgt meteen per onderdeel een unit test. Hier wordt gecontroleerd of alle mogelijkheden van die unit, vaak beperkt tot een pagina of procedure, naar verwachting werken. Eerst wordt correct testinvoer bepaald. We stellen vast wat de verwachte uitvoer is, en we controleren vervolgens of dat ook daadwerkelijk het geval is. Dit herhalen we met verschillende invoer, zowel foutieve als goede. Vervolgens gaan we in een iets grotere context testen, namelijk of de units binnen een module goed samen werken en correcte gegevens uitwisselen. Reageert het programma zoals verwacht voor alle gevallen, dus bij zowel correcte als incorrecte invoer, dan concluderen wij dat de module correct functioneert.
Nadat we zelf het programma getest hebben, laten we eerst een paar buitenstaanders er naar kijken. Voor de initieële test is gekozen voor een leek en een ergonoom. De leek achter ons programma zal aan ons duidelijk maken of het makkelijk te gebruiken is (intuïtief). De ergonoom zal ons kunnen vertellen of de interface ergonomisch verantwoord is en wat er eventueel voor verbetering vatbaar is om het gebruik te versoepelen. Na input van deze twee mensen zullen we ons programma (na eventueële aanpassingen) laten testen door echte gebruikers die het schoolLAN-systeem al gebruiken. Zij zullen ons kunnen vertellen, uit ervaring, of onze keuzes en oplossingen praktisch zijn geweest. Volgens de planning zullen we dan nog ruimschoots tijd hebben om de laatste op en aanmerkingen te verwerken.
Gegevens invoer
Unit testen begint bij het controleren of de variabelen van onze programma goed gezet worden. Door middel van een 'echo' drukken wij de in gevoerde gegevens af op het scherm en controleren of ze overeen komen. Zo bleek dat wij aan het formaat in de namen wat aanpassingen moesten plegen zodat de spaties in een naam goed voorkomen in verband met tussenvoegsels. Vervolgens wordt er of een iets hoger niveau gekeken of de doorgeven van gegevens tussen de verschillende modules ook goed gaat. We testen eerst kleine delen van het systeem, en terwijl we het product opbouwen, testen we hoe de delen samen werken en of het programma in zijn geheel nog goed functioneert. We controleren per veld of er voldoende foutmeldingen geleverd worden bij verkeerde invoer. Hier volgt een lijstje van de mogelijke fouten die kunnen optreden bij het invoeren van gegevens voor het systeem:
Mogelijke verkeerde invoeren:
- voornaam ontbreekt
- achternaam ontbreekt
- gebruikersnaam ontbreekt
- gebruikersnaam bestaat niet alleen uit DOS-toegestaande tekens
- gebruikersnaam bevat een spatie
- wachtwoord ontbreekt
- wachtwoord is niet tussen de 6 en 8 cijfers
- wachtwoord bevat een spatie of andere verboden tekens (!@#$%^&*())
- gebruiker waar naar verwezen wordt bestaat niet
- file waar naar verwezen wordt bestaat niet of link klopt niet
- etc...
Waar we geen rekening mee hoeven te houden:
Aanmaken van een gebruiker die al bestaat wordt vanuit het systeem automatisch goed afgehandeld. In principe hebben we gebruikersnaam als unieke eigenschap van ieder gebruiker. Het aanmaken van een nieuwe persoon met zelfde gebruikersnaam resulteert in een naam in de vorm van gebruikersnaam2, waardoor het nog een unieke veld blijft en geen gegevens overschreven worden.
Verder hebben we relatief grote invoer velden gekozen voor de invoer van namen. Mocht een naam groter zijn dan de toegestane lengte, dan wordt deze afgekapt. De gebruiker kan zelf ook niet meer tekens invoeren dan toegestaan is en ziet dus rechtstreeks op het beeld wat er precies ingevoerd zal worden.
Testen
Om de uiteindelijke test uit te voeren worden voor alle mogelijke modules van onze interface, per pagina, alle randvoorwaarden voor de invoer af gegaan. We controleren of we de verwachte uitvoer krijgen bij zowel correcte als incorrecte invoer. Is dat zo, dan voldoet dat onderdeel aan deze test.
We creeëren een aantal batchfiles. We controleren het gedrag bij invoer van alle randgevallen, waar een voor een op gecontroleerd wordt. Op zo'n manier creeëren we een bestand met niet alleen alle mogelijke foute alsook een goede invoer, maar ook combinaties van fouten. Het testen is nu eenvoudig. We bekijken de functionaliteit dat de interface bied, en voeren de batch file in waar mogelijk. Bij een handmatige invoer voeren we dezelfde gegevens uit de batch file in, maar dan een voor een handmatig. Voldoet het programma aan deze test dan gaan we er echt vanuit dat die prima zal functioneren bij normaal gebruik.
Test resultaten
Hier moeten de resultaten van de unit testing kort opgesomd worden en geconcludeerd met PASS / NO PASS:
- zoeken: unit, module en initieële functionaliteits test PASS
- aanmaken:
- handmatig: unit, module en initieële functionaliteits test PASS
- batch: unit, module en initieële functionaliteits test PASS
- verplaatsen: PASS
- promote: PASS
- verwijderen:
- handmatig: unit, module en initieële functionaliteits test PASS
- batch: unit, module en initieële functionaliteits test PASS
- Image maken: PASS
Input van buitenstaanders
Hier volgt een kort verslag van de ervaringen van buitenstaanders na het werken met onze interface.
Ervaring leek
We hebben een computerleek gevraagd achter onze interface plaats te nemen. Na een korte uitleg van de scenario, wie hij als gebruiker voorstelt en wat het doel van het systeem is hebben we hem wat met onze interface laten spelen. Hier volgen een aantal opmerkingen die wij over onze interface kregen:
- De foutmeldingen vallen niet zo op
- Let op taalgebruik, engels en nederlands wordt door elkaar heen gebruikt
- Bij gebruikers-aanmaken staat een verhaal dat echt te lang is
- In zoeken is het scrollen een beetje vervelend, de verzend knop staat namelijk alleen onder aan
- Leuke plaatjes en mooie rustige kleuren
- De balken boven- en onderin het scherm zijn heel handig
- Mist een knopje 'clear' om formulier schoon te maken en opnieuw te beginnen
- Bij gebruikers aanmaken is het verhaal niet helemaal correct, wachtwoord moet nog aan veel meer eisen voldoen
Ervaring ergonoom
We hebben een derdejaars student cognitie wetenschap gevraagd om even naar onze interface te kijken. We hebben hem de opdracht gegeven om een aantal voorgestelde gebruikers te verwijderen en toe te voegen zonder extra uitleg hoe het moest. Het is de ergonoom zonder veel moeite gelukt om zijn opdracht te voltooien. Hier zijn een aantal punten van verbetering die hij tijdens het gebruik met onze systeem opmerkte.
Algemeen:
- De icoontjes moeten in grootte proportioneel zijn aan de afstand die afgelegd moet worden om deze te bereiken
- Wat gebeurt er als iemand zijn wachtwoord vergeten is? Moeten wij ook de mogelijkheid bieden om een wachtwoord aan te passen?
Gebruikers (index):
- Een heel groot deel van het scherm wordt niet voldoende gebruikt en is heel wit. Oplossing is om het menu wat te centreren en eventueel wat groter maken.
- Kopjes zoals 'aanmaken', 'verwijderen' moeten wat groter zodat duidelijk is dat ze kopjes zijn en niet selecteerbare opties.
Aanmaken:
- De knop 'zoek' waar in instructies naar verwezen wordt heet 'Zoeken', pas de knop aan.
- Uitleg moet drastisch ingekort worden, de gebruiker heeft geen zin om zo'n lang verhaal te lezen.
- Een sterretje (*) voor verplichte velden of voor niet verplichte velden om verhaal in te kunnen korten. Dit is ook makkelijker en overzichtelijker voor de gebruiker.
- Gebruikersgroep: met de pijltjes kun je onder IE in drop-down box niet bij 'team' komen door foutmelding bij '---', kan dit niet anders opgelost worden? Eventueel gewoon '---' weg laten.
- Wachtwoord wordt magisch aangepast als je 'nee' in bevestiging kiest. Het wordt dan vervangen door gebruikersnaam.
- Als de referentie leeg is wordt er automatisch referentie van groep 1 ingevoerd terwijl misschien wel groep 6 gekozen is. Een lege invoer moet trouwens gewoon een foutmelding opleveren omdat het geen optionele veld is.
Aanmaken batch:
- Hoe moet de file eruit zien (comma-seperated)?
- 'Bestand uploaden' -> 'gebruikers toevoegen' of 'verzenden' Het is hier
niet geheel duidelijk dat 'bestand uploaden' een soort 'go' is maar meer
een extra optie mogelijkheid.
- Tekst veld voor de link moet 2 a 3 keer groter, en daarmee ook 'browse' knop verder naar rechts verschuiven.
Zoek functies:
- Sorteren op alfabetisch volgorde op gebruikersnaam of achternaam.
- De standaard referentie moet duidelijker weergegeven worden in de zoek-lijst, nu staat alleen de gebruikersnaam en is geheel onduidelijk wat daar de bedoeling van is.
Verwijderen:
- Het verhaal verwijst naar een 'Zoek' maar in het scherm komt 'Lijst' voor. Synchroniseer dat.
- Bij een 'deny' na het invoeren van gegevens moet vermeld worden dat de gegevens niet verwerkt zijn.
Ervaring bestaande gebruikers
Bestaande gebruikers van het systeem hebben onze interface getest. Hier worden hun ervaringen gedocumenteerd.
Deel Gebruikers:
Onze test-gebruikers werken met een systeem van schoolLAN waar alleen docenten gebruik van maken om in te loggen. Leerlingen loggen momenteel niet in. De functionaliteit die wij beiden is dus meer aanvullend op wat ze nu hebben. Na een kort uitleg van de functionaliteit en doel van het programma hebben we de gebruikers aan het werk gezet.
Gebruikers Aanmaken
- evt. uitleg dat team gebruikt moet worden om de docenten in te plaatsen
- gebruikers vragen of meerdere subgroepen per groep mogelijk zijn. Nee, schoolLAN is daarop niet gebouwd en is ook niet nodig omdat alle subgroepen per groep uiteindelijk dezelfde instelling zullen krijgen
- uitleg over verzenden knop misschien wat lager plaatsen op scherm want uitleg is niet zichtbaar als je bij knop zit
in het bevestig formulier duidelijker melden dat het een bevestiging is en de acties dus nog niet hebben plaatsgevonden
Gebruikers Aanmaken batch
- meld erbij dat het wel een .txt platte text bestand moet zijn
- foutmelding over incorrect formaat bestand, meld dat het dus een platte tekst moet zijn
- mogelijkheid: allemaal met succes toegevoegd als alle gebruikers toegevoegd zijn in plaats van een hele lange lijst waar de gebruiker doorheen moet zoeken om te zien dat het allemaal goed gegaan is
- ze vinden het achterliggende principe moeilijk te gebruiken, problemen met name bij het zorgen dat de platte tekst van goede formaat is
- foutmeldingen vinden zij super duidelijk en leuk!!!
- foutmelding bij verkeerde invoer mogen wat duidelijker.. evt welk regel nummer het betreft in de text bestand
- foutmelding 'entry': engels uit verhaal halen
Gebruikers Verwijderen
Selectie mogelijkheden uitleggen (per groep, per persoon, groep met uitzonderingen)
Gebruikers Promoveren
Uitleg aan gebruiker wanneer verplaatsen handiger is dan promoveren
Gebruikers Verplaatsen
Er zitten nog een aantal bugs in dit onderdeel
Systeem
- Algemeen uitleg wat een image is en waar het voor dient, gemiddelde docent weet dat niet
- Knopje 'verder' anders noemen, consequent met rest van interface, bv. verzenden
- Hele scherm eventueel kunnen opvullen om resolutie te vergroten. Helaas wordt het dan naar ons mening heel lelijk breed en daardoor onleesbaar (en ergonomisch onverantwoord), beter is dat de gebruiker handmatig resolutie aanpassen
- Eventueel na aanpassingen weer een tabel weergeven met uiteindelijke resultaten van de aanpassingen
Algemeen:
- Toevoegen uitleg aan gebruiker dat [bla] een referentie is waar die in lijsten getoond worden
- Importeren van huidige gebruikers zal zonder al te veel moeite kunnen plaatsvinden. Ze vinden het handig dat het met een batch file kan, maar toch moeilijk om te begrijpen hoe het moet (genereren van textfile zal eventueel problemen opleveren)
- Wel bereid te leren wat een image is en hoe die te maken, maar niet technischer dan dat.
- Probeer Engels en moeilijke computer jargon te vermijden.
- Na voltooide actie gebruikersoverzicht laten zien, ipv terug gaan naar het vorige formulier.
- Standaard knop om gebruikersoverzicht te tonen, op elke pagina waar
pijltje naar beneden om onderaan scherm te komen, net als bestaande knopje omhoog (echt een pijltje, niet een ander icoon).
- Zeker tevreden over de functionaliteit als de visuele aantrekkelijkheid
- Zelfstandig kunnen begrijpen wat alles is, doet en hoe in te voeren (behalve technisch dingen zoals image maken)
- Ze lopen zonder uitleg wel extra opties mis, maar missen geen functionele dingen
- Structuur en opbouw interface vinden ze duidelijk en overzichtelijk
- Ze vinden het allemaal heel mooi en makkelijk
- Path-links vinden ze heel handig
Aanpassingen aan interface adv commentaar
Algemeen:
- Foutmeldingen: alle foutmeldingen worden op elke scherm op precies de zelfde locatie weergegeven in een rode kleur. Verder worden alle foutmeldingen die van toepassing zijn direct in een keer weergegeven. Voorafgaande aan dit lijstje is nu een knal rood uitroepteken geplaatst om de aandacht van de gebruiker te trekken.
Aanmaken:
- De tekst is aangepast en er zijn * geplaatst bij de verplichte velden.
- De splitsing tussen groepen en het team in de drop down box is verwijderd aangezien dit problemen gaf bij selectie met het toetsenbord.
- Er zat een fout in waardoor het wachtwoord werd vervangen door de gebruikersnaam. Dit is inmiddels verholpen.
- Het invoeren van een lege referentie levert nu ook een foutmelding op.
Aanmaken batch:
- Er is een tekst toegevoegd waarin wordt uitgelegd wat het formaat van het bestand moet zijn. De eindgebruiker moet nog kijken hoe hij dit wenst.
- De tekst op de knop 'Bestand uploaden' is veranderd in 'Gebruikers toevoegen'.
- Het tekst veld voor de link is een stuk groter gemaakt.
Zoek functies:
- Sorteren op alfabetisch volgorde op gebruikersnaam of achternaam is wellicht een nuttige uitbreiding, maar zit op dit moment niet in de planning.
Verwijderen:
- De tekst op deze pagina is aangepast.
- Bij een 'deny' ga je direct terug naar de vorige pagina en is het meteen zichtbaar dat de gebruikers niet verwijderd zijn.
Conclusie
In eerste instantie hadden de verschillende testers nogal wat commentaar op ons product. Dat betrof niet zozeer de functionaliteit, want die was dik in orde, als wel de interface van het systeem. Nadat we alle opmerkingen verwerkt hebben, zijn alle testers behoorlijk tevreden over het systeem. Ook de klant, schoolLAN, was er tevreden over.
|