Senior Ontwikkelaars en Eenheid Toetse - Vereis?Is hulle nie toegelaat word om te gebruik lakeie?[gesluit]

StackOverflow https://stackoverflow.com/questions/23688

  •  09-06-2019
  •  | 
  •  

Vra

Moet senior ontwikkelaars vrygestel word van eenheid toets - of moet hulle toegelaat word om te gebruik lakeie om dit te implementeer?Wat is die beste manier om te motiveer mense wat nie gewoond is aan die gebruik van eenheid toets tegnieke om hulle te aanvaar?

Was dit nuttig?

Oplossing

Ek sou argumenteer dat uit 'n TDD puristiese oogpunt (dws een wat dink dat eenheid toetse moet geskryf word voor implementering), moet senior ontwikkelaars skryf meer eenheid toetse as lakeie, nie minder .

Die rede hiervoor is dat sedert eenheid toetse eerste kom, skryf hulle vereis intieme kennis van die kode basis. As jy toelaat dat die lakeie hulle skryf, is jy in wese laat diegene wat die minste oor jou domein weet dikteer die struktuur van jou kode basis. Dit klink soos 'n slegte idee om my.

Ander wenke

Ek dink dat lakeie doen eenheid toetse vir iemand anders is die punt van 'n eenheid toetse om te begin met die vernietiging van. Die programmeerder wat kode skryf moet weet hoe die kode moet breek en wat sy verwag gedrag is. Net omdat iemand anders nie beteken die oorspronklike programmeerder nie vry te stel van wat verantwoordelikheid.

(Ongemaklike frasering weens geslag neutraliteit.)

Die persoon skryf die toets = definieer hoe die stelsel moet werk = die "baas"

Die mense implementering van die toetse is die sogenaamde "lakeie"

Dit klink na 'n geval van 'n ou hond wat nie soos nuwe truuks. En soos die spreekwoord sê, dit is moeilik om hulle te kry om te verander ... TFD (toets-eerste ontwikkeling) is baie pret sodra jy begin om dit te doen, miskien het 'n interne 1-dag werkswinkel op TDD of TFD wat die hele span.

  

As senior ontwikkelaars vrygestel van eenheid toets

Beslis nie. Hulle moet nie senior ontwikkelaars glad dan. Senior ontwikkelaars moet leiers wat die pad wees, die idee dat lakeie doen dit lyk absurd -. Hoekom pla toets glad dan

Ek dink een moontlike manier van hantering van sulke situasies sou die Senior Ontwikkelaars kan die meerderheid van die eenheid toetse te skryf. Dit beteken dat hulle die definisie en die ontwerp van die manier waarop die program moet werk. Die lakeie kan skryf dan die kode op die proef te pas, leer die ontwerp philosphies van die senior man terwyl hulle by dit.

Deel I (Senior Ontwikkelaars en eenheid toets)

As ek dink aan TDD of toets Gedryf Design, die Eenheid Toetse dien die doel van die bestuur van die evolusionêre ontwerp van die stelsel, hopelik verseker voortdurende verbetering.
Skryf die toets vorms die kode of beklemtoon kwessies met 'n besluit wat reeds gemaak, hopelik lei tot 'n refactoring proses om die gehalte van die ontwerp te verhoog.

In my ervaring, die senior ontwikkelaar is gewoonlik die persoon met die meeste ervaring en vermoë, wat beteken dat hulle behoort te wees in 'n beter posisie om hierdie refactoring geleenthede raak te sien. (Spoor die kode ruik)

Daar is drie situasies wat ek kan dink, aan die bopunt van my kop, waar iemand anders skryf die toetse vir jou kan aanvaarbaar wees.

  1. aanvaarding toetse / kliënt Toetse / End toetse End. Noem dit wat jy wil, maar ek bedoel die toetse wat begin by die data insette punt, (web diens, webblad, aansoek skerm insette), en deurkruis die hele stapel van die stelsel, (om 'n databasis, bel na 'n ander diens, terug ronde om die skerm insette uitslae ens). Dit kan geskryf word deur iemand wat nie die implementering van die besonderhede van die individuele eenhede wat uitgeoefen word deur die toetse.
  2. Gepaarde Programmering ( tafeltennis Patroon ) -

      

    'n skryf 'n nuwe toets en sien dat dit   versuim.
    B implemente die kode wat nodig is   om die toets te slaag.
    B skryf die volgende   toets.
    A implemente dit.

  3. Bug Fix Toetse - Wanneer 'n fout gevind word, is dit dikwels 'n goeie praktyk om 'n versuim toets wat die defek ontbloot skryf. Sodra hierdie toets is in plek is dit heeltemal moontlik dat iemand implemente die kode wat die toets slaag maak. Ek dink nie dat dit alles wat goed 'n idee as die daad van die skryf van die toets wat in gebreke bly as gevolg van die gebrek gee dikwels 'n paar insigte oor hoe 'n oplossing kan geproduseer word.

In kort my antwoord op jou eerste vraag sal wees, geen 'n senior ontwikkelaar moet nie vrygestel van die skryf van eenheid toetse wees.

Deel II (mense te motiveer om toetse te skryf)

