1

La calidad, el testing y sus objetivos

El testing es aportar calidad a un producto que se esta creando. Por esta razón creo que es importante mencionar y ver mas a detalle los conceptos de calidad, testing y sus objetivos.

Calidad
Una pregunta que resulta muy interesante es la que cuestiona ¿Qué es la calidad? A quién no le ha pasado de que en cada curso, seminario, tutorial, etc., relacionado con testing nos hayan hecho esta pregunta, y cada vez que nos la hacen nos tenemos que poner a pensar nuevamente como si fuese la primera vez que pensamos en esa cuestión. De hecho para los que ya vieron un poco de este curso saben que esa pregunta fue hecha por la maestra del curso.

Podríamos decir que la calidad es una característica que nos permite comparar distintas cosas del mismo tipo. Se define, o se calcula, o se le asigna un valor, en base a un conjunto de propiedades (seguridad, performance, usabilidad, etc.), que podrán ser ponderadas de distinta forma. Lo más complicado del asunto es que para cada persona y para cada situación seguramente la importancia de cada propiedad será distinta. De esta forma, algo que para mí es de calidad, tal vez para otra persona no. Algo que para mí hoy es de calidad, quizá el año próximo ya no lo sea. Complejo, ¿no?

Según Jerry Weinberg “la calidad es valor para una persona”, lo cual fue extendido por Cem Kaner diciendo que “la calidad es valor para una persona a la que le interesa”.

Relacionado con este tema existe una falacia conocida como “Falacia del Nirvana” a tener presente. Esta refiere al error lógico de querer comparar cosas reales con otras irreales o idealizadas. Y lo peor de esto, es que se tiende a pensar que las opciones reales son malas por no ser perfectas como esas idealizadas. Debemos asumir que el software no es perfecto y no compararlo con una solución ideal inexistente, sino con una solución que dé un valor real a las personas que lo utilizarán. También podemos hacer referencia a la famosa frase de Voltaire que dice que “lo mejor es enemigo de lo bueno”, que también la hemos escuchado como “lo perfecto es enemigo de lo bueno”.

Testing
Según Cem Kaner es una investigación técnica realizada para proveer información a los stakeholders sobre la calidad del producto o servicio bajo pruebas. Según Glenford Myers, software testing es un proceso diseñado para asegurar que el código hace lo que se supone que debe hacer y no hace lo que se supone que no debe. Según el autor, se trata de un proceso en el que se ejecuta un programa con el objetivo de encontrar errores.

Lo más importante: aportar calidad al software que se está verificando. ¿Cómo? Detectando posibles incidencias de diversa índole que pueda tener cuando esté en uso.

Objetivos
Y la forma en la que estaremos aportando calidad es principalmente buscando fallos. Por supuesto. Digamos que si no encuentro fallo todo el costo del testing me lo pude haber ahorrado. ¿No? ¡Nooo! Porque si no encontramos fallos entonces tenemos más confianza en que los usuarios encontrarán menos problemas.

¿Se trata de encontrar la mayor cantidad de fallos posible? ¿Un tester que encuentra cien fallos en un día hizo mejor su trabajo que uno que apenas encontró 15? De ser así, la estrategia más efectiva sería centrarse en un módulo que esté más verde, que tenga errores más fáciles de encontrar, me centro en diseñar y ejecutar más pruebas para ese módulo, pues ahí encontraré más fallos.

¡NO! La idea es encontrar la mayor cantidad de fallos que más calidad le aporten al producto. O sea, los que al cliente más le van a molestar.

¡Ojo!, el objetivo no tiene por qué ser el mismo a lo largo del tiempo, pero sí es importante que se tenga claro en cada momento cuál es. Puede ser válido en cierto momento tener como objetivo del testing encontrar la mayor cantidad de errores posibles, entonces seguramente el testing se enfoque en las áreas más complejas del software o más verdes. Si el objetivo es dar seguridad a los usuarios, entonces seguramente se enfoque el testing en los escenarios más usados por los clientes.

Escribe tu comentario
+ 2