Sumario sobre Pruebas de Software
Las pruebas de Software son una evaluacin del software en contraste con la recogida de requisitos de usuarios y especificaciones de sistema. Las pruebas son conducidas al nivel de 'fase' en el SDLC o al nivel de mdulo en cdigo de programa. Las pruebas de Software incluyen la validacin y la verificacin.
Validacin del Software
La validacin es un proceso para examinar si el software satisface o no los requisitos del usuario. Se lleva a cabo al final del SDLC. Si el software cumple los requisitos por los cuales se dise, se valida.
- La validacin asegura que el producto en desarrollo cumplir los requiistos del usuario.
- La validacin contesta a las preguntas "Se est desarrollando el producto que intenta cumplir todos los requisitos que el usuario necesita?".
- La validacin emfatiza en los requisitos del usuario.
Verificacin Software
La verificacin es el proceso de confirmacin del cuplimiento de los requisitos empresariales por parte del software, y se desarrolla ciindose a especificaciones y metodologas adecuadas.
- La verificacin asegura que el producto que se est desarrollando va en acorde con las especificaciones de diseo.
- La verificacin responde a la pregunta "Se est desarrollando el producto siguiendo de manera estricta todas las especificaciones de diseo?"
- Las Verificaciones se concentran en el diseo y las especificaciones del sistema.
El Target de la prueba es -
Errores - Son errores de codificacin cometidos por los desarrolladores. Adems, si hay una diferencia en la entreda de software y el resultado o output deseado, esto se considera un error.
Defecto - Cuando ocurren errores, hay defectos. Un defecto, es el resultado de un error que puede ocasionar fallos en el sistema.
Fallo - Es la inhabilidad del sistema de realizar la tarea deseada. Un fallo suele ocurrir cuando hay un defecto en el sistema.
Pruebas manuales Vs Automatizadas
La evaluacin se puede hacer de forma manual o bien usando una herramienta de evaluacin automatizada:
-
Manuales - Esta evaluacin se lleva a cabo sin ayuda de herramientas de evaluacin autmatizadas. El evaluador de software prepara ejemplos de pruebas para diferentes secciones y niveles del cdigo, ejecuta las pruebas y entrega los informes al director.
Las pruebas manuales consumen mucho tiempo y recursos. Los evaluadores necesitan confirmar si los ejemplos de test se usan. La mayora de evaluaciones incluyen pruebas manuales.
Automatizadas Esta evaluacin sigue un procedimiento realizado con la ayuda de herramientas de evaluacin automatizada. Las limitaciones con evaluaciones manuales se pueden subsanar con herramientas automatizadas de evaluacin.
La prueba necesita evaluar si la pgina web se puede abrir en Internet Explorer. Esto se puede realizar de forma simple con pruebas manuales. Pero para evaluar si el explorador web puede soportar la carga de 1 milln de usuarios, es casi imposible hacerlo de forma manual.
Hay herramientas de software y hardware que ayudan a los evaluadores en la conduccin de la evaluacin de carga, pruebas de estrs, y pruebas de regresin.
Aproximaciones para la evaluacin
Las pruebas se pueden conducir basndose en dos aproximaciones
- Pruebas funcionales
- Pruebas de implementacin
Cuando se evala la funcionalidad sin considerar la implementacin real, se conoce como Prueba de caja negra. El otro lado se conoce como prueba de caja blanca, donde no solo se evala la funcionalidad, tambin se analiza el modo de implementacin.
Los tests exaustivos son los mtodos ms deseados para una evaluacin perfecta. Cada valor posible en el rango de valor de entrada y salida es evaluado. No es posible evaluar cada valor del mundo real si el rango d valores es grande.
Pruebas de caja negra
Se llevan a cabo para evaluar la funcionalidad del programa. Tambin se denominan pruebas de conducta. El evaluador en este caso, tiene un conjunto de valores de entrada con su resultado deseado respectivo. Cuando se aporta la entrada o input, si el resultado o output cumple con los resultados deseados, el programa se puede evaluar bien, en caso contrario la evaluacin ser problemtica.

