Tartu Ülikool Code coverage Referaat Koostaja: Rando Mihkelsaar Tartu 2005
Sissejuhatus Inglise keelne väljend Code coverage tähendab eesti keeles otse tõlgituna koodi kaetust. Lahti seletatuna näitab selline programm palju kirjutatud koodist on kaetud automaatsete testidega. Kuna testimine on tarkvaraarenduse juures üks olulisemaid asju, siis selline automaatne testimine aitab vigu avastada varases staadiumis, kus vigade kõrvaldamine on odavam. Samuti hoitakse sellise testimisega kokku ka raha. Automaatne testimine on võrreldes tavalise testimisega ka palju kiirem, kuna inimese asemel teeb töö ära arvuti. Ma olen suhteliselt kindel, et tarkvara testimisvahendid ei suuda kunagi asendada reaalset testijat (inimest). Kui tarkvara testitakse ainult automaatsete testidega, siis võib olla suhteliselt kindel, et selle tarkvara lõppkvaliteet pole just kõige parem. Üks selline programm on Clover, mis näitab kui suur osa koodist on kaetud automaatsete testidega. Selle üheks suurimaks miinuseks on, et ta on tasuline, kuid õnneks leidub internetis palju sarnaseid programme, mille eest ei pea sentigi maksma. See referaadi üks tähtsamaid osasid pühendubki Cloveri ja kahe vabavaralise lahenduse (Coverlipse ja EMMA) võrdlusele.
Võrdlemine Nendest kolmest erineb kõige rohkem Coverlipse, kuna ta on Eclipse plugin. See on ka tema suurimaks miinuseks, kuna teda saab kasutada ainult koos Eclipsega. Tasulist Clover -t saab kasutada ka Eclipse pluginina, kuid tema plussike on see, et peale selle saab teda kasutada ka teistes Eclipse taolistes programmides, nagu IntelliJ IDEA, NetBeans, JBuilder ja JDeveloper. EMMA-t seevastu pole võimalik erinevalt teistest mingi IDE pluginina kasutada. Järgmisena võrdleme vearaporteid, mis on kindlasti üks olulisemaid asju nende programmide juures. Clover -l on palju igasuguseid vearaporteid aates igasuguste IDE raportitega ja lõpetades HTML ja PDF raportitega. Coverlipse -l nagu arvata on ainult IDE vearaport. Coverlipsele -l on plaanis lähitulevikus teha juurde ka PDF vearaport, kuid see on alles tulevik. EMMA toetab ka mitmeid raporteid, sealhulgas HTML, XML ja Text vearapordid. Clover -st hakkasid silma veel sellised asjad, nagu ajaloolised raportid, mis põhimõtteliselt tähendav seda, et Clover on suuteline genereerima ajaloolisi raporteid, alates sellest, kuna projektiga algust tehti. Kuna aga seda vabavaralistes samalaadsetes vahendites polnud siis see on üks suur pluss Clover -i kasuks. Kuna java 1.5 on suhteliselt uus ja natuke erinev asi, siis tuleks uurida, millised nendest kolmest programmist toetavad seda. Loomulikult Clover toetab seda, kuid õnneks toetab seda ka vabavaraline lahendus Coverlipse. Nii Clover kui ka EMMA toetavad Ant skripte, mis on päris suur pluss nende jaoks. EMMA mõõdab koodi kaetust mitmel erineval viisil (näiteks klassi, meetodi, rea jne järgi). Peaaegu samasuguseid mõõtmisi võimaldab ka Clover, kuid Coverlipse on oma mõõtmiste poolest natuke tagasihoidlikum, kuid tema kodulehelt võib lugeda, et selle kallal tehakse tööd ja varsti peaks sellised mõõtmiseda ka seal sees olema. Kõige lihtsam on kindlasti nendest kolmes kasutada Coverlipse -t, sest seal on kõige vähem vaja alguses igasuguseid seadistusi paika panna. Järgmisena tuleks üpris võrdsetena Clover ja EMMA. EMMA ja Clover -i kohta leidsin ma internetist hea võrdluse, mis sobib siia väga hästi: Emma is fast, free, integrates with Ant well, and produces nice reports. Clover is fast, integrates with Ant and IntelliJ well, produces even nicer reports, and
also has historical reports. However, it costs $2,500. Both have good documentation ( EMMA on kiire,tasuta, Ant hästi integreeritud ja genereerib kenasid raporteid. Clover on kiire, Ant-i ja IntelliJ hästi integreeritud, genereerib kanamaid raporteid ja on olemas ka ajaloolised raportid. Kuid see maksab $ 2500. Mõlemal on hea dokumentatsioon ). Clover üks kõige negatiivsem külg on see, et ta on tasuline ja maksab üpris palju (näiteks viie esimese inimese litsents maksis $ 2500 ja iga järgnev $100, mis oli aga aastal 2004). Seevastu EMMA ja Coverlips on täiesti tasuta ja kõigile kättesaadavad. Lisaks siinkohas parema ülevaate saamiseks ka tabeli: Clover EMMA Coverlipse Maksumus Tasuline Tasuta Tasuta Eclipse plugin Olemas Puudub Olemas PDF vearaport Olemas Puudub Puudub aga plaanis teha HTML vearaport Olemas Olemas Puudub XML vearaport Olemas Olemas Puudub Text vearaport Olemas Olemas Puudub ANT Toetab Toetab? Java 1.5 Toetab Toetab Toetab Ajaloo raportid Olemas Puudub Puudub Programmeeritud Java Java Java
Kokkuvõte Kindlasti on Clover nendest kolmest parim vahend, kuid kuna tema kasutamine on väga kallis, siis mina kalduksin valima EMMA-t, kuna ta on peaaegu sama hea kui Clover ning mis peamine ta on tasuta. Nende mõlema vearaportid on väga head, hästi loetavad ja korralikult. Kuna nende kole töökiirusel eriti vahet pole siis siinkohas eelistaksin EMMA-t, sest see on vabavaraline ja suurema funktsionaalsusega kui Coverlipse. Samuti on hea asi ka Coverlipse, kuid selle arendusega peaks natuke veel vaeva nägema ja siis saab teda kunagi tulevikus kindlasti kasutada.
Kasutatud kirjandus http://europetravelogue.com/blog/pivot/entry.php?id=41 http://coverlipse.sourceforge.net/index.php http://emma.sourceforge.net/ http://www.cenqua.com/clover/