Näin raportoit bugista, tavis

Oh­jel­mis­to­vir­heet eli bu­git ovat usein är­syt­tä­viä. Löy­tä­mäs­tään bu­gis­ta kan­nat­taa ker­toa seik­ka­pe­räi­ses­ti oh­jel­man te­ki­jäl­le, jot­ta vi­ka voi­daan kor­ja­ta.

Kuva: gotsumbeers: Broken Computer- Day 273. c nd 2.0

Jokaiselle on varmasti joskus käynyt niin, että työpöytä- tai websovellus ”sekoaa” kesken käytön: ruudulle hyppii kryptisiä virheilmoituksia, toiminto aiheuttaa väärän lopputuloksen, ohjelma kaatuu vieden tallentamattomat työt mennessään… Käyttäjän kiusaajana on tällöin bugi eli ohjelmointivirhe.

Olen huomannut, että bugin osuessa omalle kohdalle suurin osa ihmisistä hakkaa päätä seinään, ja aloittaa alusta toivoen parempaa lopputulosta. Toiset taas kysyvät kaverilta apua, ja jos sekään ei auta, ottavat yhteyttä yrityksensä IT-tukeen tai ohjelmiston valmistajaan.

Havaitut ongelmat kannattaa aina raportoida eteenpäin, jotta ohjelmiston kehittäjä voi ne ratkaista. Yleensä oikea osoite on ohjelmiston valmistaja, mutta töissä on kannattavampaa lähestyä omaa IT-tukea. Yhteydenotto kannattaa tehdä kirjallisesti (eli sähköpostitse) ja huolella. Ohjelmiston kehittäjät eivät näet ole selvänäkijöitä tai velhoja, vaan tarvitsevat runsaasti tietoa voidakseen paikantaa ja korjata vian. ”Tää ei toimi”, ”Siihen tuli joku ilmoitus” ja ”Korjaa toi” -tyyppiset viestit kirvoittavat − vastaanottajan mielentilasta riippuen − joko ilkeämielistä naurua tai ärräpäitä.

Bugi-ilmoituksesta pitäisi selvitä neljä asiaa:

  1. Käyttöympäristö: Millä laitteella1 ongelma tapahtui? Mikä käyttöjärjestelmä2 siinä on? Mikä versio3 ohjelmistosta on käytössä?
  2. Toisto-ohjeet: Seikkaperäinen vaiheittainen kuvaus siitä mitä teit, ennen kuin ongelma ilmeni.
  3. Lopputulos: Mitä tapahtui edellisten vaiheiden tekemisen jälkeen? Virheilmoitusten sisältö kannattaa kertoa sanatarkasti. Myös kuvakaappaus havainnollistaa usein tilannetta.
  4. Haluttu lopputulos: Mitä olisi pitänyt tapahtua?

Esimerkiksi4:

Hei.

Yritin tänään avata CSV-muotoista tiedostoa Microsoft Office 2010 Excelillä. Käytössäni on pöytäkone, jossa on suomenkielinen Windows 7. Taulukko avautuu kyllä, mutta koko rivin sisältö on aina kunkin rivin ensimmäisessä solussa. Rivin sisällön pitäisi jakautua usealle sarakkeelle. Tiedostoa käsitellessä ei tule virheilmoituksia.

Ystävällisin terveisin,
Erkki Esimerkki

Vastaanottaja käsittelee viestisi, ja arvioi korjaustarpeen. Tyypillisesti bugin status voidaan jakaa johonkin seuraavista lokeroista:

  • Korjattava: Ohjelmiston kehittäjä on tunnistanut vian ja aikoo korjata sen5.
  • Toimii suunnitellusti: Olet ymmärtänyt jonkin toiminnon väärin, eli saavuttamasi lopputulos on oikea.
  • Tarvitaan lisätietoja: Viankuvaustasi täytyy tarkentaa, jotta ohjelmistokehittäjä voi paikallistaa virheen.
  • Ei voida toistaa: Virhettä ei pystytty toistamaan ohjeittesi mukaan. Tällaisia vikoja on hankala korjata, ja ne saattavat jopa olla lähtöisin muualta kuin ohjelmistosta itsestään6.
  • Ei korjata: Kehittäjä ei näe korjaamista järkeväksi. Se saattaa esimerkiksi esiintyä vain vanhentuneessa versiossa, tai koskea vain marginaalista osaa käyttäjistä.