En esta metodologa de evaluacin, el diseo y al estructura del cdigo son desconocidos por el evaluador, as que ingenieros de evaluacin y usuarios conducen este test sobre el software.
Tcnicas para pruebas de caja negra:
Clases de equivalencia - El input o entrada se divide en clases similares. Si un elemento de una clase pasa el test, se asume que todas las clases tambin pasarn.
Valores de los lmites - El input o entrada se divide en valor final alto o valor final bajo. Si estos valores pasan el test, se asume que todos los valores que hay entre ellos tambin lo harn.
Grfico causa-efecto - En los dos mtodos previos, solo se evalua un valor de entrada cada vez, nunca ms de uno a la vez. La causa (entrada)-efecto (salida) es una tcnica de evaluacin donde distintas combinaciones de valores de entrada se evalan de forma sistmica.
Evaluacin 'Pair-wise' - La conducta del software depende de muchos parmetros. En este tipo de evaluacin, los parmetros mltiples se evalan pair-wise (dos a la vez) para sus distintos valores.
Evaluacin basada en el estado - El sistema cambia su estado en provisin de entradas. Este tipo de sistema se evala en base a su estatus y sus inputs o entradas.
Pruebas de caja blanca
Se conducen para evaluar el programa y sus implementaciones, a fin de mejorar la eficiencia del cdigo o su estructura. Tambin se conoce como evaluacin estructural.

