Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Ik heb snel even een voorbeeldje in elkaar geplakt voor een stack een hierin worden een aantal methoden getest (niet allemaal want het is een voorbeeld.oisyn schreef op 03 juni 2004 @ 15:28:
Alarmnummer: Mja, dit zegt een beetje weinig. Misschien moet je een simpeler voorbeeld kiezen en even uitleggen wat je nou precies aan het testen bent, ipv een copy-paste uit je prolog compiler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
| class StackTestCase extends TestCase{
private Stack _stack = new Stack();
public StackTestCase(String fixture){
super(fixture);
}
public void test_pop_fromEmptyStack(){
try{
_stack.pop();
fail("EmptyStackException expected");
}catch(EmptyStackException ex){
}
}
public void test_pop_fromNonEmptyStack(){
Object item = "bla";
_stack.push(item);
Object foundItem = _stack.pop();
assertSame(item,foundItem);
assertTrue(_stack.isEmpty());
}
public void test_isEmpty_onNonEmptyStack(){
_stack.push("onzin);
assertFalse(_stack.isEmpty());
}
public void test_isEmpty_onEmptyStack(){
assertTrue(_stack.isEmpty());
}
} |
Ik zal ook meteen even het stuk van mijn ANT-script erbij zetten. Alle unittesten die worden automatisch uitgevoerd, zo lang de testsuites maar eindigen op TestSuite.java.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
| <target name="test.run" depends="clean,compile.core,compile.parser" description="Tests sourcefiles against answerfiles"> <mkdir dir="${classes.junit}"/> <javac srcdir="${src.run-test}" debug="on" destdir="${classes.junit}" source="1.5"> <classpath> <pathelement path="${classes.core}"/> <pathelement path="${classes.parser}"/> <fileset dir="${lib}"> <include name="**/*.jar"/> </fileset> <fileset dir="${test-lib}"> <include name="**/*.jar"/> </fileset> </classpath> </javac> <mkdir dir="${junit-reports}"/> <junit haltonerror="yes" fork="on" printsummary="on"> <classpath> <pathelement path="${classes.core}"/> <pathelement path="${classes.parser}"/> <pathelement path="${classes.junit}"/> <fileset dir="${lib}"> <include name="**/*.jar"/> </fileset> <fileset dir="${test-lib}"> <include name="**/*.jar"/> </fileset> </classpath> <formatter type="plain"/> <jvmarg value="-ea"/> <jvmarg value="-Xbootclasspath/p:${jsr14.home}/gjc-rt.jar"/> <batchtest todir="${junit-reports}"> <fileset dir="${src.run-test}"> <include name="**/*TestSuite.java"/> </fileset> </batchtest> </junit> </target> |
[ Voor 45% gewijzigd door Alarmnummer op 03-06-2004 15:58 ]
Dit is echt cool en in grote projecten en bij moeilijke functies etc zeer bruikbaar! Super dit!
If you are not wiping out you are nog pushing enough...
Nooit eigenlijk. En alle keren dat ik een grote zoektocht was begonnen naar een bug bleek die eigenlijk helemaal niet te bestaan en had een gebruiker iets verkeerd ingesteld (zoals een tv die kapot is omdat de stekker er niet in zit).Alarmnummer schreef op 03 juni 2004 @ 12:15:
[...]
Hoe vaak ben jij een uur kwijt om te zoeken naar een bug? En hoeveel sourcecode moet je daar gemiddeld voor door bladeren?
Volgens mij ben ik nou net met iets bezig waar unit-testen niet zo relevant zou zijn. Want eigenlijk is het systeem wat ik nu aan het maken ben één grote setter en getter. Je stop er X,Y en Z in en er moet X,Y en Z weer uitkomen. Als dat werkt dan heb ik de unit-test toch niet (meer) nodig?[...]
De kunst van het unit testen is op zoek te gaan naar het punt dat unit testen uit kan. Ik ben door meer unit testen minder tijd nodig met ontwikkeling en zorg ervoor dat mijn api`s sluitend(er) zijn dan zonder testen. Maar je kunt uiteindelijk ook alles gaan testen, maar dan heb je geen tijdswinst meer. Unit testen levert mij dus tijdswinst op doordat ik een reeks testen maak waarbij ik met relatief weinig moeite de meeste bugs eruit kan pakken.
Kun je iets meer achtergrond info waar jij deze zware manier van testen dan voor nodig hebt?
Vertel jij nu dat alle software die je schrijft nooit een bug bevat? Damn, misschien moet je eens naar Bill bellen.seweso schreef op 03 juni 2004 @ 16:38:
[...]
Nooit eigenlijk. En alle keren dat ik een grote zoektocht was begonnen naar een bug bleek die eigenlijk helemaal niet te bestaan en had een gebruiker iets verkeerd ingesteld (zoals een tv die kapot is omdat de stekker er niet in zit).
En die 'setter' wordt door geen enkele andere applicatie / method / oid gebruikt, en gebruikt ook geen enkele andere method ?Volgens mij ben ik nou net met iets bezig waar unit-testen niet zo relevant zou zijn. Want eigenlijk is het systeem wat ik nu aan het maken ben één grote setter en getter. Je stop er X,Y en Z in en er moet X,Y en Z weer uitkomen. Als dat werkt dan heb ik de unit-test toch niet (meer) nodig?
Trouwens om na te gaan of die functie werkt, zal je ze toch op de een of andere manier moeten testen.
Verder ontgaat me de bedoeling ook van een systeem als hetgeen eruit komt precies hetzelfde is als hetgeen je erin gestoken hebt, maar dat is een andere discussie.
[ Voor 14% gewijzigd door whoami op 03-06-2004 16:44 ]
https://fgheysels.github.io/
a) je hebt nog niet veel ervaringseweso schreef op 03 juni 2004 @ 16:38:
Nooit eigenlijk. En alle keren dat ik een grote zoektocht was begonnen naar een bug bleek die eigenlijk helemaal niet te bestaan en had een gebruiker iets verkeerd ingesteld (zoals een tv die kapot is omdat de stekker er niet in zit).
b) je bent goddelijk
c) je liegt
Kijk eens naar die unit test. Is die ingewikkeld? Het stel echt niet veel voor hoor? En als je je scripts een beetje goed instelt dan is zelfs het draaien een peuleschil.Volgens mij ben ik nou net met iets bezig waar unit-testen niet zo relevant zou zijn. Want eigenlijk is het systeem wat ik nu aan het maken ben één grote setter en getter. Je stop er X,Y en Z in en er moet X,Y en Z weer uitkomen. Als dat werkt dan heb ik de unit-test toch niet (meer) nodig?
Eigelijk alles wat niet triviaal is zou je kunnen unit testen. Als jij kan garanderen dat je weinig fouten in je code hebt, dan is unit testen misschien niet voor jou. Maar ik en de andere developers zijn it-ers van vlees en bloed. En wij maken gewoon fouten. Sommige fouten zijn ongelovelijk stom, maar je hebt ook veel gecompliceerdere fouten. Op het moment dat je een groot systeem hebt met veel complexiteit, dan is het een drama om een bug op te sporen omdat die op veel punten kan zijn ontstaan. Met unit testen kan je voor subsystemen zeggen dat de kans redelijk klein is dat de fout daar is ontstaan omdat die getest zijn. Hierdoor kan je je op een kleiner gebied concentreren om de bug te achterhalen. In de praktijk is het trouwens niet altijd even eenvoudig hoorKun je iets meer achtergrond info waar jij deze zware manier van testen dan voor nodig hebt?
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Voorwaarde hiervoor is wel dat de unittests ook daadwerkelijk voor elke unit ( klassen & methode ) geschreven wordt.
Ik ben van mening dat een testsuite en het checken van pre- en postcondities iets essentieels is voor projecten waar meer dan één persoon aan werkt. Als je met meer mensen werkt, moet je elke unit beschermen tegen foutief gebruik door anderen. Andere mensen moeten zich ergens op kunnen richten, anders is er niet met je units te werken.
"Ik heb zo veel soep gegeten, dat kan een mens niet aan. Ik heb zo veel soep gegeten, kan bijna niet meer staan. Ik zat daar maar te slurpen achter die grote kop en als ik bijna klaar was, dan schepten ze weer op!" (Hans Teeuwen)
a) ik ben pas 2jr ing informaticusAlarmnummer schreef op 03 juni 2004 @ 16:47:
[...]
a) je hebt nog niet veel ervaring
b) je bent goddelijk
c) je liegt
b) mijn psychiater noemt dat grootheidswaanzin
c) ik lieg niet, ik tel gewoon alle spaghetti programma's die ik heb opgeleverd niet mee
Ja die is ingewikkeld. Maar dat zal wel met de ingewikkeldheid van je applicatie te maken hebben. Maar ik zie zeker voordelen in unit-testen, vooral als form van documentatie. Daarnaast denk ik dat het zorgvuldig en tijdig testen van delen van een systeem uiteindelijk zal leiden tot een beter systeem, en dan bedoel ik qua ontwerp en niet alleen omdat er minder bugs in zullen zitten.Kijk eens naar die unit test. Is die ingewikkeld? Het stel echt niet veel voor hoor? En als je je scripts een beetje goed instelt dan is zelfs het draaien een peuleschil.
Jij denkt dus dat ik alleen bezig ben met triviale dingen?Eigelijk alles wat niet triviaal is zou je kunnen unit testen. ....
Dat heb ik niet gezegdseweso schreef op 03 juni 2004 @ 22:33:
[...]
Jij denkt dus dat ik alleen bezig ben met triviale dingen?
[ Voor 3% gewijzigd door Alarmnummer op 03-06-2004 22:46 ]
1. Een functie die excel-cellen die op het klembord staan automatisch omvormt naar een array.
2. Een wachtwoord generatie-functie
3. Een functie die de tijd terug-geeft van een centrale server.
4. Functies en objecten die gegevens uit een database halen (database abstractie-laag).
5. Xml lezen, schrijven en tranformeren.
6. Externe programma's en api's aanroepen zoals MS-Word, xml/xhtml invoegen in een samengevoegd ms-word-document.
7. Conversie functies (b.v. speciale karakters uit een string halen)
8. Functies en classen t.b.v. de grafische user-interface.
9. Functie om te bepalen of iets een werkdag is.
10. Classen/functies waarmee je de beschikking krijgt over een 'oneindig' aantal velden die je aan elke tabel/object kan koppelen.
Ik heb het misschien mis, maar volgens mij kost het maken van bovenstaande unit-tests meer tijd dan de functies/classen zelf...
Ik ben als het gaat om testen heel pragmatisch: als het werkt dan werkt het.
Jij hebt dus geen bugs in je code? Jij pas nooit je functies aan?seweso schreef op 03 juni 2004 @ 23:26:
Ik heb het misschien mis, maar volgens mij kost het maken van bovenstaande unit-tests meer tijd dan de functies/classen zelf...
Ik ben als het gaat om testen heel pragmatisch: als het werkt dan werkt het.
Als je je unit tests al hebt, hoef je ze na het bugfixen van bugs niet aan te passen en kan je de tests gebruiken om je bugfix te testen. Zeker met complexere code levert het uiteindelijk tijdwinst op.
Overigens vraag je hoe een aantal gevalen te unit testen. Unit testen doe je op losse functies en methods. Die hebben allemaal pre en post condities. Daar test je dus op.
En als je bij jou voorbeeld 2 (wachtwoord generatie) niet een unit test kan schijven in minder tijd dan waarin je je wachtwoord functie hebt geschreven dan is er denk ik iets mis
De rest van je voorbeelden (op 1 na) beschrijven allemaal meerdere gevallen i.p.v. 1 losse method.
Visuele dingen kan je niet unit testen nee, dus dat wordt wat moeilijk. Maar zodra je een functie of method hebt met een input die dan een bepaalde output waarde moet hebben dan is het unit testen in principe vrij makkelijk. Eenmaal je unit tests geschreven en je hebt er daarna alleen maar tijdwinst door als de functies / methods aangepast zijn. Je hoeft dan niet meer handmatig te testen.
"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney
Ff kijken of je gelijk hebt...Creepy schreef op 03 juni 2004 @ 23:40:
[...]
Jij hebt dus geen bugs in je code? Jij pas nooit je functies aan?
Als je je unit tests al hebt, hoef je ze na het bugfixen van bugs niet aan te passen en kan je de tests gebruiken om je bugfix te testen. Zeker met complexere code levert het uiteindelijk tijdwinst op.
Overigens vraag je hoe een aantal gevalen te unit testen. Unit testen doe je op losse functies en methods. Die hebben allemaal pre en post condities. Daar test je dus op.
En als je bij jou voorbeeld 2 (wachtwoord generatie) niet een unit test kan schijven in minder tijd dan waarin je je wachtwoord functie hebt geschreven dan is er denk ik iets mis
De rest van je voorbeelden (op 1 na) beschrijven allemaal meerdere gevallen i.p.v. 1 losse method.
Visuele dingen kan je niet unit testen nee, dus dat wordt wat moeilijk. Maar zodra je een functie of method hebt met een input die dan een bepaalde output waarde moet hebben dan is het unit testen in principe vrij makkelijk. Eenmaal je unit tests geschreven en je hebt er daarna alleen maar tijdwinst door als de functies / methods aangepast zijn. Je hoeft dan niet meer handmatig te testen.
1. 1 functie (15 regels code, 15 minuten)
2. 1 functie (15 regels code, 4 minuten)
3. 1 functie (1 regel code, 1 minuut excl server side prog.)
4. 1 functie (20 regels code, 2 uur, generieke dlookup functie)
5. Word uiteraard (grotendeels) uitbesteed aan msxml2
6. 1 functie (30 regels code, 6 uur)
7. Verscheidene kleine functies
8. Functies en classen t.b.v. de grafische user-interface.
9. 1 functie
10. Aap
Eeh nee, het merendeel is wél één functie...
En ja ik snap dat je voor een wachtwoord-generatie programma een unit-test kan maken voor de pre- en post-condities. Maar om de pre en post-condities te controleren heb assert functies voor (wat al eerder in dit Topic is genoemd). Waar je op zou moeten testen is of de output wel degelijk random is, én niet overeenkomt met de vorige start van de applicatie. Maar ja als je de functie eenmalig schrijft en er vervolgens nooit meer iets aan gaat wijzigen....
Dus..of mij overtuigen dat ik het ook nodig heb, of aangeven waarom jullie die unit-test wél nodig hebben.
En is het niet zo dat je unit-test nodig hebt in Java omdat je daar geen command-window hebt?
Unit tests zijn niet noodzakelijk, ze zijn alleen handig en kunnen de ontwikkeltijd verminderen doordat je sneller je componenten kunt testen (nagaan of ze correct werken) als je er veranderingen aan gedaan hebt.seweso schreef op 04 juni 2004 @ 01:02:
[...]
Dus..of mij overtuigen dat ik het ook nodig heb, of aangeven waarom jullie die unit-test wél nodig hebben.
Wat heeft een command window ermee te maken?En is het niet zo dat je unit-test nodig hebt in Java omdat je daar geen command-window hebt?
https://fgheysels.github.io/
Mooi, dan zijn unit tests er dus makkelijk voor te schrijvenseweso schreef op 04 juni 2004 @ 01:02:
[...]
Ff kijken of je gelijk hebt...
1. 1 functie (15 regels code, 15 minuten)
2. 1 functie (15 regels code, 4 minuten)
3. 1 functie (1 regel code, 1 minuut excl server side prog.)
4. 1 functie (20 regels code, 2 uur, generieke dlookup functie)
5. Word uiteraard (grotendeels) uitbesteed aan msxml2
6. 1 functie (30 regels code, 6 uur)
7. Verscheidene kleine functies
8. Functies en classen t.b.v. de grafische user-interface.
9. 1 functie
10. Aap
Eeh nee, het merendeel is wél één functie...
Je kan prima een unit test schrijven die 2 keer je passwoord generatie functie aanroept, en deze twee passworden vergelijkt.En ja ik snap dat je voor een wachtwoord-generatie programma een unit-test kan maken voor de pre- en post-condities. Maar om de pre en post-condities te controleren heb assert functies voor (wat al eerder in dit Topic is genoemd). Waar je op zou moeten testen is of de output wel degelijk random is, én niet overeenkomt met de vorige start van de applicatie.
Ah... sue me. Ik maak wel eens fouten in mijn code. Er zitten wel eens bugs in mijn functies ook al denk ik dat ze goed werken. En af en toe doe ik zelfs wat optimalisatiesMaar ja als je de functie eenmalig schrijft en er vervolgens nooit meer iets aan gaat wijzigen....
Tuurlijk kan je ook asserts gebruiken, maar zorg je er dan wel voor dat je die asserts weer netjes uitzet op het moment dat je uitlevert aan een klant? Het zou niet de eerste keer zijn dat ik, zelfs in "goed" werkende software de asserts voorbij zie vliegen op de commandline.Dus..of mij overtuigen dat ik het ook nodig heb, of aangeven waarom jullie die unit-test wél nodig hebben.
En is het niet zo dat je unit-test nodig hebt in Java omdat je daar geen command-window hebt?
En hoe test je met een assert of de output klopt met de input? In de aanroepende code?
En dat je in java geen commandline hebt is bull. Ik ben unit tests gaan gebruiken toen ik met Delphi bezig was. Unit testen is echt niet een specifiek java iets.
Edit: tuurlijk kan je ook zonder unit tests de boel doortesten, of laten doortesten. Maar zeggen "ah, daar heb ik asserts voor" is naar mijn idee wat kort door de bocht
[ Voor 18% gewijzigd door Creepy op 04-06-2004 09:23 ]
"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney
Voor veel functionaliteit heb je toch veel van je server nodig. Hoe gaat dit dan precies? Of kan het niet?
It's shocking to find how many people do not believe they can learn, and how many more believe learning to be difficult.
check: http://www.junit.org/news/extension/index.htmflowerp schreef op 05 juni 2004 @ 17:49:
Is er hier eigenlijk iemand die ervaring heeft met unit testen (junit) en java application servers (J2EE)?
Voor veel functionaliteit heb je toch veel van je server nodig. Hoe gaat dit dan precies? Of kan het niet?
Ik ga er iniedergeval wel naar kijken. Hopen dat het ook bruikbaar is voor Eclipse in combinatie met Orion.
It's shocking to find how many people do not believe they can learn, and how many more believe learning to be difficult.
Verwijderd
Wij hebben daarvoor ServerTestCase (http://www.junit.org/junit/download/ServerTestCase.zip , via die link van Alarmnummer wel te vinden). Je moet dan de ServerTestCase tests deployen naar de server, en via een session layer aanroepen. Het resultaat/fout wordt dan mooi doorgegeven naar de cliënt.flowerp schreef op 05 juni 2004 @ 17:49:
Is er hier eigenlijk iemand die ervaring heeft met unit testen (junit) en java application servers (J2EE)?
Voor veel functionaliteit heb je toch veel van je server nodig. Hoe gaat dit dan precies? Of kan het niet?
Het irritante is dat je bij het ontwikkelen van een test steeds die test apart moet deployen. (wij werken nog met BEA WLS 6.1, waar hot deploy enkel een officiële spec schijnt te zijn, een BEA consulente vertelde dat 8.1 beter zou zijn, maar dat het werken zonder JAR/EAR/WARs nog steeds een kadukke optie was
Waar je ook voor moet opletten zijn rollbacks, als we een fout (al dan niet gewild) gooien in de code (veel fouten gaan gepaard met een rollback om welbekende redenen), en de test vangt die op (omdat de test juist 'test' of die fout gegooid wordt) en de volgende test géén aparte test (methodenaam die begint met test) is, dan krijg je fouten 'transaction already rolled back' en dergelijke. Elke test wordt namelijk apart gestart via die session EJB. Dus daar moet je dan ook wel opletten.
Reporter: Mister Gandhi, what do you think of western civilisation?
Gandhi: I think it would be a good idea
Als je dit topic door ploegt zul je meer dan genoeg goeie examples tegen komen.MUBA schreef op dinsdag 30 november 2004 @ 09:52:
Is er een simpele - maar diepgaande - Nederlandstalige uitleg over hoe je unit tests schrijft? Want ik ken het woord, maar ik kan maar niet te weten komen wat het nou precies inhoud.
Is er een reden om dit niet met een static void main() maar met een void test() te doen?
Ik weet niet zoveel van unittests af, dus dit is een eerlijke vraag.
DIt kan in feite een TestCase uit het framework zijn, voordeel van het junit framework (kort door de bocht) is dat je verschillende handige functie's kado krijg, je een test raamwerk op kunt zetten en met build scrpits diverse test kunt uitvoeren. M.a.w. het neemt je een boel werk uit handen i.p.v. dan zelf o p te zetten met consoleprogrammatjes.Eelke Spaak schreef op dinsdag 30 november 2004 @ 11:06:
Om SessionBeans in een J2EE-applicatie te testen, heb ik simpel een consoleprogrammaatje geschreven dat verbinding maakt met de server, en dan wat methodes aanroept om te kijken of ze het goede resultaat leveren.
Unit testen klikt heel interessant, maar tot welk niveau is het bruikbaar? Ik krijg de indruk dat je meer per functie aan het testen bent. Hoe werkt dat dan met recursieve functies? Ik heb bijv. een keer een zeer uitgebreide matchings functie gemaakt om paren te combineren. De had ik onderverdeeld in een aantal subfunctie, maar die zijn allemaal afhankelijk van de toestand die de aanroepende procedure.
Stel dat ik daar een TestCase voor schrijf, dan is de test case in eerste instantie dus verantwoordelijk voor het neerzetten van de juiste toestand? En hoe test je dan enkele recursieve functies (die echt alleen zichzelf aanroepen), de unit test kan dan toch ook niet veel meer doen dan afwachten tot dat deze klaar is (of je test duurt te lang en uiteindelijk ontdenk je dat je in een oneindige lus terecht gekomen bent).
www.fendt.com | Nikon D7100 | PS5
Verwijderd
"Beauty is the ultimate defence against complexity." David Gelernter
Uiteraard, maar daarna roept hij zichzelf aan totdat er een bepaalde voorwaarde (niet meer) geldig is.Verwijderd schreef op dinsdag 30 november 2004 @ 15:37:
Een recursieve functie moet toch altijd eenmalig door een andere functie worden aangeroepen?
www.fendt.com | Nikon D7100 | PS5
Dus is de TestCase verantwoordelijk voor het initialiseren van de toestand, of splits je de recursie voor het testen in twee delen waarvan 1 het recursieve deel is en 1 het reken deel? Voor simpele recursieve dingen zet ik nog wel eens alles gewoon in 1 functie.Macros schreef op dinsdag 30 november 2004 @ 15:38:
Omdat je weet hoe de functie werkt kan je ook extra testen op 'boundary values', dus dan test je de base case apart. ...
www.fendt.com | Nikon D7100 | PS5
"Beauty is the ultimate defence against complexity." David Gelernter
Ander leuke plugin is de jcoverage die aangeeeft hoeveel 'dekking' je met je junit testjes hebt bereikt op je code.
Alles wordt zo lekker voor je geautomatiseerd, en dat is wel zo handig met deadlines.
Nog een note voor TS: maven kan jou geliefde build files zelfs genereren!
nope
nope
Als ik met wat complexere zaken bezig ben dan draai ik alleen maar unit testen (ik compileer dan niet eens). Dus een nachtelijke test is leuk.. maar niet voldoende.bloody schreef op dinsdag 30 november 2004 @ 21:10:
Ik wil TS hierbij aanraden om eens te kijken naar maven (http://maven.apache.org). Dit tooltje (TOOL!) is handig om bv s'nachts al je junit testjes te draaien , zodat je morgenvroeg als je binnenkomt zetten, direct kunt zien wat en hoeveel er fout gaat!.
In de toekomst (als unit testen bij ons standaard is.. en niet alleen bij mij) zou het ook een idee zijn om een continuous integration server te gaan draaien, waarbij het niet mogelijk is om code in te checken waarvan de unit tests niet lukken. Weet je zeker dat je altijd een werkbare source hebt.
Ik heb clover wel eens gebruikt.Ander leuke plugin is de jcoverage die aangeeeft hoeveel 'dekking' je met je junit testjes hebt bereikt op je code.![]()
Dus hoeveel je hebt afgetest.
Maar een volautmatische test draaien omdaarmee af te leiden hoeveel coverage je hebt vind ik niet voldoende. Meestal draai ik het in combinatie met een paar tests.. ik krijg dan veel beter te zien wat er gecovered is.. veel informatiever.
ant test.all vind ik ook snel genoegAlles wordt zo lekker voor je geautomatiseerd, en dat is wel zo handig met deadlines.
Kan wel zijn.. maar de standaard is ANT en ik werk bij een bedrijf waar dit ook de standaard is.. nouja... als ze er dan ook echt gebruik van maken zoals het hoort.. Maar ANT is (helaas) de standaard.. en probeer me daar maar aan te houden.Nog een note voor TS: maven kan jou geliefde build files zelfs genereren!
En ja.. maven is beter
[ Voor 11% gewijzigd door Alarmnummer op 30-11-2004 21:32 ]
"The shell stopped unexpectedly and Explorer.exe was restarted."
Naasten testen op crashes e.d. valt er nog veel meer te testen hoordotcode schreef op woensdag 01 december 2004 @ 21:12:
Testen is niet nodig als je de oorzaak van de bugs kan achterhalen en die kan weg nemen. Zie http://c2.com/cgi/wiki?SourcesOfBugs.
Werkt het produkt zoals de gebruiker het verwacht, kloppen de uitkomsten wel met de ingevoerde waarden etc. etc. etc.
"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney