TDD un testēšana
Raitis (daGrevis) Stengrevics
Jautājumi
Cik no jums ir...
- Dzirdējuši par koda testēšanu?
- Vēlas testēt savu kodu?
- Jau testē savu kodu?
- Izmanto TDD?
Kas ir automatizētā testēšana?
Test automation is the use of special software to control the execution of tests and the comparison of actual outcomes to predicted outcomes.
Wikipedia
Kā tas izskatās?
class MathTest extends PHPUnit_Framework_TestCase {
function testAddition() {
$this->assertEquals(2 + 2, 4);
}
function testSubtraction() {
$this->assertEquals(5 - 2, 3);
}
function testMultiplication() {
$this->assertEquals(3 * 2, 6);
}
function testDivision() {
$this->assertEquals(6 / 3, 2);
}
}
~/Php % phpunit test.php
PHPUnit 3.7.19 by Sebastian Bergmann.
....
Time: 0 seconds, Memory: 2.25Mb
OK (4 tests, 4 assertions)
~/Python/daGrevis.lv ±master % bin/python dagrevis_lv/manage.py test
Creating test database for alias 'default'...
.........................................................................................................................................................................................................................................................................................................................................................s.......................................................s........................................................................
----------------------------------------------------------------------
Ran 474 tests in 22.313s
OK (skipped=2)
Destroying test database for alias 'default'...
Kādi ir testēšanas plusi (+)?
- Pierāda, ka kods strādā un strādās nākotnē,
- Ietaupa programmētāja laiku ilgtermiņā,
- Palīdz atrast vairāk bagus un nepieļaut jau atrasto bagu parādīšānos nākotnē,
- Atļauj sistēmu ātrāk refaktorēt, bez bailēm to salauzt,
- Bieži vien uzlabo sistēmas arhitektūru,
- Palīdz saprast kā sistēmā strādā, it īpaši — jaunajiem programmētājiem;
Kādi ir testēšanas mīnusi (-)?
- Sākotnējais laiks fīčas izstrādei būs ilgāks,
- Tev un kolēģiem ir jāiemācās vēl viena jauna lieta,
- Sistēmā ir vairāk koda (testu kods) un ir nepieciešami tūļi kā phpUnit,
- Ja kāds no testiem feilo, ir jāsaprot vai kkas ir salūzis sistēmā vai pašā testā ir kļūda;
Kā sākt testēt kodu?
Imperfect tests, run frequently, are much better than perfect tests that are never written at all.
Martin Fowler
Ko ir iespējams notestēt un cik daudz to vajag darīt?
Kas ir TDD?
Test-driven development (TDD) is a software development process that relies on the repetition of a very short development cycle: first the developer writes an (initially failing) automated test case that defines a desired improvement or new function, then produces the minimum amount of code to pass that test, and finally refactors the new code to acceptable standards.
Wikipedia
Paldies par jūsu uzmanību!
Jautājumi?