En este tipo de metodologa, el diseo y la estructura del cdigo son conocidos por el evaluador. Los programadores de cdigo conducen este test en el cdigo.
A continuacin se exponen algunas tcnicas de evaluacin de caja blanca:
Evaluacin del flujo de control - El propsito de este tipo de evaluacin es el de configurar ejemplos de test que cubran todas las condiciones de la compaa. Las condiciones de la compaa se evalan para ambos siendo verdadro o falso, para que todas las declaraciones se puedan cubrir.
Evaluacin del flujo de datos - Esta tcnica emfatiza en cubrir todas las variables de datos includas en el programa. Evala dnde se declaran, definen, se usan o cambian las variables.
Niveles de evaluacin
La evaluacin por s misma se puede definir en varios niveles de SDLC. El proceso evaluador se lleva a cabo en paralelo al desarrollo del software. Antes de lanzarnos a la siguiente etapa, la etapa se evala, valida y verifica.
Evaluar de forma separada se hace para asegurar que no hay defectos escondidos o asuntos que se han dejado de lado en el software. El Software se evala en varios niveles -
Evaluacin unitaria
Mientras se codifica, el programador hace algunos tests en esa unidad de programa para saber si est libre de errores. La evaluacin se lleva a cabo con tcnicas de caja blanca. La evaluacin unitaria ayuda a los desarrolladores a decidir que las unidades del programa funcionan segn los requisitos y estn libres de errores.
Pruebas de integracin
Aunque las unidades del software funcionen bien de forma individual, se necesita encontrar si las unidades que estn integradas y juntas tambin funcionan sin errores. Por ejemplo, actualizacin de datos, etc.
Evaluacin del sistema
El software se compila como producto y entonces se evala en su conjunto. Este proeso de cumple usando uno o ms tests se los que se mencionan a continuacin:
Evaluacin funcional - Evala todas las funcionalidades del software en contraste a los requisitos.
Evaluacin de la actuacin - Este test nos informa de la eficiencia del software. Evala la efectividad y el tiempo medio que tarda el software en hacer las tareas deseadas. La evaluacin de la actuacin se realiza por medio de tests de carga y de estrs donde el software se pone bajo condiciones de alto usuario y carga de datos.
Seguridad y portabilidad - These tests are done when the software is meant to work on various platforms and accessed by number of persons.
Tests de aceptacin
Cuando el software est listo para ser entregado al cliente tiene que pasar por la ltima fase de evaluacin donde se comprobar su interaccin cn el usuario y su capacidad de respuesta. Esto es importante porque aunque el software cumpla todos los requisitos del consumidor, si al usuario no le gusta su apariencia o su forma de funcionar, puede ser que acabe por ser rechazado.
Pruebas Alpha - El equipo de desarrolladores hacen la evaluacin 'Alpha' usando el sistema como si ya se estuviera en un entorno de trabajo. Intentan as avriguar cmo reaccionara el usuario a alguna accin del software, y cmo el sistema debe responder a entradas o inputs distintos.
Pruebas Beta - Una vez se ha evaluado el software internamente, es entregado a los usuarios para que lo utilicen en su contexto de produccin, simplemente para poder evaluarlo. Este no es an el producto entregado. Los desarrolladores esperan que el usuario en esta fase aporten problemas muy especficos, que podran fcilmente pasarse por alto en el proceso de desarrollo.
Puebas de regresin
Cuando un producto software se actualiza con un nuevo cdigo o con nuevas caractersticas o funcionalidades, se evala para detectar si hay algn impacto negativo con lo que se ha aadido. Este proceso se conoce como prueba de regresin.
Documentacin evaluativa
Los tests se preparan en diferentes etapas -
Antes de evaluar
La pruebas empiezan con la generacin de tests demo. Para ello se necesitan los siguientes documentos de referencia
Documento ERS(especificacin de requisitos de software) - Documento de requisitos funcionales
Documento de evaluacin de normas - Describe la magnitud o alcance que deben tener las pruebas antes de lanzar el producto al mercado.
Documento evaluativo de estrategia - Menciona aspectos muy detallados del equipo de evaluacin, matriz de responsabilidades y derechos/responsabilidad del jefe de evaluacin y del ingeniero de evaluacin.
Matriz de trazabilidad - Es un documento del SDLC, que se relaciona con el proceso de recogida de requisitos. A medida que aparecen nuevos requisitos, son aadidos a esta matriz. Estas matrices ayudan a los evaluadores a averiguar el origen del requiisto. Pueden ser delineados hacia adelante o hacia atrs.
Mientras se evala
Los siguientes documentos pueden requerirse mientras se est evaluando tanto al inicio como durante el poceso:
Documento del caso de prueba - Este documento cntiene una lista de tests que se deben realizar. Incluye un plan de evaluacin unitario, un plan de evaluacin integrado, un plan de evaluacin del sistema y un plan de evaluacin para su aceptacin.
Descripcin de la prueba - Este documento describe de forma minuciosa todos los ejemplos de test y procedimietos para llevarlos a cabo.
Informe del caso de prueba - Este documento contiene un informe de caso de prueba como resultado del test.
Test logartmico - Este documento contiene un test logartmico para cada informe de caso de prueba.
Despus de las pruebas
Se pueden generar estos documentos despus de las pruebas :
Sumario del Test - Este sumario es un anlisis colectivo de todos los informes de test y accesos. Resume y concluye si el software est listo para ser lanzado al mercado. En caso positivo el software se pone en el mercado con una versin de sistema de control.
Pruebas vs. Control de calidad, Aseguranza de calidad y Audit
Necesitamos entender que la evaluacin de software es diferente de la aseguranza de calidad de software, del control de calidad, y del auditing (evaluacin).
-
Aseguranza de calidad del Software - Son tcnicas de monitoreo para procesos de desarrollo software, con los cuales se asegura que las medidas se llevan a cbo siguiendo los estndares de la oganizacin. Este proceso se realiza para asegurar que se estn siguiendo los mtdos de desarrollo de software adecuados.
-
Control de calidad del Software - Es un sistema para mantener la calidad del producto software. Puede incluir aspectos funcionales y no funcionales del producto software, lo cual fomenta la reputacin de la organizacin. Este sistema asegura que el cliente recibe un producto de calidad para sus requisitos y el producto es considerado conveniente para su uso.
-
Evaluacin del Software (audit) - Es una revisin del procedimiento usado por la organizacin para desarrollar el software. Un equipo de 'auditors' (evaluadores) independientemente del equipo de desarrollo examinan el proceso software, procedimientos, requisitos y otros aspectos del SDLC. El objetivo de esta evaluacin es comprobar que el software y su proceso de desarrollo, se cien a los estndars, normas y regulaciones.