Calidad y Pruebas de Software: Estándares y Metodologías
Enviado por Chuletator online y clasificado en Otras lenguas extranjeras
Escrito el en español con un tamaño de 5,97 KB
Calidad del Software
La calidad del software se mide por el cumplimiento de los requisitos del cliente, los estándares de desarrollo y las características profesionales esperadas. No es de calidad si:
- No cumple los requisitos iniciales.
- No sigue los estándares de desarrollo.
- Tiene errores importantes, es difícil de usar o de mantener.
Controles en el Desarrollo
Controles periódicos para:
- Verificar la construcción correcta del producto.
- Validar que cumple con las necesidades del usuario.
Estándares y Certificaciones
Normalización: Proceso de crear, aplicar y mejorar normas para simplificar, unificar y especificar.
Certificación: Verificación independiente de que se cumplen los requisitos mínimos establecidos.
ISO
ISO: La estandarización de normas de productos y seguridad para las empresas u organizaciones a nivel internacional, para asegurarse de que sus productos y servicios cumplan con los requerimientos del cliente y que la calidad se mejora constantemente.
- ISO 9000: Normas de gestión de la calidad.
- ISO 9001:2015: Requisitos mínimos de gestión de calidad (única certificable).
- ISO 9000:2005: Conceptos y lenguaje básicos.
- ISO 9004:2009: Mejora de sistemas de gestión de calidad.
- ISO 19011:2011: Auditorías de calidad.
IEC
IEC: Normalización en tecnologías eléctricas y electrónicas.
- ISO/IEC 90003:2014: Aplicación de la ISO 9001:2008 en el software.
AENOR
AENOR: Normalización y certificación en España, con normas UNE.
IEEE
IEEE: Normas para tecnologías de la información y electrónicas.
Tipos de Pruebas
Funcionales, No Funcionales, Manuales, Automáticas, Dinámicas, Estáticas.
Pruebas de Software
- Unitarias: Detectan problemas en módulos individuales. Ej.: JUnit (Java), CppUnit (C++).
- Integración: Detectan problemas entre módulos. Tipos:
- Incremental Ascendente: Desde módulos de bajo nivel.
- Incremental Descendente: Desde el módulo principal.
- No Incremental: Todos los módulos probados individualmente, luego combinados.
Integración Incremental Ascendente
- Combinación de módulos de bajo nivel.
- Uso de módulos impulsores para simular llamadas.
- Pruebas en pasos, eliminando impulsores al final.
Integración Incremental Descendente
- Comienza con el módulo principal.
- Sustituye módulos ficticios progresivamente.
- Módulos ficticios simulan llamadas y devolución de valores.
Integración No Incremental
- Prueba cada módulo por separado con impulsores y módulos ficticios.
- Todos los módulos combinados al final.
Pruebas de Sistema o Implantación
- Sobrecarga/estrés: Evaluación en condiciones extremas.
- Compatibilidad: Pruebas en diferentes entornos.
- Seguridad: Respuesta ante ataques.
- Recuperación: Respuesta a fallos externos.
Pruebas de Validación o Aceptación
- Verifican que el software cumple los requisitos.
- Alfa: Realizadas por el cliente en entorno controlado.
- Beta: Realizadas por usuarios en entorno real.
Pruebas de Regresión
Verifican que cambios no introduzcan nuevos errores.
Valores Límite
La experiencia constata que los casos de prueba que exploran las condiciones límite de un programa producen un mejor resultado para la detección de defectos. Algunas reglas:
- Si para una entrada se especifica un rango de valores, se deben generar casos válidos para los extremos del rango y casos no válidos para situaciones justo más allá de los extremos.
- Si para una entrada se especifica un número de valores, hay que escribir casos para los números máximo, mínimo, uno más del máximo y uno menos del mínimo.
- De especificar rango de valores para la salida, se intentarán escribir casos para tratar los límites en la salida.
- De especificar número de valores para la salida, hay que intentar escribir casos para tratar los límites en la salida.
- Si la entrada o salida es un conjunto ordenado, los casos deben concentrarse en el primero y en el último elemento.
JUnit
JUnit es un framework o conjunto de clases Java que permite crear y ejecutar pruebas automatizadas. Los casos de prueba en programas Java quedan archivados y pueden volver a ejecutarse tantas veces como sea necesario.
JUnit se diseñó para hacer pruebas de unidad. No obstante, puede usarse no solo para pruebas unitarias sino también para otra clase de pruebas.
Los IDEs como Netbeans y Eclipse cuentan con complementos para utilizar JUnit, permitiendo que el programador se centre en la prueba y en el resultado esperado y deje al IDE la creación de las clases que permiten la prueba.
Es posible ejecutar código para configurar y terminar las pruebas. Hay cuatro anotaciones para ayudar a hacerlo:
- @BeforeAll. Se ejecuta una vez antes de todas las pruebas y de los métodos marcados con @BeforeEach.
- @BeforeEach. Se ejecuta antes de cada prueba.
- @AfterEach. Se ejecuta después de cada prueba.
- @AfterAll. Se ejecuta una vez después de todas las pruebas y métodos marcados con @AfterEach.