Universidad de Guadalajara Centro Universitario de Ciencias Exáctas e Ingenierías Barajas Sánchez Adolfo Fundamentos de Ingeniería de Software Azucena Nuño Gómez
Pruebas de Software
La prueba de software es un conjunto de herramientas, tecnicas y métodos que hacen a la excelencia del desempeño de un programa, asi como tambien la mejor publicidad que una empresa dedicada a la producción de software pueda tener. Las tecnicas para encontrar problemas en un programa son extensamente variadas y van desde el uso del ingenio por parte del personal de prueba hasta herramientas automatizadas que ayudan a aliviar el peso y el costo de tiempo de esta actividad.
Tipos de pruebas de Software
Las pruebas en conjunto tienen como objetivo general verificar y validar un software, independientemente de las características y el entorno donde se desarrollen, además de los recursos y los factores vinculados al proceso de desarrollo. Funcionalidad Función: Pruebas fijando su atención en la validación de las funciones, métodos, servicios, caso de uso. Seguridad: Asegurar que los datos o el sistema solamente es accedido por los actores deseados. Volumen: Enfocada en verificando las habilidades de los programas para manejar grandes cantidades de datos, tanto como entrada, salida o residente en la BD. Usabilidad Prueba enfocada a factores humanos, estéticos, consistencia en la interfaz de , ayuda sensitiva al contexto y en línea, asistente documentación de s y materiales de entrenamiento. Fiabilidad Integridad: Enfocada a la valoración exhaustiva de la robustez (resistencia a fallos). Estructura: Enfocada a la valoración a la adherencia a su diseño y formación. Este tipo de prueba es hecho a las aplicaciones Web asegurando que todos los enlaces están conectados, el contenido deseado es mostrado y no hay contenido huérfano. Stress: Enfocada a evaluar cómo el sistema responde bajo condiciones anormales. (extrema sobrecarga, insuficiente memoria, servicios y hardware no disponible, recursos compartidos no disponible). Rendimiento
Benchmark: Es un tipo de prueba que compara el rendimiento de un elemento nuevo o desconocido a uno de carga de trabajo de referencia conocido. Contención: Enfocada a la validación de las habilidades del elemento a probar para manejar aceptablemente la demanda de múltiples actores sobre un mismo recurso (registro de recursos, memoria). Carga: Usada para validar y valorar la aceptabilidad de los límites operacionales de un sistema bajo carga de trabajo variable, mientras el sistema bajo prueba permanece constante. La variación en carga es simular la carga de trabajo promedio y con picos que ocurre dentro de tolerancias operacionales normales. Soportabilidad Configuración: Enfocada a asegurar que funciona en diferentes configuraciones de hardware y software. Esta prueba es implementada también como prueba de rendimiento del sistema. Instalación: Enfocada a asegurar la instalación en diferentes configuraciones de hardware y software bajo diferentes condiciones (insuficiente espacio en disco, etc.)
Mantenimiento de Software
En ingeniería del software, el mantenimiento de software es la modificación de un producto de software después de la entrega, para corregir errores, mejorar el rendimiento, u otros atributos. El mantenimiento del software es una de las actividades más comunes en la ingeniería de software. El mantenimiento de software es también una de las fases en el ciclo de vida de desarrollo de sistemas (SDLC, sigla en inglés de system development life cycle), que se aplica al desarrollo de software. La fase de mantenimiento es la fase que viene después del despliegue (implementación) del software en el campo. Una percepción común del mantenimiento es que se trata meramente de la corrección de defectos. Sin embargo, un estudio indicó que la mayoría, más del 80%, del esfuerzo de mantenimiento es usado para acciones no correctivas (Pigosky 1997). Esta percepción es perpetuada por s enviando informes de problemas que en realidad son mejoras de funcionalidad al sistema
Etapas del mantenimiento del Software
A medida que pasa el tiempo, las aplicaciones de software deben ser sometidas a procesos de modificación que extiendan su vida útil o mejoren sus características. Corrección de bugs, adaptación a nuevos entornos tecnológicos o agregado de funcionalidad son algunas de las tareas que incluye el mantenimiento del software, una actividad que se repite periódicamente desde que empieza a utilizarse hasta su abandono definitivo.
A lo largo de su vida útil, la aplicación puede necesitar modificaciones por distintas razones, que determinan diferentes tipos de mantenimiento:
•
Mantenimiento preventivo. Consiste en la revisión constante del software para detectar posibles focos de problemas que puedan surgir en el futuro.
•
Mantenimiento predictivo. Evalúa el flujo de ejecución del programa para predecir con certeza el momento en el que se producirá la falla, y así determinar cuándo es adecuado realizar los ajustes correspondientes.
•
Mantenimiento correctivo. Corrige los defectos encontrados en el software, y que originan un comportamiento distinto al deseado. Estas fallas pueden ser de procesamiento, rendimiento (por ejemplo, uso ineficiente de los recursos de hardware), programación (inconsistencias en la ejecución), seguridad o estabilidad, entre otras.
•
Mantenimiento adaptativo. Si se requiere cambiar el entorno de uso de la aplicación (que incluye al sistema operativo, a la plataforma de hardware o, en el caso de las aplicaciones web, al navegador), puede ser indispensable modificarla para mantener su plena funcionalidad en estas nuevas condiciones.
•
Mantenimiento evolutivo. Es un caso especial donde la adaptación resulta prácticamente obligatoria, ya que de lo contrario el programa quedaría obsoleto con el paso del tiempo. Por ejemplo, el cambio de versión en un navegador (muchas veces impuesto sin el consentimiento del ) suele obligar a realizar ajustes en plugins y aplicaciones web.
•
Mantenimiento perfectivo. Por distintas razones, el puede solicitar el agregado de nuevas funcionalidades o características no contempladas al momento de la implementación del software. El mantenimiento perfectivo adapta la aplicación a este requerimiento.
El permanente mantenimiento del software puede asegurar su funcionalidad durante muchos años, ahorrando el tiempo y el costo económico de una migración total hacia una nueva aplicación.
Referencias Bibliográficas
• http://www.wikiwand.com/es/Pruebas_de_software • http://html.rincondelvago.com/prueba-de-software.html • http://materias.fi.uba.ar/7548/PruebasSoftware.pdfd
• Sommerville (2005). (Capítulo 22 y 23) • Jacobson, g, ( ) I., Booch, G., and Rumbaugh, J. (2000): El Proceso Unificado de Desarrollo. Addison-Wesley. (Capítulo 11) • Pressman, R. (2005): Ingeniería del Software: Un Enfoque Práctico. 6º Edición. McGraw Edición. McGraw-Hill. (Capítulos 13 y 14) • http://www.ecured.cu/index.php/Pruebas_de_Calidad_de_Software