Control de Calidad de Software ± Fase de pruebas La función del Control de Calidad de Software es verificar que el proyecto cumpla con los procesos y procedimientos estandarizados y que se creen y actualicen los productos internos y externos del mismo. Uno de los puntos más críticos para un proyecto es tener un bue n procedimiento para la fase de pruebas, esta fase es el proceso de verificar y validar Software en cuanto al cumplimiento de las especificaciones técnicas y del negocio previo a implementarlo en un ambiente de producción, de ahi que sea de vital importancia. Un error en el software es un incumplimiento de una especificación del producto o requerimiento. Por lo tanto es muy importante import ante que los requerimientos esten bien definidos y que t engan un criterio de aceptación adecuado para que el analista de calidad pueda diseñan su plan de pruebas y sus casos de prueba adecuadamente. Un error ocurre cuando: y
y
y y
y
El
software no realiza algo que las especificaciones o requerimientos indican que debería de hacer. El software hace algo que las especificaciones o requerimientos indican que no debería de hacer. El software hace algo que las especificaciones o requerimientos no mencionan. El software no hace algo que las especificaciones o requerimientos no indican pero deberían. El software es difícil de usar, lento, complicado
Cuáles son las razones porque ocurren los errores en el Software:
1.
specificaciones: Especificaciones:
al a l momento de redactar las especificaciones estas están incompletas, ambiguas, variables o simplemente simplemente no están realizadas. 2. Diseño: el diseño de la solución esta incompleto o inadecuado o bien las especificaciones no se comprendieron correctamente. 3. Codificación: el código es incorrecto porque se hizo rápidamente, el programador no conoce bien el lenguaje o no comprendió bien el diseño
Métodos
de pruebas
Pruebas de Caja Blanca y Negra Caja blanca: Son pruebas en las cuales el ³tester´ tiene acceso a la estructura de datos interna, algoritmos y código fuente.
Caja negra: Son pruebas en las cuales el ³tester´ no posee conocimiento ni información acerca de los procesos que suceden internamente. Las pruebas tambien pueden ser mixtas, se llaman de Caja Gris cuando parcialmente se conoce sobre los procesos internos que conllevan al resultado final. Pruebas funcionales y no funcionales: Una prueba funcional se encarga de verificar y validar la correcta operación del Software, si su comportamiento es acorde al indicado en el documento de diseño. Una prueba no funcional se encarga de verificar y validar que el Software funcione correctamente en casos donde se ha ingresado valores inesperados o inválidos. Verificación y validación de ingreso de datos y el manejo de errores.
Las
pruebas
Una buena forma de tipificar las pruebas es por el nivel de prueba que tiene respecto al producto, el nivel de prueba tiene una relación directa con la persona que realiza la prueba, en cada nivel es diferente persona. Las
pruebas más convencionales y útiles son:
1.
unitarias: son las pruebas que se realizan para determinar si una porción de código, función, procedimiento o método tiene una correcta funcionalidad. Estas pruebas son diseñadas y ejecutadas por el desarrollador. También se conocen como pruebas de componente. 2. Pruebas de integración: son las pruebas que se realizan para determinar la integración de los componentes dentro de un sistema y evaluar su correcta interfase, funcionalidad y desempeño. Estas pruebas son diseñadas y ejecutadas por el desarrollador pero deben ser adecuadas para servir de apoyo a todo el equipo de desarrollo. 3. Pruebas de sistema: son las pruebas que se rea lizan para determinar el correcto funcionamiento de un sistema y su cu mplimiento contra las especificaciones del producto. Estas pruebas son diseñadas y ejecutadas por un µtester¶. Dentro de estas pruebas existe una tipificación orientada a probar diferentes características del sistema, las más útiles son: 1. Prueba de humo: son las pruebas que se realizan inmediatamente después de reparar o ensamblar todos los componentes de un sistema, sirven para asegurarse que el sistema no va a fallar catastróficamente al ponerlo en uso. Luego de pasar este tipo de prueba, el sistema esta listo p ara someterse a otro tipo de pruebas. Este tipo de prueba no es obligatoria ni requiere una documentación altamente detallada. 2. Prueba de estrés: son las pruebas que se realizan para determinar la robustez y disponibilidad de un sistema, así como el manejo de errores, estando bajo una gran carga de transacciones, sobrepasando lo que se consideraría una circunstancia normal de operaciones. Estas pruebas se Pruebas
pueden realizar por medio de Scripts, Bots o herramientas de Denial of Service. 3. Pruebas de carga: son las pruebas que se realizan para evaluar el comportamiento, cuellos de botella y eficiencia de un sistema mediante una carga de transacciones complejas. Esto permiten evaluar la capacidad de procesamiento del sistema, por ejemplo, puede ser una prueba para evaluar la capacidad de la base de datos, servidores de balanceo de carga , congestión o latencia en la red o procesamiento del lado del cliente. Estas pruebas son importantes si el sistema aplica un SLA. 4. Pruebas de eficiencia: son las pruebas que se realizan para evaluar la eficiencia o rapidez de respuesta de un sistema, a nivel de respuesta de un equipo, red o dispositivo. Estas pruebas se realizan regularmente combinadas junto a las pruebas de estrés y de carga. 5. Pruebas de regresión: son las pruebas que se realizan para asegurarse que no existen nuevos errores en funcionalidades existentes luego de que se hayan aplicado cambios o reparaciones al sistema, así como cuando se realizan mejoras funcionales, parches, actualizaciones o cambios de configuración. Estas son utiles para los sistemas, ya que muchas veces se realizan cambios menores en el sistema y no se tiene una perspectiva amplia de las repercusiones del mismo. Una buena práctica es tener una librería de pruebas de regresión para cada sistema, esto sirve para evaluar exactitud y calidad del sistema, también es muy útil para evaluar un sistema luego de poner en marcha un ambiente de recuperación ante desastres. 4. Pruebas de Aceptación: son las pruebas que se realizan para va lidar las especificaciones del cliente previo a la entrega del producto. También es una buena práctica realizar una prueba de aceptación luego de implementar un Software para estar seguros que el sistema funciona correctamente. Estas pruebas no deben ser, de preferencia, diseñadas por la misma persona que crea las pruebas de sistema, regularmente se le solicita al cliente diseñarlas o estar involucrado en un alto nivel en el diseño de las mismas. También se conoce como prueba de u suario final (UAT o End-User Test en inglés). Hasta este punto, estas son las pruebas que en mi experiencia han sido las mas utilizadas, hay muchas otras pruebas mas que se pueden utilizar en ciertos casos específicos, si tienen alguna prueba mas que necesiten conocer, dejen un comentario y puedo ayudarles.
Control de la calidad del software (Software Quality Control) Son las técnicas y actividades de carácter operativo, utilizadas para satisfacer los requisitos relativos a la calidad, centradas en dos objetivos fundamentales: ± mantener bajo control un proceso
± eliminar
las causas de los defectos en las diferentes fases del ciclo de vida En general son las actividades para evaluar la calidad de los productos desarrollados
Control de calidad El control de calidad son todos los
mecanismos, acciones, herramientas que realizamos para
detectar la presencia de errores. La función del control de calidad existe primordialmente como una organización de servicio, para conocer las especificaciones establecidas por la ingeniería del producto y proporcionar asistencia al departamento de fabricación, para que la producción alcance estas especificaciones. Como tal, la función consiste en la recolección y análisis de grandes cantidades de datos que después se presentan a diferentes departamentos para iniciar una acción correctiva adecuada.
Todo producto que no cumpla las características mínimas para decir que es co rrecto, será eliminado, sin poderse corregir los posibles defectos de fabricación que podrían evitar esos costos añadidos y desperdicios de material. Para controlar la calidad de un producto se realizan inspecciones o pruebas de muestreo para verificar que las características del mismo sean óptimas. El único inconveniente de estas pruebas es el gasto que conlleva el control de cada producto fabricado, ya que se eliminan los defectuosos, sin posibilidad de reutilizarlo.