Kannattaa myös varautua siihen, että joudut vastailemaan erilaisiin jatkokysymyksiin, jotta virhe voidaan paikallistaa. Paikallistaminen − saatikka sitten virheen korjaaminen7 − saattaakin sitten kestää, eikä hoputus yleensä auta. Henkeä ei siis kannata varsinaisesti pidätellä.

Parhaassa tapauksessa bugi kuitenkin ennen pitkää korjataan, ja loppukäyttäjän − sinun − elämäsi helpottuu. Turhaa ajanhukkaa virheiden ilmoittaminen siis ei ole, mutta huolellinen siinä kannattaa olla.


1) Yrityksen IT-tuki arvostaa koneen laitenimeä, muuten riittää laitteen tyyppi (kannettava, tabletti, kännykkä, pöytäkone).
2) Kannattaa olla niin tarkka kuin osaa.
3) Myös ohjelmiston kieli on hyvä mainita, jos ohjelmistosta on useita kieliversioita.
4) Tässä tietoja on vielä suppeahkosti. Enemmänkin kannattaisi kertoa, jotta välttyisi jatkokysymyksiltä.
5) Korjaus tulee ennen pitkää. Toiminnan kannalta kriittiset bugit korjataan nopeammin kuin marginaalista käyttäjäryhmää haittaavat pikkuongelmat.
6) Esim. viallisesta laitteistosta.
7) Hiukankin ”ammattimaisemmissa” ohjelmistoissa muutoksia ei tehdä sormia napsauttamalla, vaan ne vaativat varsinaisen koodailun lisäksi mm. testausta ja erilaisia hyväksyntöjä.

Näin suojaudut Java-aukolta

Oraclen Java 7:ssä ole­va auk­ko on va­ka­va, mut­ta oman ko­neen suo­jaa­mi­nen on help­poa.

Kuva: Java-logo/ Oracle

Viestintäviraston CERT-FI-viranomainen tiedotti eilen Sunin1 Oraclen Javan nollapäivähaavoittuvuudesta:

Java 7:n kaikki versiot sisältävät korjaamattoman haavoittuvuuden.
Haavoittuvuutta tiedetään käytetyn hyväksi kohdistetuissa hyökkäyksissä.
Koska korjausta ei ole, verkon käyttäjät voivat suojautua mahdollisilta
drive-by haittaohjelmatartunnoilta esimerkiksi poistamalla Javan
käytöstä selaimissaan.

Haavoittuvuus on varsin vakava: Java on asennettuna lähes kaikille koneille, eikä haavoittuvuuden hyväksikäyttö vaadi käyttäjän toimenpiteitä. Teoriassa siis Javan käyttäjät ovat jo voineet tietämättään saastuttaa koneensa.

Koska ohjelmistojätti Oracle ei ainakaan kirjoitushetkeen mennessä ole julkaissut korjauspäivitystä, ei aukkoa voi niin vain peittää. On olemassa kuitenkin ratkaisuja, joilla haavoittuvuuden vaikutusta omaan tietoturvaan voi rajoittaa. CERT-FI julkaisi varsin sekavan selityksen asiasta Facebook-sivullaan, joten tässä kirjoituksessa yritän kertoa asian hieman selkeämmin ja kuvien kera. Ohjeet ovat Windowsia tai Linuxia käyttäville Chrome-, Chromium-, Firefox- ja Opera-käyttäjille.

Päivitys 31.8.: Oracle on julkaissut haavoittuvuuden korjaavan päivityksen. Päivitetyn Java 7:n voi ladata Oraclen sivustolta.

Päivitys 1.9.: The Register kertoo, että tietoturvayhtiö Security Explorationsin mukaan Oraclen vasta julkaisemassa Java 7 Update 7 -päivityksessä on myös haavoittuvuus, joten suojautumistoimenpiteet ovat edelleen tarpeen, vaikka haavoittuvuutta ei vielä aktiivisesti hyväksikäytettäisikään.
Päivitys 1.2.2013: Tämä artikkeli saa kovasti Google-osumia! Koska kirjoitus on jo puolisen vuotta vanha, ja käsittelee jo korjattua aukkoa, täytyy ohjeita hieman soveltaa. Pääperiaatteet ovat kuitenkin samat. Saatan kirjoittaa jossain vaiheessa päivitetyn ohjeen, jolloin linkitän sen tästä kirjoituksesta.

