Blogg | Knowit

En kvalitetsdag oppsummert

Skrevet av Kristian Brandser | Oct 6, 2020 10:00:00 PM
 

På årets CIO Forum Test før sommeren oppfordret Norsk Testforum v/Mili O. til deling av fagutvikling utenfor eget hus. Dette er noe jeg lenge har tenkt at vi skal bli bedre på. Det er fint å være flink på fag, men det er enda bedre å dele det gode budskapet sitt med andre.

Takk for påminnelsen Mili!

 

I Knowit Quality samler vi alle konsulentene våre til en “inne-dag” (Quality Day) en fast dag i måneden hvor vi skaper rom og tid for felles kompetansebygging. Det er fritt valg av temaer man kan fordype seg i. De som vil jobbe med det samme oppfordres til å jobbe i grupper. Det eneste kravet som stilles til deltakerne på fagdagen er at det du lærer deles med noen andre, andre konsulenter, kunder, samarbeidspartnere eller.. andre.

Vanligvis samles vi på kontoret og starter dagen med en god felles frokost. Deretter arbeider vi i grupper eller individuelt med ulike fagtema, for så å presentere resultatet for hverandre på slutten av dagen. På kvelden har vi gjerne hatt avdelingsmøte og/eller gått ut for en matbit, noe godt å drikke eller bare blitt inne på kontoret og hatt spillkveld. (Både VR-briller, Exploding Kittens og Carcassone er blitt firma-favoritter).

I Covid-19 dagene har det blitt vanskeligere å arrangere Quality Day, men når forholdene har tillatt det, har vi likevel fått anledning til å gjennomføre noen samlinger, innenfor gjeldende smittevernsregler.

Photo by You X Ventures on Unsplash

Noen av temaene vi har arbeidet med er:

  • Python bibliotekene Panda og SciPy, spennende for generering av syntetiske testdata
  • Et dypdykk i JSON og Javascript, mye brukt i testautomatisering hos flere av våre kunder
  • Cypress.io, alternativ testautomatiseringsrammeverk til Selenium, som brukes hos våre kunder
  • Bruk av “Klart Språk”-standarden, som del av test av universell utforming

Pythonbibliotekene Panda og SciPy

Python er et svært populært språk også innenfor test. Noen av konsulentene våre har ønsket å bruke fagdagen til å bli bedre kjent med i hvilken grad Python kan hjelpe dem innenfor sitt daglige arbeid med test. Som praktisk oppgave for dette ville de ta en større data fil (CSV) for deretter manipulere og tilpasse, slik det ofte er behov for i generering av testdata. Verktøyene valgt ble Python sammen med Pandas, og regexp til å søke og manipulere i testdata. Erfaringen var at dette er kraftige verktøy, hvor man kan utrette mye med lite kode. Disse verktøyene kan egne seg svært godt når man skal lage enkle og raske syntetiske testdatasett, evt. for å manipulere reelle datasett til pseudo-anonymiserte testdatasett. Brukerterskelen var også relativt lav.

Se også:

https://www.scipy.org/ — Økosystem for Python utvikling med en rekke populære og relevante pakker for datamanipulering

https://pandas.pydata.org/ — En av de mest relevante og populære pakkene vi så på. Mye funksjonalitet for manipulering av datastrukturer

Cypress

En av konsuletene gjorde en rask evaluering av Cypress, et populært rammeverk for GUI-testautomatisering som flere ser på i disse dager og vi bruker i noen prosjekter.

Som alltid er det fordeler og ulemper med alle ting, men våre funn er oppsummert under:

PROS:

  • Javascript!
  • Bedre innebygd støtte for moderne webapper; ser alle klikk og alt som skjer enkelt og lett å feilsøke testskript,
  • Nyttig med en egen skjerm med inspect ved siden av vindu for scripting.
  • Digg med mulighet for automatisk rekjøring ved endring av kode.
  • Godt integrert i utviklingsløpet.
  • Mulighet for å legge inn konfig i cypress.json som letter utviklingen.
  • Testscript checkes inn og behandles på lik linje med annen kode.
  • Letter automatisering og distribusjon av tester i teamet.
  • God (og ekstremt mye) dokumentasjon.
  • Innebygd opplastning og kjøring fra skyen inkludert screenshots av feil og video av testkjøring i Cypress Dashboard. (Det er her de tjener penger $$$)

CONS:

  • Trenger plugins for å bruke Xpath / CSS select
  • Mindre community (enn så lenge).
  • Selenium har støtte for flere script-språk.
  • Bundet til en URL / host per test? (Really?)

Se også:

https://www.cypress.io/

Klart språk og UU-erfaringer

Klart språk er et viktig krav for å tilfredsstille brukervennligheten og UU-tilpasninger til alle typer brukere. Heldigvis ser vi et økende fokus på dette hos kundene våre. Viktige momenter for å lykkes med Klart Språk i webløsninger er etter vår erfaring følgende:

  • Kartlegge brukerreise — For hvem skal løsningen fungere og for hvem må det tilpasses?
  • Aktivt språk — Verb over substantiv, tydeliggjør handlinger fra brukeren
  • Ord — bruk forståelige ord og gi forklaringer av vanskelige ord
  • Feedback — Få hyppig feedback fra brukerne gjennom brukertester, feedback-løsning i skjemaene og analytics-verktøy som Google Analytics

Se også:

A Software Tester’s Guide To Usability (Krever MoT Dojo tilgang)

Klarspråk

Se hvordan hun forenkla skjemaet, og økte søknadene med 45 prosent

Leverandør av Offentlige nettsider og portaler — Vidi AS

En titt på JSON:

Hva er JSON? — En enkel introduksjon for ikke-programmerere.

JSON — JavaScript Object Notation, er en enkel tekstbasert standard for å formatere meldinger som brukes til datautveksling. Den er enkel for mennesker å lese/skrive og enkel for maskiner å analysere/generere. Den er opprinnelig avledet fra JavaScript for å representere enkle datastrukturer. Standarden er imidlertid uavhengig av JavaScript eller andre programmeringsspråk.

JSON blir ofte brukt for å serialisere datastrukturer som sendes over et nettverk, først og fremst mellom en server og en web-applikasjon, som et alternativ til XML. JSON har den fordelen fremfor XML at semantisk informasjon bare inngår en gang, mens XML som regel har dobbelt sett med start- og slutt-tag og er derfor mer plasskrevende. JSON har imidlertid en svakere formalisme for verdivalidering enn XML.

JSON støtter følgende grunnleggende datatyper:

  • Tall
  • Tekst (String)
  • Boolske verdier
  • Tabeller
  • Objekter (nøkkel:verdi-par)
  • null (tom verdi)

Eksempel: Følgende datastruktur er en JSON-representasjon av et dataobjekt som beskriver en person. Objektet har tekstfelt for navn, et objekt som inneholder adresse og en liste over telefonnummer-objekter.

 

Har du spørsmål, innspill eller forslag til oss og fagmiljøet i Knowit Quality så håper jeg du tar kontakt :)

PS: Etter denne fagdagen dro vi på seiltur på sommerens varmeste dag og hadde tidenes lengste badestopp i Oslofjorden før en bedre middag ble fortært på et av byens koseligste spisesteder.

Until next time, love and soap!

Kristian Brandser — kvalitetsentusiastene i Knowit Quality

Photo by Markos Mant on Unsplash