Software testing
Hace algunos años atrás se escuchaba la pregunta -¿Es “Testing” una disciplina de Ingeniería?- Ahora esa pregunta se ha sustituido por la oración; “Testing” una disciplina de Ingeniería, ya es un hecho que “Testing” se ha vuelto una disciplina de Ingeniería y no hay preguntas ni sorpresas implicadas.
El objetivo de este documento esproporcionar más información acerca de la disciplina de Software Testing y su usabilidad en el desarrollo de Software. Y para comenzar es necesario definir un poco las bases de esta interesante disciplina.
Software Testing es una de las sub-disciplinas de la Ingeniería de Software; una profesión dedicada a diseñar, implementar y modificar el software para que alcance una mayor calidad, sea másaccesible, fácil de mantener, y más rápido de construir. Se trata de un "enfoque sistemático para el análisis, diseño, evaluación, implementación, prueba, mantenimiento y re-ingeniería de software mediante la aplicación de la ingeniería del software".
Existen una variedad de definiciones sobre Software Testing unas de las que más captan la atención son:
“Testing es el proceso de recopilarinformación haciendo observaciones y compararlas con las expectativas”.
“Testing es un experimento diseñado para revelar información o responder a una pregunta concreta acerca del Software/Sistema”
Partes importantes son la Verificación, Validación, y Detección de Errores ya que la mayoría de las personas piensan que solo consiste en la búsqueda de errores, pero Testing es algo más, algo más que ladetección de errores. Es el manejo del software bajo condiciones controladas, para; (1) Verificar que se comporta "Como se Especifica", (2) Para detectar Errores, (3) Para confirmar que lo que se ha especificado es lo que el usuario realmente quería.
Verificación: Es la comprobación de los datos incluidos los programas informáticos, para la conformidad y la coherencia mediante la evaluación de losresultados respecto a los requisitos especificados previamente. [Verificación es: ¿Estamos construyendo bien el Sistema?]
Detección de errores: Las Pruebas deben intencionalmente tratar de hacer que las cosas resulten mal para determinar si las cosas suceden cuando no deben o las cosas no suceden cuando deberían.
Validación: Busca la exactitud del sistema, es decir, es el proceso decomprobar que lo que se ha especificado es lo que el usuario realmente quería. [Validación es: ¿Estamos construyendo el sistema correcto?]
En otras palabras, la validación comprueba de si estamos construyendo lo que el cliente quiere o necesita, y la verificación prueba si estamos construyendo ese sistema correctamente. Hay que recordar que el objetivo de “Testing” es la verificación, validación ydetección de errores con el fin de encontrar problemas, y el propósito de encontrar los problemas es conseguir que se corrijan o mejor aún, prevenirlos.
Un aspecto importante es que “Testing” por sí solo no garantiza la calidad del software, la calidad del producto depende de la calidad de todas sus etapas. Todo lo que las pruebas pueden hacer es dar un cierto nivel de fiabilidad (confianza) en elsoftware. Por su parte, la única cosa que demuestran las pruebas es que en determinadas condiciones controladas, el software funcionó como se esperaba por los casos de prueba ejecutados.
“Testing” trae consigo algunos beneficios como: mejorar la rentabilidad de la producción de software, reducir la incertidumbre sobre el avance del proyecto y uno de los más importantes que es la reducción decostos en el proceso de mantenimiento, ya que no es lo mismo corregir algo cuando recién se comienza, a cuando el producto está terminado.
La siguiente tabla muestra el costo de la reparación de defectos dependiendo en la etapa en el que el defecto fue encontrado. Por ejemplo si se encuentra un problema de requerimientos después del lanzamiento del producto costaría de 10 a 100 veces más...
Regístrate para leer el documento completo.