Oletko vaarassa?

Vaikka maailmalla huudellaan, että kaikki tietokoneet olisivat yhtäkkiä vaarassa, ei tämä aivan pidä paikkaansa. Vain Oraclen ”virallinen” Java on haavoittuvainen, eikä esimerkiksi avoimen IcedTea-liitännäisen käyttäjien tarvitse ryhtyä mihinkään toimenpiteisiin. Aukko ei myöskään koske Oraclen Javan vanhemman 6-version käyttäjiä.

Jos et tiedä, mikä versio sinulla on käytössä, ota asiasta selvää:

  • Firefox: Vieraile Mozillan Tarkista liitännäisesi -sivulla. Jos luettelosta löytyy Java(TM) Platform SE 7 -alkuinen rivi, käytät haavoittuvaista Javaa, ja toimenpiteitäsi tarvitaan. Sillä, mikä päivitysversio Java 7:stä on käytössä, ei ole merkitystä.
    Haavoittuvainen Java-liitännäinen näkyy Firefoxin liitännäistarkistussivussa tähän tapaan.

    Kuva: Kuvakaappaus Mozillan Tarkista liitännäisesi -sivusta

  • Chrome ja Chromium: Siirry Chromen/ Chromiumin liitännäisten hallintaan syöttämällä chrome://plugins osoitekenttään. Laajenna tietoja valitsemalla sivun oikean yläkulman ”+ Tiedot” -linkki. Siirry Java -kohtaan. Jos Nimi-sarakkeen teksti alkaa ”Java(TM) Platform SE 7”, on käytössäsi haavoittuvainen versio. Tarkalla päivitysversiolla (U-jotakin) ei ole merkitystä.
    Chromen ja Chromiumin liitännäishallintapaneelista vaarallisen Java-liitännäisen tunnistaa tästä.

    Kuva: Kuvakaappaus Chrome-selaimen liitännäishallinnasta.

  • Opera: Siirry Operan Lisäosat -sivulle syöttämällä opera:plugins osoitekenttään. Jos luettelossa on rivi, joka alkaa ”Java(TM) Platform SE 7”, on käytössäsi haavoittuvainen Java-versio.
    Operan liitännäisissä vaarallinen Java 7 näkyy näin.

    Kuva: Kuvakaappaus Operan Liitännäiset-sivusta.

Jos Javan vaarallinen versio on selaimellasi käytössä, voit suojata itsesi muutamallakin tavalla:

  • Jos et tarvitse Javaa, poista se kokonaan (ohje 1).
  • Jos tarvitset Javaa, harkitse nykyisen Java 7:n poistamista ja vanhemman Java 6:n asentamista sen tilalle (ohje 2). Linux-käyttäjät voivat harkita myös esim. IcedTean asentamista (ohje 3).
  • Jos et tarvitse Javaa hetkeen, voit ottaa selaimen Java-liitännäisen pois käytöstä siksi aikaa kun Oracle valmistelee korjauksen siihen (ohje 4).
  • Jos välttämättä tarvitset Javan 7-versiota, on tilanne mutkikkaampi. Operan, Chromen ja Chromiumin käyttäjät voivat asettaa selaimensa toiminnolla Javan käyttöön vain niille sivustoille, joissa se on pakollista (ohje 5). Firefox-käyttäjien pitää käyttää esimerkiksi NoScript-lisäosaa saavuttaakseen saman lopputuloksen.

Riippuen tilanteestasi seuraa jotakin seuraavan kohdan ohjetta.

Ratkaisuohjeet

1. Javan poistaminen

  • Windows-käyttäjät: Javan voi poistaa avaamalla Ohjauspaneelin Ohjelmat » Ohjelmat ja toiminnot -ikkunan, valitsemalla Java 7 Update 6 -rivin (tai vastaavan), valitsemalla Poista asennus ja seuraamalla ohjeita.
  • Linux-käyttäjät: Java 7:ää ei vaikuttaisi olevan Ubuntun tai Debianin pakettivarastoissa. Muissa jakeluissa näin voi olla, ja poistaminen tapahtuu jakelun ohjeiden mukaan. Jos Java on asennettu paketinhallinnan ohi Oraclen ohjeiden mukaan, täytyy Javan kansio poistaa. Jos selaimille on luotu omat kopiot Java-pluginista (ei siis symbolisia linkkejä), tulee nämä myös poistaa. Lisätietoja on Oraclen sivustolla.

