Errare humanum est. Ya lo decían los antiguos: errar es humano. También en la Edad Moderna, una de las principales premisas del método científico fue el “ensayo y error”. Desde tiempos inmemoriales hemos sabido que los errores son inherentes a la naturaleza humana. Con eso contamos. Lo importante es aprender de ellos y evitar que se repitan. Pero esto es más fácil de decir que de hacer, porque para eso hay que reconocer de antemano que no somos perfectos y tener la humildad suficiente como para aceptarlo, así como la determinación de seguir adelante.
El máximo exponente de esta actitud fue Thomas Alva Edison (1847-1931), quien realizó más de mil intentos hasta que inventó la bombilla tal y como la conocemos. El número de repeticiones fue tan escandaloso que uno de sus colaboradores le preguntó si no se desanimaba ante tantos fracasos. Y aquí entra en juego la percepción del error, porque Edison respondió: «¿Fracasos? No sé de qué me hablas. En cada descubrimiento me he enterado de un motivo por el que la bombilla no funcionaba. Ahora ya sé mil maneras de no hacer una bombilla».
Sin necesidad de emular a Edison, es fácil darse cuenta de que aplicamos el principio de prueba y error a ámbitos tan cotidianos de la vida como la cocina o las relaciones personales. No obstante, tal vez sea en el sector informático donde la necesidad de realizar pruebas es más acuciante y determinante. Además, el ritmo al que se trabaja en este sector y las exigencias de los clientes hacen que las empresas de software deban lanzar versiones en tiempo récord, lo que implica cometer fallos. Adelantarse a la competencia es esencial, sea al precio que sea. Y el precio suelen ser los errores. Es difícil mantener el equilibrio en una situación en la que el cliente pide nuevas funcionalidades y las necesita en un tiempo récord. Por tanto, el tiempo que se dedica al testing es cada vez menor, a riesgo de que la mala calidad dañe la imagen de la empresa. Parece que la solución no es fácil…
Los motivos principales
El testing es una fase muy importante en el ciclo de desarrollo de software. Tan importante que debería introducirse al inicio del proceso para que los errores no se acumulen en la fase final de entrega. Las empresas de software surgen y desaparecen en la misma medida en la que conceden la importancia debida a su área de control de calidad y testing. Veamos algunas razones que explican claramente la relevancia de esta tarea.
- Es absolutamente esencial para identificar los errores que se han cometido en las fases de desarrollo.
- Garantiza que el software es fiable y asegura la satisfacción del cliente.
- Garantiza la calidad del producto, lo que en última instancia permite fidelizar al cliente.
- Reduce los costes de mantenimiento.
- Puede resultar muy costoso corregir los errores a posteriori o en fases más avanzadas del desarrollo de la aplicación. El coste de subsanar los errores hallados en etapas tempranas del desarrollo es 200 veces menor frente a aquellos identificados de forma tardía.
- Es vital para mantenerse en el negocio. Recordemos que los programas de software cada vez tienen más competencia, son más complejos y cuentan con más usuarios. Esto significa que hoy en día una empresa sobrevive sólo si puede ofrecer un producto fiable y de calidad. Apliquemos siempre la máxima “si no se ha probado, no sube a producción”.
- Ofrece a los comerciales de la compañía la confianza que necesitan a la hora de vender el producto, es decir, pueden estar seguros de que no tiene defectos y proporciona las funcionalidades que se supone debe proporcionar. Al fin y al cabo, el objetivo de una empresa es vender su producto, así que no subestimemos este motivo aunque sea el último de la lista.
La calidad ante todo
En el mercado tan competitivo que existe en la actualidad, sólo los productos de calidad sobreviven. Y la calidad, aunque es una percepción subjetiva del cliente, nace en la filosofía de la empresa, que se esfuerza por ofrecer productos y servicios que superen las expectativas del cliente. Para ello, realizar el testing del producto es un factor fundamental. Además, para aumentar las probabilidades de detectar errores, incluso menores, es importante que el testing lo realice otra persona. De sobra sabemos que es difícil que nosotros mismos identifiquemos nuestros propios errores.
Por eso es fundamental utilizar herramientas avanzadas y personalizadas para la automatización y la realización de pruebas de software, y contar con un equipo de testers altamente cualificados. De hecho, son precisamente los equipos de testing los que sugieren la mayoría de las mejoras implantadas en un producto de software. Tal vez no suene muy reconfortante saber que hay personas que dedican el 100% de su tiempo a encontrar errores en el trabajo de otros, pero su tarea es absolutamente indispensable.
Asumamos que desarrollar software libre de errores es una tarea titánica y colosal, tal vez inalcanzable, pero con el testing nos acercamos a este imposible. A fin de cuentas, el testing es la parte más importante del software y todas las empresas del sector deberían apostar por él, ya que acabarán ahorrando tiempo y dinero.
Fuentes:
http://sethgodin.typepad.com/seths_blog/2016/01/software-is-testing.html
http://istqbexamcertification.com/why-is-testing-necessary/
http://www.softwaretestingclass.com/importance-of-testing/
http://tulugar.com.uy/2010/11/%C2%BFpor-que-el-testing-de-software-es-importante/
André Klein
Consultor Freelance para DocPath