Las compañías dedicadas al servicio de testing de software se encargan de realizar diversos tipos de pruebas para asegurar que un software funcione tal como se espera que lo haga. Si bien es cierto que los desarrolladores de software pueden realizar algunas pruebas en el proceso, el valor agregado de este tipo de empresas es que siguen protocolos de pruebas detallados, asegurándose realizar todas las pruebas necesarias en cada una de las etapas del desarrollo del software.
Para crear y ejecutar pruebas más precisas y menos predecibles, se necesita a alguien que no esté familiarizado con el código de prueba para encontrar posibles problemas o sugerir mejoras. Sin embargo, uno no puede querer cambiar todo el proyecto por pura conjetura o gusto personal, sino que se debe seguir procedimientos de testing adecuados.
El Proceso de Pruebas de Software representa una estructuración de pasos, actividades, artefactos, roles y responsabilidades que buscan estandarizar el trabajo y ampliar la organización y control de los proyectos de pruebas.
El Proceso de Pruebas, como cualquier otro proceso, debe ser revisado continuamente, con el fin de ampliar su desempeño y permitir a los profesionales una mayor visibilidad y organización de su trabajo, lo que redunda en una mayor agilidad y control operativo de los proyectos de prueba.
El primer paso de este proceso es la planificación de las pruebas. Esta etapa se caracteriza por la definición de una propuesta de pruebas a realizar partiendo de las expectativas del Cliente en cuanto a plazos, costos y calidad esperada, la cual permite establecer un esfuerzo acorde a las necesidades identificadas por el Cliente.
En esta etapa se define el conjunto de actividades que se deben realizar para que cada etapa del proceso se considere finalizada, funcionando como una “lista de verificación” para la ejecución de la etapa de “Planificación de Pruebas”.
La segunda etapa se caracteriza por la identificación de casos de prueba que deben ser construidos y modificados de acuerdo a los cambios solicitados por el Cliente, así como por la mejora del propio proceso de prueba (ampliación de cobertura).
Cuánto antes se encuentren los defectos, mejor. Por eso es que es importante contratar a una empresa de testing desde el inicio de un proyecto de desarrollo de software. El bajo costo de encontrar defectos en las fases de planificación y diseño se justifica por el bajo, o, en algunos casos, insignificante, esfuerzo de reelaboración resultante del descubrimiento y corrección de estos defectos en estas primeras fases. Sería el equivalente a arrugar la servilleta y empezar a garabatear de nuevo.
Los defectos encontrados en la fase de codificación ya son más costosos porque a menudo requieren pruebas realizadas por los desarrolladores (lo que lleva tiempo), corrección o incluso descarte del código desarrollado y, en el peor de los casos, una regresión a las fases de especificación y diseño.
Por otro lado, los defectos encontrados en la fase de producción, además de todos los costes anteriores, implican además costes de atención al cliente. En resumen, cuanto antes se encuentren los defectos, menos costarán a los desarrolladores y clientes.
En cuanto a la eficiencia de las pruebas en el descubrimiento de defectos de software, los datos obtenidos de diversos estudias muestran que cuando el cliente asigna tareas de prueba a parte de su equipo de desarrollo, este logra descubrir un máximo del 40% de los defectos de software en cuestión.