Testavimo įrankiai Mindaugas Škimelis.

Slides:



Advertisements
Similar presentations
J-Unit Framework.
Advertisements

Chapter 15: Discovering problems ● There are some tools that we can use to discover problems – Junit: for unit testing – Ant as a make utility – CVS as.
Programų kūrimo priemonės Software Development Tools P175M025 4 semestas E.Karčiauskas + T.Blažauskas.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 1 Struktūrinis Testavimas.
1 Komponentai, kurie turi būti patikrinti, yra objektų klasės, kurios realizuojamos kaip objektai. l Didesniems vienetams negu individuali funkcija “baltos.
S Ramakrishnan1 Systems V & V, Quality and Standards Dr Sita Ramakrishnan School CSSE Monash University.
JCheck jEdit Spellcheck Plug-in Group Section
Topic: Junit Presenters: Govindaramanujam, Sama & Jansen, Erwin.
Int fact (int n) { If (n == 0) return 1; else return n * fact (n – 1); } 5 void main () { Int Sum; : Sum = fact (5); : } Factorial Program Using Recursion.
NORĖDAMI PAKEISTI SKAIDRĖS STILIŲ – SPUSTELĖKIT E DEŠINIUOJU PELĖS KLAVIŠU ANT SKAIDRĖS FONO IR PASIRINKITE > LAYOUT ARBA DARBALAUKI O ĮRANKIŲ JUOSTOJE.
Testing tools Jonas Minelga, IFME-0/2. Why do we need testing tools? Testing is faster Testing is cheaper Testing is more effective We get better quality.
Vaizdinė užduotis. Kuriose iš šių valstybių galima pamatyti tokius gyvenamuosius namus? Jemene Tanzanijoje Mongolijoje Indonezijoje A B C D 1.
Comenius Strateginių partnerysčių projektas “PADĖK IR GAUK PAGALBĄ”
Network address translation Tinklo adresų vertimas
Kaip parašyti testavimo planą?
Graphical user interface testing GRAFINĖS VARTOTOJO SĄSAJOS TESTAVIMAS
SYSTEM OF PROGRAMMING BUDGET
Regresijos determinuotumas
Kaip parengti ir pristatyti mokslinį straipsnį
Įvadas Testavimo įrankių naudojimas padaro testavimą lengvesnį, efektyvesnį ir produktyvesnį, padeda valdyti procesą Reikalinga žinoti kokias užduotis.
Darbą parengė: Viktorija Drūteikaitė IT2
SSGG (SWOT): Organizacijos stiprybės ir silpnybės, galimybės ir grėsmės (nustatymas, grupavimas, vertinimas, rezultatas) Pagrindinė literatūra: Lietuvos.
MAUDYKLŲ VANDENS KOKYBĖS STEBĖSENOS
Robert Andruškevič AT27D.   Tai yra operacinė sistema, daugiausia naudojama išmaniuosiuose telefonuose, nors ją galima įdiegti ir kituose mobiliuosiuose.
CLIL, MY OPEN WINDOW ON THE WORLD AROUND ME
Kompiuterio sandara, programinė įranga
ISO/IEC Pagrindiniai gyvavimo ciklo procesai

PHP „CodeIgniter“ karkaso saugumas
RUP Rational Unified Process
Panelinių duomenų modeliai
Pagrindinės sąvokos Hipertekstas ir multimedija
PROGRAMAVIMO PAGRINDAI
JavaScript kalbos apžvalga
inovatyvioms mokykloms
Nemokami IKT įrankiai ir programos ugdymo individualizavimui
Gijos (Threads) Java kalboje
Paprasti skaičiavimai. Uždavinių sprendimas
Kas yra arduino ? Parengė:Karolis Šumskis ir Mokytoja ekspertė Elena Šišenina.
Tekstynų lingvistika ir tekstynų naudojimas klasėje
Programų sistemų gyvavimo ciklo procesai
Regresijos determinuotumas
Windows Portable Devices
Tekstiniai uždaviniai
Saulius Ragaišis, VU MIF
Regresijos lygties parametrų vertinimas
Vartotojo pirkimo sprendimo priėmimo procesas
Programų kūrimo metodai
2 skyrius Procesai ir gijos 2.1 Ką vadiname procesu 2.2 Proceso būviai
Virtualus kompiuteris
Programų sistemų testavimas
Projektas „Standartizuotų mokinių pasiekimų vertinimo ir įsivertinimo įrankių bendrojo lavinimo mokykloms kūrimas, II etapas“ Eglė Melnikė, projekto vadovė.
Funkcijos 9 paskaita.
Operacinė sistema Testas 9 klasė
Studijų pasirinkimas Lietuvoje ir užsienyje: ką svarbu žinoti?
Priešinės liaukos vėžio ankstyvosios diagnostikos programa 2009
PARTNERIŲ PAIEŠKA UŽSIENYJE
3D skenavimo metodas, jo privalumai. Kam reikalingi avalynės įdėklai?
Daugelio dokumentų sąsaja (angl. Multiple document interface)
Judrus projektų portfelio valdymas
Studijos užsienyje.
Windows Ribbon Framework
Tyrimų rezultatų interpretacija
Klaviatūra.
Pranešėjas Jurij Kuznecov
Unit testing with JUnit
JUnit SWE 619 Spring 2008.
Presentation transcript:

Testavimo įrankiai Mindaugas Škimelis

Visi nori testuoti... Greitai Pigiai Efektyviai Arba kitaip tariant: Gauti geresnės kokybės programinę įrangą už tapačią kainą