Varmista lopuksi, että Java on varmasti poistettu. Helpoiten sen voit tarkistaa samalla tavalla kuin aluksi tarkistit sen version – tässä tapauksessa Java-liitännäistä ei pitäisi olla listattuna lainkaan.

2. Java 6:n asentaminen

Poista aluksi Java 7 edellisen ohjeen mukaisesti. Asenna sitten Java 6:

  • Windows- ja useimmat Linux-käyttäjät: Lataa Java 6 Oraclen verkkosivustolta (Windows, Linux), ja suorita sen asennusohjelma.
  • Osa Linux-käyttäjistä: Jos jakelusi pakettivarastossa on Java 6 saatavilla, se kannattaa tietenkin asentaa ensisijaisesti normaalien pakettienhallintatyökalujen kautta. Esimerkiksi Debian Squeezessa paketti löytyy nimellä sun-java6-plugin.

Varmista lopuksi, että oikea versio on varmasti selaimessa käytössä. Tarkistaminen tapahtuu kirjoitukseni alun ohjeiden mukaan.

3. IcedTean asentaminen

Poista aluksi Java 7 ohjeen 1 mukaan. Asenna sitten IcedTea:

Avoimen lähdekoodin OpenJDK-ympäristöön perustuvan IcedTea-selainliitännäisen voi asentaa useimpiin Linux-jakeluihin, ja joissakin se on jo valmiiksi asennettuna. Ubuntussa paketti on icedtea-7-plugin ja Debianissa icedtea6-plugin. Paketti asennetaan jakelun oman pakettienhallinnan kautta.

Varmista lopuksi, että IcedTea on varmasti selaimessa käytössä. Tarkistaminen tapahtuu kirjoitukseni alun ohjeiden mukaan.

4. Java-liitännäisen käytöstä poistaminen

Liitännäisen käytöstä poistaminen on selainkohtaista:

  • Firefox: Avaa selaimen Lisäosien hallinta -sivu kirjoittamalla osoiteriville about:addons. Siirry sivun osioon Liitännäiset, ja klikkaa kohdassa ”Java(TM) Platform SE 7 …” olevaa Poista käytöstä -painiketta.
  • Chrome ja Chromium: Avaa selaimen Laajennukset-sivu kirjoittamalla osoiteriville chrome://plugins. Etsi luettelosta Java-liitännäinen ja klikkaa sen tietojen lopussa olevaa Poista käytöstä -linkkiä.
  • Opera: Avaa selaimen Lisäosat-sivu kirjoittamalla osoiteriville opera:plugins. Klikkaa ”Java(TM) Platform SE 7 …” -rivin otsikon Poista käytöstä -linkkiä.

5. Java-liitännäisen käytön rajoittaminen

Jos uusinta Javaa välttämättä tarvitaan jollakin tietyllä sivulla, kannattaa selain säätää niin, että Java sallitaan vain tietyille sivuille:

  • Chrome ja Chromium: Siirry Sisältöasetukset-dialogiin kirjoittamalla osoiteriville chrome://chrome/settings/content, ja vaihda Laajennukset-asetus valintaan Estä kaikki. Lisää sitten Javaa tarvitsevat sivustot Hallinnoi poikkeuksia… -dialogissa.
  • Opera: Avaa Asetukset-ikkuna valitsemalla Opera-valikon Asetukset-alivalikosta toiminto Asetukset…. Lisäasetukset-välilehden Sisältö-osiossa poista valinta kohdasta Lisäosat käytössä, ja hyväksy muutokset. Mene sitten sivustolle, joka vaatii Javan, ja valitse kontekstivalikon (klikkaa hiiren 2. painikkeella sivua) toiminto Muokkaa sivustokohtaisia asetuksia…. Valitse aukeavan dialogin Sisältö-välilehden Lisäosat käytössä -valintalaatikko, ja hyväksy muutos OK-painikkeella.


1) Kuka muistaa vielä Innotekin VirtualBoxin?

Päivitystä vikalistaan

