Apoteket AB: Fel i sökfunktion visar betydelsen av testning

3/10/2009

En stor styrka med Google Custom search är att man kan skapa en sökfunktion till sin webbsajt som ger sökresultat väldigt bra för besökaren. Samtidigt tar det bokstavligen inte mer än ett par minuter att skapa en sökfunktion med Google Custom search. När jag själv söker information t.ex. på stora myndigheter med eget gjorda sökfunktioner att jag istället får gå till Google.se och göra sökning med site. Vanliga problem:

  • Dåliga sökresultat som inte visar det jag söker efter.
  • Svårighet att hantera å, ä och ö i sökorden.
  • Visar felaktigt formaterade resultatsidor.

Givetvis är kanske Google Custom Search mest lämpad för lite äldre sajter som indexeras snabbt och djupt av Google. Problem kan tänkas uppstå för nya sajter som är breda och djupa även om min upplevelse är att Google indexerar väldigt snabbt numera. Deras tilläggsregister (supplemental index) som åtminstone fanns förr ser jag heller inte berör sökning med site-operatorn eller Google Custom search på något sätt som är relevant. Fallen när Google Custom Search missar något en faktiskt besökare söker efter är därför sannolikt mycket ovanligt.

Apoteket AB: Väldigt trasig sökfunktion

Den sökfunktion Apoteket AB har är en som jag regelmässigt under flera år upplevt varit väldigt trasig och dålig. Tidigare problem jag minns är irrelevanta sökresultat där vissa grupper av innehåll inte kom med och det var sådant som jag och utgår från jag de flesta övriga egentligen sökte efter. Ett bra exempel var faktaartiklar. De hade visare problem med dublicerat innehåll och problem med att hantera å, ä och ö.

Det är ytterst sällan jag eftersöker något på Apoteket AB. Informationen saknar referenser och uppdateras inte trots att de i flera fall är många år gamla och rör ämnen där ny kunskap finns (t.ex. artiklar om någon sjukdom publicerad i deras tryckta tidning). Några gånger om året blir det emellertid att jag behöver eftersöka något hos dem och jag brukar då först pröva deras sökfunktion för att se vad den har för gamla eller nya problem.

Nedan har vi ett problem jag tror är nytt men som ändå är väldigt typiskt för Apoteket AB. De klarar inte att hantera å, ä och ö i sökningar:

1. Jag söker på urinvägsinfektion eftersom jag vill se vilka receptfria produkter som säljs i samband med faktagranskning av en artikel. Detta ger ett fungerande sökresultat även om standardresultatet blev för "Info & nyheter" istället för produkter (något som har ändrats om jag kommer ihåg rätt). Apoteket AB visar "Visar träff 1-10 av 27 träffar" (känns som ett lustigt sätt att uttrycka sig på):

2. Istället för att direkt gå till "Produkter" klickar jag på "Nästa" vis av erfarenhet vet jag att chansen är god att något är trasigt där eftersom sökfunktionen än så länge verkat fungera acceptabelt. Det visar sig mycket riktigt också vara fallet:

UTF-8 i en URL: Procent-kodning används

Vad är det som har hänt? Apoteket AB skapar följande URL där sökordet är angivet:

http://www.apoteket.se/rd/d/3172/a/6420/aposearch/urinv%25E4gsinfektion/PerformSearch/true/tab/articles/search_query_keyword/urinv%E4gsinfektion/pg/1

Deras egen sajt klarar inte av kodningen av urinvägsinfektion och menar att denna inte är UTF-8. Vad säger då UTF-8 standarden? Där finns "ä" i 0x0080 - 0x00FF : Latin-1 Supplement (128) och har värdet 0xE400. I html skrivs 0xE400 antingen som ä (hexadecimal) eller ä (decimal). I en URL används "procent-kodning" d.v.s. UTF-8 anges med %. Enligt detta ska "ä" kodas till %E4. Kodning två i URL från Apoteket AB är korrekt kodad (%25E4) medan "ä" första gången urinvägsinfektion istället kodats enligt %25E4 vilket dekodas till %E4 (d.v.s. inte ä utan % E 4 men utan mellanslag). Om det är detta som orsakar problemet vet jag inte.

Apoteket AB använder Resin?

