Week 12 – Testing en bugs

Functioneel gezien is World Explorer af. Maar tijdens een presentatie vrijdag bleek dat de site hier en daar nog wat ruwe kantjes vertoonde, die afgewerkt moesten worden. Voor het bijschaven van deze ruwe kantjes zal ik toch nog enkele uren nodig hebben, maar hierna kan ik de hele week focussen op de uitbreidingen.

Usability

Ook Usability in de WebAdmin bleek een issue: we deden een test waarbij mijn stagebegeleider Chris moest zoeken hoe hij een bezienswaardigheid aan een stad kon toevoegen via de WebAdmin. Het resultaat was erger dan ik verwacht had:

Er was een knop nieuw die gesleept moest worden naar een citytrip waarna de nieuwe bezienswaardigheid werd aangemaakt. Als deze knop gesleept werd naar ‘citytrips’ werd er een nieuwe citytrip gemaakt. Dit was echter niet intuïtief genoeg.Ook stond er geen enkele verwijzing naar bezienswaardigheden in de module.

Dus hebben we besloten om 2 nieuw-knoppen te maken: “nieuwe citytrip” en “nieuwe bezienswaardigheid”, waarbij de 2de knop nog steeds naar een citytrip gesleept moest worden, maar dat het duidelijker was voor de end-user hoe een nieuwe bezienswaardigheid aangemaakt moet worden. Deze test was dus een waardevolle les voor mij in Usability.

Iets dergelijks zal ik echter in al mijn WebAdmin-modules moeten aanpassen, waar toch de nodige tijd in kruipt. Toch hoop ik dat ik na het weekend hiermee klaar kan zijn: op die manier heb ik een volledige week om zoveel mogelijk uitbreidingen te realiseren.

Minder Secure dan verwacht

Deze week stond ik ook versteld van de snelheid waarop Kim mijn site door zijn knieën heeft doen gaan. De fout zat in de paginatie. Op sommige pagina’s op World Explorer maakte ik gebruik van http://www.example.com/onderdeel/paginanummer/ – urlstructuur. Dankzij PDO, prepared statements en de is_numeric-functie waren de queries wel beschermd tegen SQL-injection, maar niet tegen sql-errors.

De query zag er ongeveer zo uit:

“SELECT * FROM voorbeeld LIMIT :start, :limit”

Aan dit statement werden de start- en limit parameter meegegeven, waarbij een getal op basis van het paginanummer werd meegegeven aan de start-parameter.

Wat Kim echter deed was het aanpassen van de url naar: http://www.example.com/onderdeel/-2/

Omdat een tabel begint te tellen bij rij 0, en niet vanaf een negatief nummer, genereerde dit een SQL-error waardoor een hoop nuttige informatie voor de hacker te grabbel kwam. Dit was snel opgelost door een extra validatie te doen op het paginanummer, maar als Kim mij dit niet getoond had, zou ik deze error nooit hebben gevonden.

Tot slot

De tijd begint op te korten, mijn stage is bijna voorbij… De voorbije 12 weken zijn enorm snel gegaan, ik heb er nog maar 2 te doen, maar ook die zullen snel voorbij zijn. Ik verwacht dat de komende 2 weken de meest hectische van ze allemaal gaan worden. Maar we doen ons best en tegen het einde van de week hoop ik over de uitbreidingen te kunnen schrijven.

Een reactie op “Week 12 – Testing en bugs”

  1. Niki zei op 29/05/2010 om 11:43,

    Zo zie je dat usability echt een belangrijk aspect is van de ontwikkeling. Technisch mag alles perfect werken, maar als de gebruiker er niets mee is… Goed dat je dit ook “ervaren” hebt in je stage. Ik weet zeker dat dit je enorm zal helpen naar de toekomst toe…
    Oja, trouwens ook nog: Do not -ever- underestimate the power of our h@x0r K1m ;)
    Volgens mij krijgt hij elke site door zijn knieën, dus no worries! (maar er wel op letten, uiteraard :p )


Reageren