2017 m. spalio 20 d., penktadienis

Programų testavimas ir derinimas

Programų testavimas ir derinimas

  • Java išimčių gaudymas (sakiniai try, catch ir finally)
  • Java išimčių apibrėžimas ir gaudymas
  • Standartinis Java logging mechanizmas
  • JUnit karkasas, TDD
  • Eclipse derinimo mechanizmas

Java išimtys (exceptions)
  • Java išimtys įvyksta, kai sutrikdomas normalus programos veikimas (pavyzdžiui dalyba iš 0, bandymas nuskaityti neegzituojančio objekto lauką, t.t.)
  • Java kalboje išimtys valdomos try-catch sakinių pagalba.
  • Tinkamai parašyta Java paprograme turi apdoroti arba deklaruoti galimas klaidas.
Išimčių tipai - tikrinamos išimtys

Tikrinami (checked) - išimtys, nuo kurių programa neturėtų nulūžti ir su kuriomis turi galėti susidoroti.
Taip vadinami, nes jų tvarkymas tikrinamas kompiliuojant
Galimų išimčių sąrašas yra metodo apibrėžimo dalis.
Naudojant metodą reikalaujama, kad tikrinamos išimtys būtų apdorotos naudotojo kode.
Tai visos išimtys išskyrus tas, kurios yra Error, RuntimeException ar jų plėtiniai.

Klaidos - (errors) tai išimtys nuo kurių programos gali atsigauti arba ne, priklausomai nuo autoriaus pasirinkto apdorojimo. Tai klasės Error ir jos plėtinių tipo klaidos. Pavyzdžiui - disko skaitymo klaida: programa gali nuspręsti lūžti arba pranešti vartotojui, kad failas, nors ir atidarytas - bet negali būti nuskaitytas.

Veiklos sutrikimai (runtime exceptions) - klaidos, nuo kurių programa nulūžta jos veikimo metu.
Įvykus runtime išimtims nebesitikima, kad programa gali toliau normaliai veikti, todėl jų specialaus jų apdorojimo kompiliatorius nereikalauja.  Dažniausiai tai RuntimeException klasės ir jos plėtinių tipo klaidos. Pavyzdžiui programos tikslas yra gaminti kėdes ir staiga į konvėjerį patenka stalas, kurį bandant apdoroti gali sugriūti viskas ARBA tiesiog neaišku, kaip stalo atsiradimą apdoroti.

Unchecked išimčių kontraversija

Tikrinamų klaidų naudojimas pagerina programos veikimo aiškumą ir reikalavimų naudotojui aiškumą. Jei tai naudinga - kodėl nedaryti visų išimčių tikrinamomis? Nes neviską programa gali apdoroti ir jaudintis dėl kietojo disko gedimo rašant kalkuliatoriaus programą nėra
prasmės.
 Trumpai: jei galima ir logiška tikėtis, kad metodo naudotojas gali ir/ar turėtų apdoroti kažkokią specifinę išimtį - reikėtų naudoti tikrinamas išimtis, kitu atveju - ne.

Logging elementai

• Logger - objektas, naudojamas žinutėms kurti. Dažniausiai tiesiogiai siejamas su klasės pavadinimu.
• Handler - žurnalo žinučių tvarkymui naudojami objektai (pvz atspausdinti konsolėje, įrašyti į failą, etc.)
• Filter - žurnalo žinučių filtravimui naudojami objektai (pvz - tik žinutės iš mano klasės, tik žinutės su daugiau nei 20 simbolių)
• Formatter - žurnalų žinučių formatavimui naudojamas objektas. Retai keičiamas.
• LogManager - žurnalų tvarkymo objektas, sukuriamas Java sistemos. Dažniausiai jo naudoti nereikia.

Java logging - žinučių svarba

  • SEVERE (highest value)
  • WARNING
  • INFO
  • CONFIG
  • FINE
  • FINER
  • FINEST (lowest value)
  • Nurodžius pvz INFO - įrašomos visos INFO ir svarbesnės žinutės, bet ignoruojamos žemesnės svarbos.
JUnit pagrindinės taisyklės
  1. Testai turi būti trumpi ir testuoti konkrečius dalykus.
  2. Testas turi būti bendros formos “<esant pradinei situacijai> <kai įvykdomi veiksmai> <turi būti gautas rezultatas>” (given-when-then).
  3. Testo metodo pavadinimas turi apibūdinti, ką tas testas tikrina, pvz:. ordersShouldBeCreated.
Eclipse derinimo mechanizmas
  • Pagrindinės derinimo sąvokos/komandos.
  • Programos paleidimas derinimo režimu.
  • Kintamųjų stebėjimas, keitimas.
  • Išraiškų vykdymas.
  • Web aplikacijų derinimas.

Derinimas - Sąvokos
  • Breakpoint - sustojimo taškas. Programa paleista derinimo rėžimu sustos šioje vietoje ir nevykdys toliau einančio kodo.
  • Conditional breakpoint - sustojimo taškas, jei tenkinama sąlyga.
  • Watch(a.k.a.expression) - laukas ar reiškinys, kurio reikšmė stebima derinimo metu.

Komentarų nėra:

Rašyti komentarą

Etiketės