what is technical debt
Tehnični dolg je metaforična ideja, ki trdi, da tako kot lahko pri financah naletijo na težave z dolgom, tudi organizacije programske opreme naletijo na nekaj podobnega pri kopičenju nedokončanih del med preteklimi projekti in izdajami / sprinti različic.
Kaj je tehnični dolg?
Predstavlja napor, potreben za odpravo težav / napak, ki ostanejo v kodi ob sprostitvi aplikacije. Z enostavnimi besedami - to je razlika (glede napak) med pričakovanim in dostavljenim.
Ko je razvojna skupina zaposlena z delom na projektu in odpravlja napake, se na žalost pojavi veliko novih napak. Zunaj te so nekatere popravljene, nekatere pa drugačne za poznejšo izdajo. Ko se to različno število vprašanj še povečuje, je v enem trenutku res težko sprostiti izdelek pravočasno, brez kakršnih koli težav. To je najslabša posledica Tehnični dolg če se ga ne loti pravočasno.
V tem članku boste izvedeli, kaj je tehnični dolg, zakaj bi morala biti ekipa za zagotavljanje kakovosti zaskrbljena in kar je najpomembneje, kako ga upravljati.
slike vir
Ward Cunningham , ustanovitelj wiki programske opreme, zasnovali to idejo že v devetdesetih letih prejšnjega stoletja je potekala vzporednica z vplivom slabega dolga na finančno industrijo, ki je dobesedno aludiral na neslano izkušnjo, da je treba plačati čezmerne obresti po neplačanih posojilih.
najboljše brezplačne storitve konferenčnih klicev
Izziv povečanja tehničnega dolga na sprint je prikazan na sliki 1.
Tukaj je treba omeniti, da obstaja majhna razlika v pomenu tehničnega dolga (znanega tudi kot kodni dolg ali oblikovni dolg) od njegove ustrezne analogije v finančnem svetu - prvi je bolj podoben abstraktna ideja , brez matematičnih enačb, ki bi predstavljale, kako se obresti resnično kopičijo.
Slika 1: Vizualizacija prilagodljivega povečanja tehnološkega dolga v sprintih
Kaj se boste naučili:
- Zakaj ekipe QA najbolj trpijo zaradi tehničnega dolga
- Primer iz resničnega sveta
- Tehnično upravljanje dolga v praksah zagotavljanja kakovosti
- Zaključek
- Priporočeno branje
Zakaj ekipe QA najbolj trpijo zaradi tehničnega dolga
Med običajnim ciklom načrtovanja in razvoja programske opreme obstaja nekaj stvari, ki lahko vodijo do tehnični dolg ”Podobna situacija– neustrezna dokumentacija , neustrezno testiranje odpravljanje napak, pomanjkanje koordinacije med ekipami, zapuščina koda in zapoznela refaktorizacija , odsotnost stalna integracija in drugi dejavniki brez nadzora.
Na primer, je bilo ugotovljeno, da lahko prizadevanja za podvajanje kode povzročijo karkoli med 25. do 35% dodatno delo.
oracle obrazci in poročila vprašanja za intervju
Vendar nikjer ni izzivi zaradi tehničnega dolga očitnejši kot pri testiranju kakovosti kjer morajo preskusne ekipe spoštovati nepričakovane roke in se lahko vse vrže iz opreme.
Kako pogosto so se vaši preizkuševalci v zadnjem trenutku soočili s težavami, ko je nepričakovano prišel vodja dostave in jim rekel: »Ekipa! Naš izdelek moramo uvesti čez teden dni, žal, ker tega nismo mogli pravočasno sporočiti. Nujno zaključite z vsemi testnimi nalogami, da bomo lahko pripravljeni na predstavitev. '
V bistvu morebitni zamujeni testi ali pristop 'reši to pozneje' lahko privedejo do težav s tehnološkim dolgom. Pomanjkanje pokritosti s testom , velike uporabniške zgodbe, kratki šprinti in drugi primeri 'rezanja vogalov' zaradi pritiska pri dostavi igrajo veliko vlogo pri kopičenju tehničnega dolga v praksi zagotavljanja kakovosti.
Primer iz resničnega sveta
Ameriški spletni trgovec s pomembno prisotnostjo na več spletnih mestih in v mobilnih aplikacijah se je znašel v resničnem izzivu 'tehničnega dolga', ko se je zapletenost preskusne mreže začela sestavljati z vsakim novim sprint .
To se je zgodilo zaradi nenadnega povečanja števila testiranih mobilnih naprav, podpore več jezikov in izkoriščanja več kot pol ducata spletnih mest za družabna omrežja.
Z pokritostjo avtomatizacije manj kot 40%, izziv tehnološkega dolga bi se prikazal na naslednje načine:
- Prekomerna poraba časa pri testiranju sprostitve - S številom brskalnikov, naprav in skriptov, ki rastejo z vsakim testnim sprintom, bi se cikel izdajanja zamujal, kar bi povzročilo izgubo časa do prodaje.
- Naraščajoči stroški najema - Število preizkuševalcev, potrebnih za podporo projektu, se je skoraj podvojilo, kar je pomenilo dodatnih 500 000 USD
- Kompleksnost projekta - Z naraščajočo zapletenostjo projekta je postajanje izsledkov testnih primerov in napak postajalo izziv
- Preveč časa smo zapravili za preganjanje lažnih pozitivnih rezultatov - Spet izpad vse večje zapletenosti projektov.
- Povečanje napora pri razvoju testov za kar 60% - Gre z ozemljem
Tehnično upravljanje dolga v praksah zagotavljanja kakovosti
Večina menedžerjev QA impulzivno gleda na tehnološki dolg kot na razumno posledico, da vso svojo energijo osredotočite samo na trenutni šprint, kar vodi k temu, da pokritost s testom dosežete nekako z ročnimi sredstvi, in popolnoma ignorirajo avtomatizacijo.
To je znano kot hiter in umazan pristop ki ga je v blogu poročal Martin Fowler, avtor knjige kvadrant tehničnega dolga .
Agilna načela narekujejo, da problem tehnološkega dolga vizualiziramo kot nezmožnost vzdrževanja in izpolnjevanja Merila kakovosti .
Pravzaprav, na podlagi ankete Nacionalni inštitut za standarde in tehnologijo (NIST) ameriško gospodarstvo letno stane nezadostno število testnih orodij in metod 22,2 USD in 59,5 milijarde dolarjev , s približno polovico tega denarja, ki so ga za dodatna testiranja porabili razvijalci programske opreme in približno polovico uporabniki programske opreme, da bi se izognili napakam.
Namesto da bi se odzvali na napake, ko in ko se incident zgodi, bi bil proaktivni pristop prepoznavanje napak po vsaki dejavnosti ali nalogi, ki jo je mogoče izmeriti. Vse lahko naredite ročno, vendar je glede na tisoče scenarijev preizkusnih primerov za povprečni projekt nujno potrebno avtomatizirano testiranje.
Jasno je, učinkovito testiranje vam lahko pomaga, da se resno ujamete v vojni s tehničnim dolgom. Torej, kaj to v bistvu pomeni? Pomeni, kako dobro je opremljen vaš sistem pri prepoznavanju napak v celotni aplikaciji.
Kot kaže zgornja enačba, se lahko učinkovitost testnih primerov teoretično približa celo 100%, če bi bilo število kupčevih odkritih napak (tj. Postprodukcijske napake) natančno preslikano na število napak, odkritih v vsaki fazi pokritosti s testiranjem.
Za dobro zasnovano preskusno posteljo, ki lahko natančno izmeri napake takoj, ko se prikradejo, je predpogoj avtomatizacija.
Avtomatizacija preskušanja vam pomaga zmanjšati število izvršenih skriptov tako, da poroča o rezultatih in jih primerja s prejšnjimi preizkusi. Metoda ali postopek, ki se uporablja za izvajanje avtomatizacije, se imenuje test avtomatizacija okvir .
mehurček razvrsti padajoče vrstni red c ++
Tipični primeri bi bili komercialna ali brezplačna orodja, kot so Selenium, MonkeyTalk, roboti , Borland SilkCentral, HP-jev center za kakovost in IBM Rational Rose .
V preteklosti so organizacije za zagotavljanje kakovosti / testiranje organizacije in njihove ekipe za programsko opremo pogosto obravnavale kot podporno dejavnost pomembnejšim poslovnim rezultatom in ne samostojno disciplinirano prakso, ki bi zahtevala osrednjo in namensko osredotočenost. Pravzaprav je neosnovni pristop k zagotavljanju kakovosti / testiranju ravno tisto, kar je najprej privedlo do stalnega izziva tehničnega dolga.
Glede na hiter razvoj evolucij v preverjanju kakovosti / preizkusnih veščin, ki se je zgodil v zadnjem desetletju, organizacije zelo težko nadgrajujejo svoje sposobnosti in kompetence na najnižjo raven, kot je želeno v skladu z veljavnimi industrijskimi merili.
Pravzaprav je v industriji vse večji trend, da se zadovolji z nič manj kot najbolj začinjenimi strokovnjaki na področju avtomatizacije testiranj - nekako tako kot elitni komandosi testiranja / preverjanja kakovosti; v testu so znani kot programski inženirji ( Od ) in razvijalci programske opreme v preskusu ( SDiT ). Ti strokovnjaki so zelo zahtevni zaradi svojih bogatih izkušenj v izbrani panogi (npr. E-poslovanje) ali določeni poklicni kategoriji.
Večina podjetij za razvoj programske opreme in izdelkov se, kot zdaj že govorimo, trudi najti želene, usposobljene tehnične vire zaradi krajših dobavnih rokov. Rešitev tega izziva je partnerstvo s predvajalnikom za avtomatizacijo QA na morju, ki lahko pomanjkanje vaših sposobnosti reši s pravim skladom virov SDiT / SEiT.
Drugi zaželeni atributi zunanjega izvajalca pri zagotavljanju kakovosti / testiranju, ki se izkažejo za koristne, vključujejo gibčen, discipliniran pristop k izvajanju projektov, zadostne izkušnje v industriji, vključno s praktičnim dostopom do avtomatiziranih okvirov za večkratno uporabo in testnih primerov, in nenazadnje jasen namen in sposobnost reševanja izzivov oddaljenih ekip in kulturnih spopadov, tako da naročnik ne bo obremenjen z dodatnim delom pri upravljanju izvajalcev.
Zaključek
Kot kateri koli drugi dolg se lahko tudi tehnični dolg izkaže za nesrečo podjetij, glavni vzrok za njegovo kopičenje pa je neuspeh pri izvajanju proaktivne prakse zagotavljanja kakovosti, ki odpravlja vse zaostanke pri avtomatizaciji.
O avtorju: To je gostja ekipe eInfochips. Pripravili so edinstven pristop, imenovan Tehnični dolg nič kar je eden najbolj strukturiranih in najučinkovitejših načinov postopnega odpravljanja tehničnega dolga v dejavnostih zagotavljanja kakovosti / avtomatizacije. Če želite izvedeti več o tehnološkem dolgu, poglejte ta video o pristopu k zmanjšanju tehnološkega oddelka
Upam, da boste dobili jasno predstavo o tem, kaj je tehnični dolg. Sporočite nam, če imate kakršna koli vprašanja v zvezi z njim ali kako v praksi to upravljati.
Priporočeno branje
- Preizkušanje programske opreme Tehnična vsebina Writer Freelancer Job
- Svetovno podjetje za testiranje programske opreme bo kmalu doseglo 28,8 milijarde dolarjev
- Nasveti za preizkušanje programske opreme za preizkuševalce začetnike
- Kako ohraniti motivacijo pri preizkuševalcih programske opreme?
- Zen in umetnost testiranja programske opreme
- Najboljša orodja za testiranje programske opreme 2021 (QA Test Automation Tools)
- Najboljši članki o preizkušanju programske opreme iz leta 2008
- Testiranje programske opreme QA Assistant Job