Kaip testuojama? Nepertraukiamas testavimas Automatizuotas testavimas Kodas taisomas; Pridedami nauji funkcionalumai; Ši praktika paskutiniu metu labai populiarėja; Extreme programming Automatizuotas testavimas Testuojamas konkretus kodas; Vykdomas testo kodas; Naudojami įvedimo duomenys; Laukiamas išėjimas Test-Driven Development Testavimas, testinių atvejų formuluvimas projekto vystymo metu.

Unit testavimas Nedideli testavimo atvejai nedideliems kodo gabalams. OO - puikiai tinkanti paradigma, nes turi daug smulkių dalių (units) vienetų testavimui. Didelis testų kiekis gali būt lengvai automatizuojamas.

Unit testavimas (2) Lūkesčiai: Modelio reikalavimai atsispindi vienetų testuose. Naujos savybės yra išvystytos taip, kaip tikimasi. Senos savybės veikia taip, kaip tikimasi.

JUnit & NUnit Java & .NET JUnit – vienetų testavimo freimworkas, Java platformai. Testai yra organizuojami hierarchiškai, dažniausia laikomasi tos pačios paketų struktūros. Testiniai atvejai agreguojami į testinius rinkinius; Vienas rinkinys per paketą; Vienas testinis atvejis per klasę; Metodas su metodu;

JUnit: Pavyzdys public class Math { static public int add(int a, int b) { return a + b; } static public int multiply ( int a, int b) { return a * b; } }

JUnit: Pavyzdys (2) public class TestMath extends TestCase { protected void setUp() { // put common setup code in here } protected void tearDown() { // put common cleanup code in here } public void testAdd() { int num1 = 3; int num2 = 2; int total = 5; int sum = 0; sum = Math.add(num1, num2); assertEquals(sum, total); } public void testMulitply() { int num1 = 3; int num2 = 7; int total = 21; int sum = 0; sum = Math.multiply(num1, num2); assertEquals("Problem with multiply", sum, total); } }

Debugeriai: Konceptai Breakpoint’ai Žingsninis vykdymas Stebėjimas Kintamųjų reikšmių keitimas Kodo keitimas

Loginimas Log4J Be kodo keitimo galima konfigūruoti: Loginimą į skirtingas vietas; Tik tam tikro lygio pranešimus (debug,info,error,..); Klasėms nustatinėti skirtingus lygius; Formatuoti išvedimą ir tt. class MyClass { private Logger LOG = Logger.getLogger(MyClass.class); public void method1() { ... x = algorithm.calculateResult(); LOG.debug(“x = “ + String.valueOf(x)); }

Profaileriai (Našumas) Profaileriai padeda surasti kodo dalis, kurios suvartoja netinkamus procesoriaus laiko kiekius. Šios surasto kodo dalys gali vaidinti “butelio kakliuko” vaidmenį analizuojamoje programinėje įrangoje. Profaileris gali padėti: įvertinti laiką, kurį “suvartojo” vienas ar kitas metodas; optimizuoti labiausiai apkrautas vietas.

Profaileriai (2) CPU laikas gali būti vartojimas: Netinkami algoritmai(burbulas) Nereikalingas objektų kūrimas Nereikalinga sinchronizacija tarp gijų ir tt. “Butelio kakliukai” turi savybę: Išlįsti ten, kur mažiausiai tikimasi. Tarkime, įtarimą kelia tam tikri algoritmai, o nepastebima, kad kažkur programoje įvykdoma 100000 nereikalingų kreipinių į String.toLowerCase() 

Profaileriai (3)

Apkrova (Load Test) Apkrovos testavimo apkrauna testuojamą sistemą simuliuojamais vartotojais tam tikrais kiekiais arba kol sistema lūžta Tuo pat metu matuoja rezultatus: Atsako trukmę, neaptarnautų kvietimų procentą, klaidų kiekius.

Apkrova - JMeter

Apkrova (JMeter) JMeter palaikomi testų planai: Web DB FTP LDAP Web Servisai JMS Monitoring tests

Populiarūs nemokami įrankiai HttpUnit (Web testing) jMock (Mock Objects) Cactus (Server side, Servlet,EJB) FitNesse (Acceptance testing) JIRA,Eventum (Defects tracking) Profiler4j ir kt.. http://java-source.net/open-source/testing-tools

.NET įrankiai (statinė analizė) Reflector Complexity analyzer CCMetrics CRPlugin FxCop Source Monitor http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis

Java įrankiai (statinė analizė) Bandera CheckStyle Classycle FindBugs Jlint PMD Soot http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis

.NET įrankiai (Unit testing) csUnit MbUnit TestDriven.NET QuickUnit.net xUnit.net Nmate NUnitAsp http://en.wikipedia.org/wiki/List_of_unit_testing_frameworks

Java įrankiai (Unit testing) thisTest JTest JWalk JUnitEE JBehave beanSpec http://en.wikipedia.org/wiki/List_of_unit_testing_frameworks

Kiti įrankiai (komerciniai)

Kiti įrankiai (komerciniai)

Kiti įrankiai (komerciniai)

Testavimo įrankių pasirinkimo kriterijai Įvertinti esamą palaikymo infrastruktūrą Objektų atpažinamumas tarp skirtingų programavimo kalbų Scenarijų kūrimo ir palaikymo proceso lengvumas Scenarijų vykdymas Įvairių testavimo būdų realizavimo lengvumas Vartotojo įgūdžių tinkamumas

Testavimo priemonių nauda Lengvesnis testavimo procesas Testavimo trukmės mažinimas Mažesnės resursų sąnaudos Greičiau pasiekiama galutinio produkto fazė <$ || <€ gamybai ir palaikymui

Testuokite ir prisiminkite, kad...

Ačiū už dėmesį...