La Fundamenta Problemo de Testado

Enkonduko

Bonan posttagmezon, Ĥabrovskanoj. Ĝuste nun mi solvis testan taskon por vakantaĵo de QA Lead por finteknika kompanio. La unua tasko, krei testan planon kun kompleta kontrolo kaj ekzemploj de provoj por testi elektran kaldrono, povas esti solvita bagatela:

Sed la dua parto montriĝis demando: "Ĉu ekzistas iuj problemoj komunaj al ĉiuj testantoj, kiuj malhelpas ilin labori pli efike?"

La unua afero, kiu venis en la menson, estis listigi ĉiujn pli-malpli rimarkindajn problemojn, kiujn mi renkontis dum testado, forigi la malgrandajn aferojn kaj resumi la ceterajn. Sed mi rapide rimarkis, ke la indukta metodo respondos demandon, kiu ne aplikiĝas al "ĉiuj", sed, plej bone, nur al "la plimulto" de testantoj. Tial mi decidis alproksimiĝi al ĝi de la alia flanko, dedukte, kaj jen kio okazis.

Difinoj

La unua afero, kiun mi kutime faras solvante novan problemon, estas provi kompreni pri kio temas, kaj por fari tion mi bezonas kompreni la signifon de la vortoj, kiuj prezentas ĝin. La ŝlosilaj vortoj por kompreni estas la jenaj:

  • la problemo
  • elprovilo
  • testisto laboro
  • testilo efikeco

Ni turnu nin al Vikipedio kaj saĝo:
Problemo (antikve greka πρόβλημα) en larĝa signifo - kompleksa teoria aŭ praktika afero, kiu postulas studon kaj rezolucion; en scienco - kontraŭdira situacio, kiu aperas en la formo de kontraŭaj pozicioj en la klarigo de iuj fenomenoj, objektoj, procezoj kaj postulas adekvatan teorion por solvi ĝin; en la vivo, la problemo estas formulita en formo komprenebla por homoj: "Mi scias kion, mi ne scias kiel", tio estas, oni scias, kion oni devas akiri, sed oni ne scias kiel fari ĝin. . Venas de malfrue. lat. problemo, el la greka. πρόβλημα “ĵetita antaŭen, metita antaŭ”; el προβάλλω “ĵetu antaŭen, metu antaŭ vi; kulpo".

Ĝi ne havas multe da senco, fakte, "problemo" = "io, kion oni devas trakti."
Testilo - specialisto (ni ne dividos en tipojn, ĉar ni interesiĝas pri ĉiuj testistoj), kiu partoprenas en testado de komponanto aŭ sistemo, kies rezulto estas:
La laboro de Tester — aro da agadoj rilataj al testado.
Efikeco (lat. effectivus) - la rilato inter la atingita rezulto kaj la rimedoj uzataj (ISO 9000: 2015).
Rezulto - sekvo de ĉeno (serio) de agoj (rezulto) aŭ eventoj, esprimitaj kvalite aŭ kvante. Eblaj rezultoj inkluzivas avantaĝon, malavantaĝon, gajnon, perdon, valoron kaj venkon.
Same kiel ĉe la "problemo", estas malmulte da signifo: io, kio aperis kiel rezulto de laboro.
rimedo - la kvante mezurebla ebleco plenumi ajnan agadon de homo aŭ homoj; kondiĉoj, kiuj ebligas akiri la deziratan rezulton uzante iujn transformojn. La testinto estas homo, kaj laŭ la teorio de esencaj rimedoj, ĉiu persono estas la posedanto de kvar ekonomiaj valoraĵoj:
kontantmono (enspezo) estas renovigebla rimedo;
energio (viva forto) estas parte renovigebla rimedo;
tempo estas fiksa kaj fundamente nerenovigebla rimedo;
scio (informo) estas renovigebla rimedo, ĝi estas parto de homa kapitalo kiu povas kreski kaj esti detruita[1].

Mi ŝatus rimarki, ke la difino de efikeco en nia kazo ne estas tute ĝusta, ĉar ju pli da scio ni uzas, des pli malalta la efikeco. Tial mi redifinus efikecon kiel "la rilatumon inter la rezultoj atingitaj kaj la elspezitaj rimedoj." Tiam ĉio estas ĝusta: scio ne estas malŝparita dum laboro, sed ĝi reduktas la kostojn de la nur esence nerenovigebla rimedo de la testilo - lia tempo.

decido

Do, ni serĉas tutmondajn problemojn de testantoj, kiuj difektas la efikecon de ilia laboro.
La plej signifa rimedo, kiu estas elspezita por la laboro de testinto, estas lia tempo (la resto povas esti reduktita al ĝi unu maniero aŭ alia), kaj por ke ni parolu pri la ĝusta kalkulo de efikeco, la rezulto ankaŭ devas esti reduktita al tempo. .
Por fari tion, konsideru sistemon, kies viveblecon la testinto certigas per sia laboro. Tia sistemo estas projekto, kies teamo inkluzivas testilon. La projekta vivociklo povas esti proksimume reprezentita per la sekva algoritmo:

  1. Laborante kun Postuloj
  2. Formado de teknikaj specifoj
  3. Disvolviĝo
  4. Testado
  5. Liberigu en produktadon
  6. Subteno (iru al ero 1)

En ĉi tiu kazo, la tuta projekto povas esti rekursie dividita en subprojektojn (trajtoj), kun la sama vivociklo.
El la vidpunkto de la projekto, ju malpli da tempo dediĉita al ĝi, des pli efika estas ĝia efektivigo.
Tiel, ni venas al la difino de la maksimuma ebla efikeco de testilo de la vidpunkto de la projekto - ĉi tiu estas la stato de la projekto kiam la tempo por testado estas nulo. Ofta problemo por ĉiuj testantoj estas la malkapablo atingi ĉi tiun tempon.

Kiel trakti ĉi tion?

La konkludoj estas sufiĉe evidentaj kaj estas uzataj de multaj dum longa tempo:

  1. Disvolviĝo kaj testado devas komenciĝi kaj finiĝi preskaŭ samtempe (ĉi tio estas kutime farita de la fako QA). La ideala opcio estas kiam la tuta funkcieco estanta disvolvita estas jam kovrita de aŭtotestoj antaŭ la tempo kiam ĝi estas preta, organizita en regresajn (kaj, se eble, antaŭ-engaĝitajn) testadojn uzante iun specon de CI.
  2. Ju pli da funkcioj havas projekto (ju pli kompleksa ĝi estas), des pli da tempo devos esti elspezita por kontroli, ke la nova funkcio ne rompas la malnovan. Tial, ju pli kompleksa la projekto, des pli da aŭtomatigo estas postulata regrestestado.
  3. Ĉiufoje kiam ni maltrafas cimon en produktado kaj uzanto trovas ĝin, ni devas pasigi plian tempon trairante la projektan vivociklon ekde la punkto 1 (Laborante kun postuloj, en ĉi tiu kazo, uzantoj). Ĉar la kialoj por maltrafi cimon estas ĝenerale nekonataj, ni restas kun nur unu optimumiga vojo - ĉiu cimo trovita de uzantoj devas esti inkluzivita en regrestestado por certigi ke ĝi ne aperos denove.

fonto: www.habr.com

Aldoni komenton