Introducción a las Pruebas de Software
Contenido Contenido El ciclo de vida de la Calidad. Conceptos Generales de Pruebas. Proceso de Pruebas de So7ware. Obje;vos de las Pruebas de So7ware. Beneficios de las Pruebas de So7ware. Tipos de Pruebas. Caracterís;cas de Calidad de un Producto de So7ware. Relación Productos de Desarrollo y Niveles de Prueba. Herramientas de Apoyo a las Pruebas de So7ware. Herramientas que Automa;zan las Pruebas de So7ware
El Ciclo de Vida de la Calidad La calidad de un proceso contribuye a la calidad de un producto. La calidad de un producto contribuye a la calidad en uso del producto. SQA vs. Tes0ng??????
El Ciclo de Vida de la Calidad Un claro ejemplo de esto son los costos de errores en el proceso de Ges;ón de Requerimientos; corregir un error de requerimiento después del desarrollo puede resultar en un costo 100 veces mayor que corregir un error en la implementación.
Conceptos Generales de Pruebas Qué son las Pruebas? El proceso de operar un sistema o un componente bajo condiciones especificadas, observando o registrando los resultados, y de hacer una evaluación de un cierto aspecto del sistema o del componente. Las pruebas muestran la presencia de errores pero nunca la ausencia de ellos IEEE Estándar Glossary of So7ware Enginerineering Terminology
Conceptos Generales de Pruebas Ideas Generales La prueba exhaus;va del so7ware es imprac;cable (no se pueden probar todas las posibilidades de su funcionamiento ni siquiera en programas sencillos) El obje;vo de las pruebas es la detección de defectos en el so7ware (descubrir un error es el éxito de una prueba) Mito - un defecto implica que somos malos profesionales y que debemos sen;rnos culpables. Todo el mundo comete errores. El descubrimiento de un defecto significa un éxito para la Mejora de la Calidad
Proceso de Pruebas de So7ware El proceso de prueba conlleva la realización de un conjunto de tareas a lo largo del ciclo de vida del desarrollo del producto de so7ware.
Obje;vos de las Pruebas de So7ware En el Producto: Detectar no conformidades antes de que el producto sea instalado en el cliente o usuario final. Garan;zar la aceptación de los productos por parte de los clientes o usuarios finales. Asegurar que el producto (Sistema) este listo para ser u;lizado desde el punto de vista funcional. Mostrar que cada una de las partes del producto funciona correctamente. Mejoramiento en la sa;sfacción de clientes o usuarios finales.
Obje;vos de las Pruebas de So7ware En el Equipo de desarrollo Disminución del reproceso Apropiación de la cultura de calidad por parte del equipo humano Equipo humano entrenado en las áreas claves del proceso de aseguramiento de calidad de so7ware Función de aseguramiento de calidad de so7ware documentada
Beneficios de las Pruebas de So7ware Incrementan la produc;vidad del equipo de desarrollo. Facilitan la detección temprana de no conformidades. Son un mecanismo obje;vo para asegurar que los requerimientos de los productos se cumplen. Son una evaluación obje;va de los resultados.
Niveles de Pruebas Tipos de Pruebas
Tipos de Pruebas Pruebas Unidad Las pruebas de unidad centran su proceso de verificación en la menor unidad de so7ware, el módulo ü ü ü Su obje;vo es probar la funcionalidad del código. Intentan encontrar casos en los que el módulo no a;ende a su especificación. Especialmente indicadas en los módulos que van a ser interfaz con el usuario. Ejemplo: Verificar en la aplicación la funcionalidad de registro de usuarios.
Tipos de Pruebas Pruebas Integración Las pruebas de integración en un producto de so7ware se presenta tanto en la integración entre módulos que hacen parte del mismo producto como para soluciones que están conformadas por varios. Integración entre módulos. El obje;vo de estas pruebas es verificar que los módulos o componentes que conforman el producto funcionan correctamente en conjunto o integrados. Integración entre productos. Tiene como obje;vo verificar la interoperabilidad entre productos que garan;cen el funcionamiento adecuado de la solución. Ejemplo: Se ofrece una solución a un cliente el cual ;ene 3 componentes: 1. Un portal de acceso. 2. Una herramienta para E- Learning. 3. Un sistema de indicadores de ges;ón para medir la u;lización del portal y del E- learning. Una de las funcionalidades compartidas entre aplicaciones es: Cuando se crea un nuevo curso automáticamente se creará un foro en el portal para que los integrantes del curso participen de él. Fuera de verificar que los módulos (creación de curso y foro) de cada componente funcionen correctamente de acuerdo a las especificaciones, se debe probar que la integración de los componentes (módulos y productos) operen adecuadamente como solución.
Tipos de Pruebas Pruebas Regresión Asegurar que cualquier no conformidad encontrada en el sistema ha sido corregida y que ninguna de las funcionalidades liberadas previamente ha fallado como resultado de las correcciones. Pruebas Sistemas El obje;vo es verificar que los procesos soportados por la aplicación se cumplen completamente, es decir, los procesos fluyen desde su inicio hasta el final. Se hace reu;lización de instrumentos de prueba.
Tipos de Pruebas Pruebas de Aceptación Realizadas con los clientes y define su aceptación del so7ware. Quién define el nivel de la prueba de aceptación? Quién plantea y escribe los instrumentos de pruebas? Quién ejecuta las pruebas? Cuál es el criterio de éxito / falla para la prueba de aceptación?
Tipos de Pruebas Pruebas Alpha y Beta Son pruebas de Sistemas que se realizan integrando al grupo de testers un conjunto de potenciales usuarios de la aplicación. Estos usuarios Conscientes de que el producto no ha sido liberado usan su experiencia para adver;r sobre potenciales fallas de la aplicación. La diferencia fundamental entre estas pruebas radica en la ubicación del equipo de pruebas; Alpha son las pruebas que se realizan internamente en la casa de so7ware y Beta las que se realizan externamente en el cliente.
Tipos de Pruebas En los ;empos de Windows, las versiones preliminares del producto seguían una progresión bastante estándar. Primero se tenía las versiones alfa, que se usaban de forma interna y, posiblemente, se compargan con partners de desarrollo de so7ware ajenos al equipo del producto de Windows. Después de las versiones alfa, naturalmente, vienen las versiones beta, que se envían a una audiencia algo más amplia. Las versiones beta incluyen a personas que no son desarrolladores de so7ware, como usuarios finales a los que les gusta probar so7ware aún no comercializado y empresas que desean avanzar con la evaluación del nuevo sistema opera;vo para determinar la compa;bilidad del producto nuevo no sólo con sus aplicaciones internas crí;cas, sino también con la red corpora;va, las configuraciones estándar de hardware y las herramientas de administración del sistema
Tipos de Pruebas Pruebas de Seguridad - La prueba de seguridad intenta verificar que los mecanismos de protección incorporados en el sistema lo protegerán, de hecho, de accesos impropios. Durante la prueba de seguridad, el responsable de la prueba desempeña el papel de un individuo que desea entrar al sistema sin ser autorizado. Pruebas Desempeño (Carga) - Prueba dirigida a evaluar la conformidad de un sistema o componente con requerimientos de desempeño específicos. Normalmente esto se lleva a cabo usando una herramienta de prueba automá;ca para simular un gran número de usuarios.
Tipos de Pruebas Pruebas Resistencia (Stress): La prueba de resistencia ejecuta un sistema de forma que demande recursos en can;dad, frecuencia o volúmenes anormales. Por ejemplo: Diseñar pruebas especiales que generen diez interrupciones por segundo, cuando las normales son una o dos; Incrementar las frecuencias de datos de entrada en un orden de magnitud con el fin de comprobar cómo responden las funciones de entrada; Ejecutar casos de prueba que puedan dar problemas en un sistema opera;vo virtual o Diseñar casos de prueba que produzcan excesivas búsquedas de datos residentes en disco.
Tipos de Pruebas Prueba de Volumen - Prueba con la cual se confirma que cualquier valor que pudiera llegar a ser grande en un cierto plazo (como por ejemplo logs, archivos de datos, etc ), puede ser acomodado por el programa y no causará que el programa deje de trabajar o degrade su operación en alguna forma. Prueba de Concurrencia - Prueba mul;usuario encaminada a determinar los efectos de acceder el mismo código de aplicación, modulo o registros de una base de datos. Iden;fica y mide el nivel de bloqueo (locking), bloqueo mutuo entre usuarios (deadlocking), uso de hilos simples (single- threaded) y semáforos de bloqueo (locking- semaphores).
Caracterís;cas de Calidad de un Producto de So7ware En 1991 el comité técnico de la ISO/IEC publicó la norma internacional ISO9126 que establece los lineamientos generales para la evaluación de un producto de software a partir de seis características de calidad
Caracterís;cas de Calidad de un Producto de So7ware
Relación Productos de Desarrollo y Niveles de Prueba
Herramientas de Apoyo a las Pruebas de SoSware Herramientas que apoyan el Proceso Están orientadas al modelado y diseño de las aplicaciones, el análisis está0co del código, el análisis dinámico del código, el "profiling" (medir la rapidez con que se ejecuta un programa) de las aplicaciones y el afinado del código de acceso a base de datos. DevPartner: Para la detección de errores, depuración y análisis de rendimiento de aplicaciones para Microsoft.NET y para JAVA. AnalystStudio: Identificar necesidades del usuario, Gestión de requerimientos, Modelado del negocio y Casos de uso. Kanav: Gestión de requerimientos, Definición de procesos de desarrollo de software, gestionar, evaluar, decidir, planificar y tomar el control de la ejecución de los proyectos. Subversion: Sistema de control de versiones, se encarga de mantener un árbol histórico de ficheros y directorios a lo largo del tiempo.
Herramientas de Apoyo a las Pruebas de SoSware Herramientas que Automa0zan las Pruebas Estas herramientas están orientadas a construir un conjunto de pruebas mínimo necesarias que garan;cen que la aplicación cumple con los requerimientos del cliente. Junit: Tests unitarios de aplicaciones Java TestStudio: Conjunto de herramientas que permiten verificar la calidad de las aplicaciones en sus tres dimensiones: funcionalidad, confiabilidad y desempeño. Cactus: Extensión de Junit Jmeter: Pruebas de estrés en aplicaciones web Jtest: Detectar errores, que antes sólo podían ser identificados en las fases de integración y ejecución del código Jcrawler: Aplicación destinada a realizar pruebas de estrés sobre aplicaciones web, que simula los patrones de navegación típicos de los seres humanos y mantiene una carga constante sobre la aplicación, haciendo los test más realistas.