Praktike testkazoj por ĉiu funkcio estas kreitaj kaj testitaj antaŭ ol la programaro estas liberigita, kaj se la testo malsukcesas, nova kodo estas skribita (aŭ reverkita aŭ flikita) por pasigi la teston kaj fari la kodon simpla kaj senerara.
Test Driven Development (TDD) komenciĝas per desegnado kaj evoluigado de testoj por ĉiu eta funkcio en aplikaĵo. La TDD-kadro instrukcias programistojn skribi novan kodon nur se aŭtomatigita testo malsukcesis. Ĉi tiu aliro evitas kodduobligon. La kompleta TDD-modulo estas test-movita evoluo.
Test Driven Development (TDD) originis kiel parto de pli granda softvardezajnparadigmo konata kiel Extreme Programming (XP), kiu estas parto de la Agile softvarmetodaro.
La simpla koncepto de TDD estas skribi kaj ripari malsukcesajn testojn antaŭ skribi novan kodon (antaŭ evoluo). Ĉi tio helpas eviti kodon duobligon dum ni skribas malgrandan kvanton da kodo samtempe por pasigi testojn. (Testoj estas nenio pli ol postulkondiĉoj, kiujn ni devas testi por kontentigi ilin).
Test-movita evoluo estas procezo de evoluigado kaj funkciado de aŭtomatigitaj testoj antaŭ la fakta evoluo de la aplikaĵo. Tial, TDD ankaŭ estas foje nomita Test First Development.
Antaŭ ol iu nova kodo estas skribita, la programisto unue devas krei malsukcesan unuteston. Tiam, la programisto - aŭ paro, aŭ mafio - kreas ĝuste sufiĉe da kodo por kontentigi tiun postulon. Post kiam la testo pasas, la programisto povas refaktori la projekton, farante plibonigojn sen ŝanĝi la konduton.
Dum TDD temigas ununivelajn programinteragojn, ekzistas aliaj popularaj metodoj, kiel ekzemple akcepto-test-movita evoluo (ATDD) aŭ kondut-movita evoluo (BDD), kiuj temigas testojn kiuj povas esti komprenitaj fare de klientoj.
Tiuj metodoj implikas konstrui realmondajn ekzemplojn kiel kunlaboraj testoj inter la inĝenieristiko kaj la kliento antaŭ kodigo, kaj tiam ruli la testojn post kodigo por montri ke la kodo estas efektivigita. Havi la provojn konatajn anticipe plibonigas la kvaliton de la unua fojo. ATDD kaj BDD postulas programistojn, testistojn kaj la komercan flankon labori kune por imagi kaj diskuti la programaron kaj ĝiajn implicojn antaŭ ol la kodo estas kreita.
Test-movita evoluo povas produkti altkvalitajn aplikojn en malpli da tempo ol estas ebla kun pli malnovaj metodoj. Sukcesa efektivigo de TDD postulas programistojn kaj testistojn precize antaŭvidi kiel la aplikaĵo kaj ĝia funkcieco estos uzataj en la reala mondo.
TDD konstruas regresan teston kiel kromefikon, kiu povas minimumigi homan manan testadon, trovante problemojn pli frue, kondukante al pli rapidaj solvoj. La metoda naturo de TDD certigas multe pli altan unuafojan priraportadon kaj kvaliton ol la klasikaj fazaj kodaj cikloj > testi > ripari > retesti. Ĉar testado estas farita frue en la dezajnociklo, la tempo kaj mono elspezitaj por senararigado poste estas minimumigitaj.
Atenditaj avantaĝoj:
TDD postulas konsiderindan kapablon esti sukcesa, precipe sur la unuonivelo. Multaj heredaĵsistemoj simple ne estas konstruitaj kun unutestado en menso, farante malebla izoli komponentojn por testado.
Ankaŭ al multaj programistoj mankas la kapabloj por izoli kaj krei puran kodon. Ĉiuj grupanoj devas krei kaj konservi unutestojn aŭ ili rapide malnoviĝos. Kaj organizo rigardanta TDD devos investi tempon, malrapidigi iom nun por iri pli rapide poste.
Fine, kiel kun iu ajn metodo, la finrezultoj de TDD estas nur same bonaj kiel la testoj kiuj estis uzataj, kiom precize ili estis faritaj, kaj kiom ili imitas la kondiĉojn renkontitajn de uzantoj de la fina produkto.
Oftaj eraroj:
TDD permesas al la programisto fari bebpaŝojn dum verkado de programaro. La testo estas skribita antaŭ testado de la funkcieco kaj certigas, ke la aplikaĵo taŭgas por testebleco. Testado sur malgranda kvanto de kodo estas farita por kapti erarojn kiuj okazas en la testita kodo. Tiam la funkcieco estas efektivigita. Tio estas referita kiel "ruĝa verda refaktoro" kie ruĝa signifas fiaskon kaj verda montras enirpermesilon. Ĉi tiuj paŝoj tiam estas ripetitaj. La unua celo de programisto estas koncentriĝi pri la ĉeesta tasko kaj venki ĝin.
Ercole Palmeri
Microsoft Excel estas la referenca ilo por analizo de datumoj, ĉar ĝi ofertas multajn funkciojn por organizi datumajn arojn, ...
Walliance, SIM kaj platformo inter la gvidantoj en Eŭropo en la kampo de Real Estate Crowdfunding ekde 2017, anoncas la kompletigon...
Filamento estas "akcelita" Laravel-evoluiga kadro, disponigante plurajn plen-stakojn komponentojn. Ĝi estas desegnita por simpligi la procezon de...
«Mi devas reveni por kompletigi mian evoluon: mi projektos min ene de la komputilo kaj fariĝos pura energio. Fojo instalita en...
Google DeepMind enkondukas plibonigitan version de sia modelo de artefarita inteligenteco. La nova plibonigita modelo provizas ne nur...
Laravel, fama pro sia eleganta sintakso kaj potencaj trajtoj, ankaŭ provizas solidan bazon por modula arkitekturo. Tie…
Cisco kaj Splunk helpas klientojn akceli sian vojaĝon al la Sekureca Operacia Centro (SOC) de la estonteco kun...
Ransomware regis la novaĵojn dum la lastaj du jaroj. Plej multaj homoj bone scias, ke atakoj...