Kirjoitin joku aika sitten vioista uudessa Nokia 5800:ssani, ja tässä vähän tarkennuksia ja korjauksia:

  • Nokia Maps ei tue vaakatasossa käyttöä. Ilmeisesti Nokia Maps 3.0 tukee vaakatasossa käyttöä. Beetaversion saa ladattua Nokian sivuilta. Tiedustelen Nokialta, onko 3.0 tulossa järjestelmäpäivityksen mukana.
  • Kuvausvaloa/salamaa ei voi kytkeä pelkästään päälle. Netistä löytyi ohjelma, jolla tämä onnistuu: Phone Torch.
  • Jos kielen vaihtaa Automaattisesta englantiin, lakkaa näyttö kääntymästä asennon mukaan. Mahdollisesti tässä näytön kääntymisasiassa taustalla on laitteistovika, mutta tiedustelen tätäkin asiaa Nokialta. Tätä kirjoittaessa puhelinta ei taaskaan kiinnosta oma asentonsa. Välillä tilanne korjaantuu uudelleenkäynnistyksellä, välillä ei.
  • Puhelin- ja muistikorttimuisti eivät yhdisty viestien osalta (kuten esim. musiikki ja kuvat). Ei näemmä yhdisty kuvat tai äänetkään. Puute tämä siltikin on.
  • Minkäänlaista piirto-ohjelmaa ei ole. Netistä löytyy myös tähän ratkaisu: Paint Pad.

Kuten mainittua, tiedustelen Nokialta noista asioista lisätietoja, ja toivon että he vastaavat. Kerron blogissani jos/kun vastausta tulee.

Nokia 5800: Bugeja, ongelmia ja omituisuuksia

Parin päivän testailun jälkeen olen huomannut, että uudenuutukaisessa Nokia 5800 XpressMusicissani on tiettyjä vikoja. Ohjelmistoversio (saa näkyviin syöttämällä puhelinnumeroksi *#0000#) on 21.0.025 eli oletettavasti uusin.

Tässäpä listaa:

  • [TOIVE] Kamera ei ota laajakuvavalokuvia. Videokuvat otetaan kuitenkin laajakuvana, joten miksei valokuvatkin?
  • [TARVE] Nokia Maps ei tue vaakatasossa käyttöä. Navigaattorimaiseksi siitä siis ei oikein ole.
  • [TARVE] Aloitusruutu ei tue vaakatasossa käyttöä. Omituista, ja pitäisi ehdottomasti korjata, sillä nyt puhelinta pitää kieputella edestakaisin.
  • [TOIVE] Kuvausvaloa/salamaa ei voi kytkeä pelkästään päälle. Toimisi hyvin esim. taskulamppuna. Kuitenkin videokuvaukseen valot saa päälle.
  • [VIKA (pieni)] Valikkonäppäimen huomautusvilkutus jää toisinaan päälle viestin lukemisen jälkeen. Kyseessä ei ole siis ”breathing light” vaan bugi.
  • [VIKA (suuri)] Jos kielen vaihtaa Automaattisesta englantiin, lakkaa näyttö kääntymästä asennon mukaan. Tehdasasetusten palautus auttaa.
  • [VIKA (suuri)] Bluetooth- tai datakaapelitiedonsiirron jälkeen puhelin ilmoittaa seuraavan tekstiviestin kohdalla (jos muistikortti on valittu tallennuspaikaksi), että ”Valittu muisti ei ole käytettävissä. Käytetään puhelimen muistia.”, jonka jälkeen käytettävä muisti täytyy käydä vaihtamassa takaisin muistikortille.
  • [TARVE] Puhelin- ja muistikorttimuisti eivät yhdisty viestien osalta (kuten esim. musiikki ja kuvat).
  • [TARVE] Neljän kaverin pikavalinnat -kohtiin ei voi valita yhteystietoja SIM-kortilta. Vähintään jonkinlainen ”Olet valitsemassa yhteystietoa SIM-kortilta. Yhteystieto kopioidaan puhelimen muistiin. Jatketaanko? (K/E)” -dialogi olisi paikallaan.
  • [TOIVE] Minkäänlaista piirto-ohjelmaa ei ole. Nokia Labsin Handwriting Calculator on paras vastine fläppitaululle.

Vaikkakin luetteloa on jonkin verran, olen silti yleisesti ottaen tyytyväinen puhelimeeni. Toivoa sopii, että Nokia julkaisisi nämä viat/puutteet/tarpeet korjaavan päivityksen piakkoin.