O problema fundamental das probas

Introdución

Boas tardes, veciños de Khabrovsk. Agora mesmo estaba resolvendo unha tarefa de proba para unha vacante de líder de control de calidade para unha empresa fintech. A primeira tarefa, crear un plan de proba cunha lista de verificación completa e exemplos de casos de proba para probar unha chaleira eléctrica, pódese resolver de forma trivial:

Pero a segunda parte resultou ser unha pregunta: "¿Hai algún problema común a todos os probadores que lles impida traballar de forma máis eficiente?"

O primeiro que se me ocorreu foi enumerar todos os problemas máis ou menos notables que atopei durante as probas, eliminar as pequenas cousas e resumir o resto. Pero axiña decateime de que o método indutivo respondería a unha pregunta que non se aplicaba a "todos", senón, no mellor dos casos, só á "maioría" dos probadores. Por iso, decidín abordalo dende o outro lado, dedutivamente, e isto foi o que pasou.

Definicións

O primeiro que adoito facer ao resolver un problema novo é tratar de entender de que se trata, e para iso necesito comprender o significado das palabras que o plantexan. As palabras clave para entender son as seguintes:

  • un problema
  • probador
  • traballo de probador
  • eficiencia do probador

Imos á Wikipedia e ao sentido común:
Problema (grego antigo πρόβλημα) nun sentido amplo: unha cuestión teórica ou práctica complexa que require estudo e resolución; na ciencia - unha situación contraditoria que aparece en forma de posicións opostas na explicación de calquera fenómeno, obxecto, proceso e que require unha teoría adecuada para resolvelo; na vida, o problema formúlase dunha forma comprensible para a xente: "Sei que, non sei como", é dicir, sábese o que hai que conseguir, pero non se sabe como facelo. . Vén de tarde. lat. problema, do grego. πρόβλημα “lanzado para adiante, colocado por diante”; de προβάλλω “bota adiante, pon diante; culpa".

Non ten moito sentido, de feito, "problema" = "todo o que hai que tratar".
Probador - un especialista (non dividiremos en tipos, xa que estamos interesados ​​en todos os probadores) que participa na proba dun compoñente ou sistema, cuxo resultado é:
Traballo do probador — un conxunto de actividades relacionadas coas probas.
Eficiencia (lat. effectivus) - a relación entre o resultado acadado e os recursos utilizados (ISO 9000: 2015).
Resultado - unha consecuencia dunha cadea (serie) de accións (resultado) ou acontecementos, expresada cualitativa ou cuantitativamente. Os posibles resultados inclúen vantaxe, desvantaxe, ganancia, perda, valor e vitoria.
Como co "problema", hai pouco significado: algo que saíu como resultado do traballo.
recurso - a posibilidade cuantitativamente medible de realizar calquera actividade dunha persoa ou persoas; condicións que permiten utilizar determinadas transformacións para obter o resultado desexado. O probador é unha persoa e, de acordo coa teoría dos recursos vitais, cada persoa é propietaria de catro bens económicos:
o diñeiro en efectivo (ingreso) é un recurso renovable;
a enerxía (forza vital) é un recurso parcialmente renovable;
o tempo é un recurso fixo e fundamentalmente non renovable;
o coñecemento (información) é un recurso renovable, forma parte do capital humano que pode crecer e ser destruído[1].

Gustaríame sinalar que a definición de eficiencia no noso caso non é do todo correcta, xa que cantos máis coñecementos usemos, menor será a eficiencia. Polo tanto, redefiniría a eficiencia como "a relación entre os resultados acadados e os recursos gastados". Entón todo é correcto: o coñecemento non se desperdicia durante o traballo, pero reduce os custos do único recurso fundamentalmente non renovable do probador: o seu tempo.

decisión

Polo tanto, buscamos problemas globais dos probadores que prexudiquen a eficacia do seu traballo.
O recurso máis significativo que se gasta no traballo dun probador é o seu tempo (o resto pódese reducir a el dun xeito ou doutro), e para que falemos do cálculo correcto da eficiencia, o resultado tamén debe reducirse ao tempo. .
Para iso, considérase un sistema cuxa viabilidade asegure o probador a través do seu traballo. Este sistema é un proxecto cuxo equipo inclúe un probador. O ciclo de vida do proxecto pódese representar aproximadamente co seguinte algoritmo:

  1. Traballar cos requisitos
  2. Elaboración de especificacións técnicas
  3. Desenvolvemento
  4. Probas
  5. Lanzamento en produción
  6. Soporte (ir ao elemento 1)

Neste caso, todo o proxecto pódese dividir recursivamente en subproxectos (características), co mesmo ciclo de vida.
Dende o punto de vista do proxecto, canto menos tempo se dedique a el, máis eficaz é a súa execución.
Así, chegamos á definición da máxima eficiencia posible dun probador desde o punto de vista do proxecto: este é o estado do proxecto cando o tempo de proba é cero. Un problema común para todos os probadores é a incapacidade de acadar este tempo.

Como tratar con isto?

As conclusións son bastante obvias e foron utilizadas por moitos durante moito tempo:

  1. O desenvolvemento e as probas deben comezar e finalizar case simultáneamente (isto é normalmente feito polo departamento QA). A opción ideal é cando toda a funcionalidade que se está a desenvolver xa está cuberta por autotests no momento en que está lista, organizada en probas de regresión (e, se é posible, pre-commit) utilizando algún tipo de proba. CI.
  2. Cantas máis funcionalidades teña un proxecto (máis complexo sexa), máis tempo haberá que dedicar a comprobar que a nova funcionalidade non rompe coa antiga. Polo tanto, canto máis complexo sexa o proxecto, máis automatización é necesaria proba de regresión.
  3. Cada vez que perdemos un erro na produción e un usuario o atopa, temos que dedicar tempo adicional a percorrer o ciclo de vida do proxecto a partir do punto 1 (Traballando cos requisitos, neste caso, os usuarios). Dado que en xeral descoñécense as razóns polas que se perde un erro, só nos queda unha ruta de optimización: cada erro atopado polos usuarios debe incluírse nas probas de regresión para estar seguro de que non aparecerá de novo.

Fonte: www.habr.com

Engadir un comentario