Millele pöörata tähelepanu
Appearance
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):
- 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?
- 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?
- 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?
- 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.
- 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.