Ska man tro informationen som gavs i felmeddelandet använder Apoteket AB Resin (kompilerad juni 2004). Sedan använder de Microsoft-IIS/6.0 enligt vad webbsajten själv uppger för klienter men att båda används tillsammans med olika syftet är inte orimligt. Jag har ingen erfarenhet av Resin alls och det känns som ett tämligen ovanligt val. Wikipedia skriver så här om den:

"Resin® is a software product, a web server and Java application server from Caucho Technology. Resin® is provided in two versions, Resin® Professional and Resin® Open Source ("Open Source" may be a misnomer - see Licensing section below).

According to Caucho Technology marketing material, Resin® Open Source is suitable for hobbyists, developers, and low traffic websites that do not need the performance and reliability enhancements of Resin® Professional. Resin® Professional adds features and enhancements commonly needed in a professional production environment."
Från: Resin server (en.wikipedia.org)

Mer information finns i:

Som förövrigt är ett till bra exempel på hur värdelös egna sökfunktioner ofta blir. Sökning på UTF-8 och URL gav inget sökresultat där men däremot på Google.com med site-operatorn.

UTF-8 problem på Resin: En enkel förklaring

Med Google.com hittade jag förövrigt den här sidan med sökningen resin utf-8 url unsupported vilken kanske förklarar problemet Apoteket AB har:

Testfall är bra att ha

Om detta verkligen är orsaken eller inte kan jag inte avgöra och jag prövade inte skriva om deras URL. Min erfarenhet av Apoteket AB på webben är att de kontinuerligt har sådana här fel och mer grundläggande problem i deras publiceringsplattform tillsammans med dåliga rutiner för kvalitetsuppföljning gissar jag på är den gemensamma orsaken.

Problemen hör till sådant standardiserade testfall alltid enkelt bör hitta före driftsättning. Även om man inte haft testfall tidigare tycker man att fortsatta problem borde leda till införande av sådana.

Intressant att läsa på www.apoteket.se och www2.apoteket.se (deras företagssajt)

Sökresultatet för urinvägsinfektion (första sidan som gav ett söksvar) har vi nedan:

Mer om vad Apoteket AB egentligen är för något går att läsa i:

En del information finns om diverse kvalitetsmål och dyligt bl.a. avseende information till "kund" finns på deras företagssajt (www2.apoteket.se). Inte på någon plats såg jag att man tog upp och berörde informationen på webbplatsen. Däremot berörs tillsynes komplett alla andra projekt de startat upp genom åren t.ex. hälsocoacher, vårdotek med sjuksköterska, hälsotorg med hälsokontroll, kundcentrum med rådgivning via e-post och telefon, plusmedlemmar där kund som är medlen får poäng på inköp m.m. som kostar tämligen mycket årligen och som jag någon gång ska ta och försöka följa upp hur använt det egentligen är. Men om någon ser någon relevant information så posta gärna en kommentar:

Google Custom Search

Följande artiklar på SEOTaktik kan vara bra att läsa:

Om Google Custom Search från Google själva:

Villkoren för användning skiljer sig mellan kommersiella aktörer och olika "icke-kommersiella aktörer". Apoteket AB är en kommersiell aktör och jag tror inte att de uppfyller kraven för att vara det som kallas "Your non-profit, government, or educational organization". I så fall är valet som jag förstår det mellan att:

  1. Visa sökresultat med reklam man själv tjänar pengar på.
  2. Visa sökresultat med reklam som uteslutande Google tjänar pengar på.
  3. Ej visa sökresultat med reklam och istället betala för tjänsten.

Fall tre är det enda som är aktuellt för Apoteket AB om jag tolkar deras styrandedokument rätt.

2 kommentarer
Anonym sa...

Resin hade:
http://web.nvd.nist.gov/view/vuln/detail?execution=e2s1

2009-03-10 05:56
Anonym sa...

E-postade dem faktiskt för några timmar sedan om kvalitetsproblemet jag tog upp. Jag skrev också att det inte är otroligt att säkerhetsproblem finns också.

Oavsett XSS (om det är aktuellt vilket jag inte vet men jag lade också märke till just den där när jag sökte på Resin i CVE): Jag menar alla deras återkommande fel med kodningen av saker och ting.

De behöver kvalitetsriktlinjer, seriös testning, QA och en ordentlig testning av hela *****.

2009-03-10 06:07

Kommentera