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:
Traballar cos requisitos
Elaboración de especificacións técnicas
Desenvolvemento
Probas
Lanzamento en produción
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:
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.
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.
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.