Millele pöörata tähelepanu

From Wikiversity

kursuse avalehele

Esimene eesmärk võiks olla programmi käivitumine esimesel katsel, st programmi koodist on likvideeritud esmased pisivead ja näpukad. Selleks loe programm läbi ning veendu:

  • ühelgi muutujal ei ole nimeks võtmesõna
  • juhtlause lõpus (if, while, for, def) on koolon :
  • treppimine on järjekindel. Soovitav on kasutada ainult tühikuid või ainult tab-e. Taanded olgu ühe suurusega.
  • kõigil stringidel on alguse ja lõpusümbol (just viimane kipub ära jääma)
  • kõigil sulgudel on paarilised
  • võrdlemine toimub ==-ga ja mitte =-ga ja omistamine =-ga ja mitte ==-ga

Kui loetletud vigade leidmine enne programmi käivitamist juba õnnestub, võiks kontrolli laiendada. Järgnevalt valik küsimusi, mida soovitatakse testijal küsida programmikoodi lugemise käigus (muide, seda tegevust kutsutakse ametlikult staatiliseks testimiseks):

  1. Vaata üle muutujad ja nende nimed:
    • Kas proovitakse kasutada muutuja väärtust enne muutuja tekkimist, st kas esineb mõni algväärtustamata muutuja omistuslause paremal poolel, loogikaavaldises, väljatrükis?
    • Kas oled eksinud mõne muutujanime kirjutamisel? Või oled ehk programmis ühes kohas kirjutanud muutuja suure algustähega, aga teises kohas sama muutuja väikese algustähega?
  2. Vaata üle keelesõnad:
    • Nad peavad IDLE redaktoris olema teist värvi - siis on õigesti kirjutatud. Kui ei ole, otsi sõnast viga.
    • Vaata ka üle, milliseid funktsioone kasutad - äkki on tegemist mõne funktsiooniga, mille kasutamiseks eraldi mooduli poole pöörduda tulab (import math) jms?
  3. Avaldised ja andmetüübid - vaata üle nii aritmeetikaavaldised kui ka loogikaavaldised:
    • Kas ühte lausesse või avaldisse on kokku sattunud sobivad andmetüübid (nt arvude ja stringide koos kasutamine ei lõppe enamasti hästi)?
    • Kas kõik arvutamisel kasutatavad muutujad on peale sisestamist ka arvuks teisendatud?
    • Kas sealjuures on kasutatud muutuja iseloomule sobivalt täisarvu (int()) ja ujukomaarvu (float())?
    • Kas tehete järjekord on õigesti määratud ja kas kasutatakse selleks piisavalt sulge?
    • Kas võib tekkida jagamist nulliga?
  4. Võrdlemised - vaata üle loogikaavaldistes olevad võrdlustehted:
    • Kas võrreldakse erinevaid asju: näiteks teksti ja numbrit?
    • Kas algoritm on võrdlustehetesse õigesti tõlgitud? Näiteks märkide < ja <= kasutamise tulemus võib olla erinev.
    • Kas võrdlustehete prioriteedid on määratud õigesti?
    • Kas võrreldakse reaalarvulist muutujat arvuga ja sealjuurel võrdusmärgiga (==)? Ujukomaarvud ei pruugi olla täpsed ja seetõttu on nad ebasobivad võrdusmärgiga võrdlemiseks.
  5. Vead programmi struktuuris - vaata üle kõik keelekonstruktsioonid (tsüklid, valikud)
    • Kas taanded määravad õigesti planeeritud tsükli- ja valikulausete piirid?
    • Kas tsüklid on sisuliselt õigesti planeeritud - kas while-tsükli sisu ja loogikaavaldis on kooskõlas ning avaldise väärtus saab muutuda vääraks (False)? St kas avaldises kasutatavate muutujate väärtused tsükli sees muutuvad?
    • Kas loogikaavaldis tsükli alguses esimesel kordusel saab olla tõene (True)?

Jõudu oma koodi lugemiseks ja iseseisvaks vigade leidmiseks!

Rohkem vigade otsimisest ja silumisest on testimise tekstis.

kursuse avalehele