Dit is iets wat ek probleme met in die verlede gehad het. Selfs al het ek nou probeer en uit te voer TDD so dikwels is gepas, dit het my 'n paar maande om te sien dat daar 'n werklike voordeel vir die skryf van toetse.
Ek glo dat probeer om ander te wys die voordele van TDD en eenheid toets is baie moeilik. Dit is net vir die persoon ervarings vir hulself, wat 'ah ha "oomblik wanneer TDD / eenheid toetse 'n subtiliteit in hul kode het beklemtoon dat hulle anders dalk gemis, of het hulle gehelp om 'n fout in kort tyd op te los, dat hulle sien die voordele. Kry hulle op daardie punt kan baie moeilik wees.
Ek persoonlik het daar by paarprogrammering in die bogenoemde tafeltennis Patroon, in samewerking met 'n ervare TDDer en sien die kode ons skryf aan 'n nie-triviale stukkie funksionaliteit te los ontwikkel in wat 'n elegante oplossing genoem kan word. Gevolg deur daardie stuk werk wat dit deur QA en in die Live Omgewing sonder enige defekte wat daarteen.

In kort, ek dink dat paring met 'n ervare programmeerder wat reeds oortuig van die voordele wat kom uit die skryf van eenheid toetse is 'n goeie manier om te help iemand gemotiveer om te skryf eenheid toetse word.

Beslis nie; Op die heel minste, want dit is soveel makliker om toetse vir kode wat jy jouself te ontwikkel skryf. Maar dit is belangrik vir alle ontwikkelaars, ongeag van senioriteit, om eenheid-toets al hul kode; indien hulle ontwikkel om te weet hul kode moet toetsbaar wees die vrug van hul arbeid sal veel groter wees.

As jy nodig het om ontwikkelaars in eenheid-toetsing te motiveer druk net op die huis van die voordele en die tyd wat op die lange duur sal gered word. As hulle in die gewoonte van die skryf van eenheid-toetse vir hul kode sal hulle binnekort begin om dit te doen as 'n saak van die kursus.

As 'n senior ontwikkelaar hul eie toets nie doen nie, dan is hulle nie 'n senior ontwikkelaar.

'n gebrek aan bereidwilligheid om toets is byna altyd 'n teken van luiheid of onbekwaamheid (of albei), en nie 'n eienskap wat gevind moet word in 'n senior ontwikkelaar.

Die enigste scenario wat ek kan dink waar dit gepas sou wees vir 'n senior ontwikkelaar te hê iemand anders skryf hul eenheid toetse sal wees in die geval waar 'n junior nuwe huur word grootgemaak om spoed op dinge. Dit kan 'n goeie taak vir die kry van hul voete nat terwyl die skryf van 'n paar kode wees.

Een van die grootste voordele van eenheid toetse is die onmiddellike terugvoer wat jy vertel hoe goed jy doen. As jy die implementering van jou toetse uit te kontrakteer, sal jy geen terugvoer te kry as jou ontwerp werk of nie. En die mense wat sukkel met 'n slegte ontwerp het geen manier om dit reg te stel.

As jy 'n senior ontwikkelaar, dit is deels omdat jy ervaar genoeg om daardie eenheid toets weet is 'n groot ontwikkeling praktyk wat help jy produseer beter sagteware

Ek het nie eens met die godsdiens van TDD, maar ek sien 'n baie waarde in eenheid / ens toets, en doen dit baie as ek code.

Die punt is egter niemand regtig weet wat die kode is veronderstel om te doen behalwe die persoon wat dit geskryf het, en dikwels hulle weet nie eens of weet.

Met dit in gedagte, is jy nie van plan om veel waarde uit 'lakeie' skryf die toetse omdat

kry
  1. Hulle sal nie 'n in-diepte begrip van al die subtiele hoek gevalle
  2. Hulle sal nie omgee vir die kode, want hulle het niks belê in dit
  3. Hulle sal voel soos hulle is behandel soos idiote.

Selfs as hulle is idiote, niemand hou daarvan om behandel te word soos een. As jy wil hê dat jou personeel om op te hou, is dit 'n goeie manier om hulle aan te moedig.

Niemand moet word vrygestel van die skryf van eenheid toetse.Alle ontwikkelaars moet in staat wees om hulle te skryf, en eenheid toetse moet hersien word as deel van jou kode hersiening proses, sowel.Die kompleksiteit van die eenheid toetse sal gewoonlik word'n funksie van die vaardigheid van die ontwikkelaar - met die meer komplekse kode van plan om meer senior ontwikkelaars, dus die meer komplekse en groter aantal van die eenheid toetse te gaan na hulle, sowel.

As jy een of meer ontwikkelaars wat nie in staat is om aan te pas, moet jy probeer om te gee hulle'n paar een op'n hulp en'n paar ontwikkelaar die eenheid toetse totdat hy of sy begin om te kry die hang van dit.Daar is niks tegnies komplekse genoeg dat iemand wat kan skryf kode is nie in staat om te produseer eenheid toetse.As dit lyk nie die geval te wees, dit is waarskynlik'n voorloper tot'n groter probleem met daardie persoon se skillset.

Ek persoonlik dink dat dit ook nuttig vir die testers in staat te wees om ten minste verstaan die eenheid toetse wat deel is van die projek.Samewerking tussen die ontwikkelaars en testers is baie belangrik in die diagnose korrek en die vasstelling van defekte.Ek sou nie verwag dat hulle het om hulle te skryf, maar hulle moet in staat wees om te sit met'n ontwikkelaar en gaan oor die konsep van hoekom/hoe om'n toets is die versuim of nie.

Wel, ek sou sê ja, maar slegs indien die lakei is as toegelaat word om die vasstelling van gevind foute laat oor die senior. Dit sal hom leer.

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top