Download presentation
Presentation is loading. Please wait.
1
Testavimo įrankiai Mindaugas Škimelis
2
Visi nori testuoti... Greitai Pigiai Efektyviai Arba kitaip tariant:
Gauti geresnės kokybės programinę įrangą už tapačią kainą
3
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.
4
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.
5
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.
6
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;
7
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; } }
8
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); } }
9
Debugeriai: Konceptai
Breakpoint’ai Žingsninis vykdymas Stebėjimas Kintamųjų reikšmių keitimas Kodo keitimas
10
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)); }
11
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.
12
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 nereikalingų kreipinių į String.toLowerCase()
13
Profaileriai (3)
14
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.
15
Apkrova - JMeter
16
Apkrova (JMeter) JMeter palaikomi testų planai: Web DB FTP LDAP
Web Servisai JMS Monitoring tests
17
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..
18
.NET įrankiai (statinė analizė)
Reflector Complexity analyzer CCMetrics CRPlugin FxCop Source Monitor
19
Java įrankiai (statinė analizė)
Bandera CheckStyle Classycle FindBugs Jlint PMD Soot
20
.NET įrankiai (Unit testing)
csUnit MbUnit TestDriven.NET QuickUnit.net xUnit.net Nmate NUnitAsp
21
Java įrankiai (Unit testing)
thisTest JTest JWalk JUnitEE JBehave beanSpec
22
Kiti įrankiai (komerciniai)
23
Kiti įrankiai (komerciniai)
24
Kiti įrankiai (komerciniai)
25
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
26
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
27
Testuokite ir prisiminkite, kad...
28
Ačiū už dėmesį...
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.