Contenido
Contenido
1.1 Concepto de calidad y pruebas del software 2
1.2 Marco de referencia de los servicios a contratar 2
2 SERVICIO PRUEBAS DE SOFTWARE 3
2.2 Características del servicio 3
2.3.7 Esquema general metodológico 8
2.9 Procedimiento para la estimación de esfuerzo y pago de los servicios 10
3.2 Gestión del Cambio Organizacional y Transferencia de Conocimiento 11
1 INTRODUCCIÓN
Actualmente el ICFES utiliza como metodología de Proyectos de desarrollo SCRUM, teniendo como principal objetivo generar constantemente nuevas versiones de los sistemas de información que generen valor de negocio, en los tiempos que se requieren y con alta calidad.
1.1 Concepto de calidad y pruebas del software
En el contexto del proceso de desarrollo de software entendemos la calidad desde los siguientes criterios básicos:
• Cumplimiento de los requisitos: “Conformance to requirements” (Xxxxxx -1979).
• Listo para su uso: “Fitness for use” (Juran and Gryna -1970).
Así mismos nos apoyamos en la definición establecido por la IEEE Std. 610 – 1991, donde se define la calidad del software como “el grado con el que un sistema, componente o proceso cumple los requerimientos especificados y las necesidades o expectativas del cliente o usuario”.
Las actividades desarrolladas en la fase de pruebas hacen parte del ciclo de vida del desarrollo de software, estas actividades permiten tener cierta certeza sobre la funcionalidad esperada del sistema desarrollado, incluso permite verificar los flujos de excepción a fallos del sistema, estos pueden ser propios de la aplicación u ocasionados por causas externas al sistema.
La realización de estas pruebas de software, basadas en una metodología ágil de ejecución de pruebas, donde se definan y ejecuten tareas de verificación, garantizan la condición de calidad esperada por él sistema; estas pruebas pueden cumplir con principios ISTQB® (International Software Testing Qualifications Board) sin embargo se debe tener en cuenta que el objetivo principal es hacer la ejecución ágil de pruebas (Agile Testing) que permiten dar lineamientos y certifiquen que el producto sea probado y cumpla con la calidad necesaria incluso sin haber sido probado exhaustivamente.
1.2 Marco de referencia de los servicios a contratar
El marco de referencia aquí definido se suscribe a los siguientes estándares:
• ISO 9001:2000 que especifica los requisitos para un sistema de gestión de la calidad, ISO/IEC 9126:1991 ingeniería del software – calidad de producto, la cual contiene
ANEXO TÉCNICO
SERVICIO DE PRUEBAS DE SOFTWARE
un modelo de calidad y medición que permite la evaluación de la calidad de un producto software.
• ISO 25000:2005
• IEEE 829 – 1998: Standard for Software Test Documentation. Define la documentación generada en cada una de las fases del proyecto de pruebas.
• IEEE 830 – 1998: Recommended Practice for Software Requirements Specifications. Proporciona una guía de buenas prácticas para la elaboración de una especificación de requerimientos.
• IEEE 1012 – 2004: Standard for Software Verification and Validation. Detalla los procesos de verificación y validación (V&V) del software, y su organización.
• IEEE 1061 – 1998: Standard for a Software Quality Metrics Methodology. Define el establecimiento, la implementación, el análisis y la validación de métricas de calidad de software.
• Estándares “de facto” aceptados por la industria.
Es conveniente recordar que la intención de las actividades de pruebas es asegurar la calidad de los productos de software desarrollados y con esto lograr niveles de satisfacción del cliente y de usuario favorables para la organización.
2 SERVICIO PRUEBAS DE SOFTWARE
2.1 Objetivo
Prestación de los servicios de ejecución pruebas ágiles de software, sobre los desarrollos de software del sistema PRISMA del ICFES.
2.2 Características del servicio
El servicio de ejecución de pruebas ágiles de software se prestará en las instalaciones del ICFES en Bogotá, y será tanto para los desarrollos de los grupos internos del ICFES como para el software desarrollado en un modelo tercerizado a una fábrica de software externa. A continuación se describen las condiciones mínimas requeridas, para que un contratista realice las pruebas de software:
La metodología definida debe garantizar que los sistemas actuales y los nuevos sistemas desarrollados por el ICFES cumplan con los requerimientos funcionales y no funcionales definidos con una ejecución ágil que permita tener el producto en condiciones de aceptación.
ANEXO TÉCNICO
SERVICIO DE PRUEBAS DE SOFTWARE
1. El contratista debe tomar como base metodológica los principios de pruebas agiles (agile testing) de la Agile Testing Alliance para establecer el plan de pruebas del ciclo de vida de los procesos.
2. El contratista deberá definir y ejecutar la metodología (actividades, roles, artefactos) de pruebas garantizando la ejecución de las siguientes pruebas:
3. El contratista utilizará las herramientas definidas por el ICFES en las actividades de pruebas de software para realizar la ejecución de pruebas y gestión de incidentes, verificando que se abarquen los tipos de pruebas definidos por el ICFES y su respectivo seguimiento. Estas herramientas son:
x. Xxxxxx
ii. TestLink
iii. JSF Unit
iv. Junit
v. Jmeter
vi. Kali Linux
vii. Selenium
viii. TestEngine
En caso en el que el contratista cuente con herramientas para su proceso de pruebas se evaluará en conjunto con el ICFES para definir cual set de herramientas se utilizará en la ejecución del contrato.
4. El contratista deberá entregar una estimación de esfuerzo para cada ciclo de pruebas o casos de prueba, para ser aprobada por el ICFES.
ANEXO TÉCNICO
SERVICIO DE PRUEBAS DE SOFTWARE
5. El contratista deberá hacer la generación de los datos de pruebas para hacer la ejecución de sus diferentes escenarios de pruebas.
6. El contratista deberá ejecutar todas las pruebas de acuerdo a los casos definidos y acordados con el ICFES.
7. El contratista deberá realizar la transferencia del conocimiento al ICFES o a quien este designe durante la ejecución del contrato en los tiempos definidos en mutuo acuerdo por las partes.
8. El contratista debe definir los lineamientos y estándares de calidad que se deberán seguir en el ICFES, e implementar los artefactos que los soportan (ej. Plantillas de validación y verificación, matrices, formatos, etc.).
9. El contratista debe definir los indicadores de avance para el proceso de pruebas. Una vez se identifiquen las métricas necesarias se debe validar la viabilidad de obtención de las mismas, desde las herramientas utilizadas, y así generar los informes que permitirán realizar los análisis respectivos facilitando la toma de acciones y decisiones.
10. El contratista debe realizar una socialización y capacitación inicial sobre la metodología de pruebas de software propuesta, a los grupos de interesados que existan en el Instituto.
11. El contratista debe entregar una estimación de esfuerzo para cada ciclo de pruebas, a ser aprobada por el ICFES, y sobre la cual se realizará el pago del esfuerzo.
12. El contratista debe realizar la gestión de conocimiento necesario, incluyendo la estrategia de transferencia de conocimiento hacia el grupo de pruebas de software del ICFES y los grupos de interesados durante el transcurso de la ejecución del contrato en las herramientas a convenir.
2.3 Metodología
En la metodología de pruebas se deben establecer todas las etapas con sus actividades para ser realizadas durante el proceso de prueba de un producto entregado de software. Esta metodología debe permitir obtener la descripción de cada actividad a realizar, y a su vez debe establecer la documentación de entrada necesaria, así como la documentación de salida que se obtendrá durante el proceso de pruebas.
El contratista debe definir el proceso de pruebas y la metodología que serán ejecutadas durante la realización de los proyectos de desarrollo de software. Los proyectos de desarrollo
ANEXO TÉCNICO
SERVICIO DE PRUEBAS DE SOFTWARE
y mantenimiento de software siguen una metodología que incluye fases, actividades y entregables del producto de software desarrollado. El proceso de pruebas definido por el proveedor deberá estar completamente alineado con la o las metodologías definidas para el desarrollo del software del ICFES, por tanto, el contratista deberá contemplar la ejecución de las actividades definidas de forma paralela a las fases de desarrollo definidas en los proyectos de desarrollo de software, y como complemento necesario a éstos. El control de la calidad asignado al proyecto permitirá determinar los niveles y tipologías de pruebas que deben contemplarse y aplicarse según la metodología usada. Las actividades de pruebas del producto de software deben estar enmarcadas dentro del siguiente esquema metodológico:
2.3.1 Planeación
Bajo el esquema de desarrollo de proyectos agiles, el equipo de pruebas hace parte de la planificación de los Sprint aportando información referente a la definición de los casos de prueba acorde a las historias de usuario diseñadas por el analista funcional. Estos casos de prueba deben discriminar que tipos de prueba (Automatizadas como JUnit, JSFUnit, Selenium o Manuales) se deben realizar para que historia de usuarios y que probar específicamente, este documento se realiza apoyado en desarrolladores e historias de usuario más la experiencia que debe tener el Analista de pruebas teniendo en cuenta que no se solapen las pruebas del desarrollador y el analista de pruebas.
2.3.2 Ejecución
Durante el Sprint, se da inicio a la ejecución de las actividades necesarias para la ejecución de pruebas como configuración de ambientes de trabajo, ejecución de casos de prueba, elaboración de documentación e informes de seguimiento incluyendo los indicadores correspondientes, registro en herramientas de seguimiento y cualquier otra definida previamente y aceptada por el equipo de pruebas y el equipo responsable del producto de software. Durante la ejecución de pruebas se deben realizar actividades para cubrir aspectos como elaboración y ejecución de pruebas automatizadas a través de la grabación de scripts (Selenium o JMeter) dentro del sprint de su equipo y acorde a los casos de prueba definidos al inicio del sprint. Teniendo en cuenta las siguientes actividades:
• Pruebas de Sistema: Estas pruebas se realizan sobre todo el sistema con el objeto de probar el correcto funcionamiento de los requerimientos funcionales y no funcionales determinados para cada módulo del sistema. Igualmente, se deben validar estándares y políticas del ICFES. El proveedor puede realizar cuando lo considere necesario, la verificación de la estabilidad del producto entregado mediante la ejecución de las funcionalidades básicas (smoke testing).
ANEXO TÉCNICO
SERVICIO DE PRUEBAS DE SOFTWARE
• Pruebas de Integración: Las pruebas realizadas como integración deben verificar que al incrementar funcionalidades a las previamente probadas y certificadas, no se ha alterado el funcionamiento de estas y el sistema sigue funcionando según las necesidades para las cuales el producto de software fue construido.
• Pruebas Funcionales: El alcance de las pruebas desde el punto de vista funcional, estará acorde con los requerimientos entregados por el ICFES y con el diseño de los módulos correspondientes, considerando: la integración con otros aplicativos o plataformas, validaciones de usabilidad y de excepción, y reglas del negocio.
• Pruebas no funcionales: Estas pruebas tienen el objetivo de definir criterios de aceptación para el correcto funcionamiento de la aplicación, desde el punto de vista no funcional, se deben verificar aspectos como control de acceso, ratificación de usuarios y perfiles, performance (carga, estrés, escalabilidad), y cualquier otro que sea definido entre el contratista y el ICFES.
• Pruebas de usabilidad: Durante la ejecución del proceso de certificación, se debe:
✓ Velar por la usabilidad de la solución
✓ Validar la facilidad de interacción con un sistema
✓ Verificar además la claridad y presentación de la información en la aplicación Una buena usabilidad se presenta cuando existe a su vez una combinación equilibrada de temas funcionales y no funcionales.
• Pruebas Automatizadas: En los escenarios que se definan conjuntamente entre el contratista y el ICFES, se requerirá automatizar las pruebas; para esto, deben ser completas, repetibles o reutilizables e independientes, especialmente para las pruebas de regresión.
• Pruebas de Aceptación de Usuario (UAT). Definir con el usuario final los casos prueba considerados en la ruta crítica, y acompañar al usuario en la realización de pruebas para los casos previamente definidos y aprobados, con el fin de obtener su visto bueno con respecto a la solución implementada para suplir sus necesidades.
Y demás tipos de pruebas que se consideren indispensables para garantizar la calidad de los productos de software que se vayan a validar.
2.3.6 Seguimiento y Control
En esta etapa el contratista será el responsable de revisar los reportes de los errores encontrados en producción, y verificar si los escenarios cubiertos y los casos de prueba definidos cubrieron las pruebas correspondientes a las funcionalidades revisadas o si por
ANEXO TÉCNICO
SERVICIO DE PRUEBAS DE SOFTWARE
el contrario son nuevos casos que no se contemplaron, en caso de no contemplarse el contratista asumirá los tiempos de la definición, ejecución de nuevos casos de prueba y la generación de informes necesarios para encontrar posibilidades de mejora.
2.3.7 Esquema general metodológico
A continuación se presenta el esquema metodológico de desarrollo donde se evidencia la participación del equipo de pruebas durante las diferentes etapas de los Sprint.
2.4 Despliegues
El ICFES es responsable de la realización de los despliegues de los aplicativos a probar en los ambientes de pruebas, y tendrá de forma permanente un analista para despliegues, teniendo en cuenta que esto facilitará la prestación del servicio y ejecución de las pruebas.
2.5 Gestión de Incidencias
El proceso de gestión de incidencias está directamente relacionado con la ejecución de pruebas y el seguimiento que de estas se realiza, así mismo, es utilizado para el reporte de incidencias generadas por otros procesos como la verificación documental y las auditorías referidas en el Modelo Aseguramiento de Calidad. El contratista deberá indicar como soporta y maneja la gestión de incidencias.
2.6 Entregables
Como resultado de las actividades de las distintas fases, el contratista debe generar como mínimo los siguientes entregables:
• Estimación de pruebas
• Matriz de trazabilidad de requerimientos, casos de uso o historias de usuario vs casos de prueba.
• Plan de pruebas y factores de riesgo de pruebas
• Cronograma de pruebas
• Informes de seguimiento de pruebas después de cada ciclo de pruebas.
• Especificación de casos de prueba
• Resultados de la ejecución de pruebas en las herramientas acordadas entre el contratista y el ICFES.
• Informe de avance de ejecución (diario y semanal por ciclo de prueba).
• Registro de incidencias en la herramienta determinada por el contratista.
• Informes finales de pruebas por sistema o módulo, incluyendo los indicadores.
• Informe de nivel de pruebas de integración y de sistema.
El Contratista debe entregar información en formato digital de toda la información que reside en sus herramientas.
2.7 Anexos
El contratista al iniciar la ejecución del contrato debe entregar un conjunto de documentos que expliquen en detalle los siguientes aspectos:
• Metodología de pruebas
• Procedimiento de Gestión de Incidencias
• Procedimiento de Automatización de pruebas
• Procedimiento de Gestión de Riesgos de Pruebas
La implementación y ejecución de la prueba son actividades donde los procedimientos o scripts de prueba, los casos de prueba y cualquier otra información necesaria para la ejecución de la prueba, se utilizan de una forma integrada, por lo tanto se requiere que los resultados de la ejecución de prueba y versiones del producto de software que está siendo sometido a pruebas, queden registrados en las herramientas de prueba establecidas, esta información debe permitir comparar los resultados reales con los esperados, así como los diferentes reportes que contribuyen a asegurar la trazabilidad de las condiciones de prueba hacia las especificaciones entregadas en los documentos de casos de uso y diseño del producto de software. En este sentido el contratista usará las herramientas de las que disponga el ICFES para garantizar el desarrollo de las siguientes actividades:
• Planeación, ejecución, seguimiento y control de casos de prueba
• Gestión de incidencias
• Ejecución de pruebas de rendimiento, carga y stress
• Revisión de código
• Pruebas automatizadas
2.9 Procedimiento para la estimación de esfuerzo y pago de los servicios
El Contratista entregará la estimación para cada ciclo de pruebas en el formato acordado entre las partes para ser aprobado por el ICFES. En caso de requerirse el detalle de cada estimación, el Contratista deberá estar en capacidad de entregarlo. El ICFES se reserva el derecho de aprobar las estimaciones elaboradas por el contratista, y requerir los ajustes que sean necesarios. El pago de los servicios de pruebas de software se realizará sobre la ejecución aprobada del esfuerzo requerido para las fases de los ciclos de pruebas definidos. El contratista se compromete a ejecutar las pruebas en su totalidad, y a realizar el cobro de las mismas por el valor de horas acordado.
3 Aspectos generales
3.1 Gestión de proyectos
La ejecución del servicio objeto del presente términos de condiciones se realizará como un proyecto, de forma que se pueda tener una gestión y control adecuado sobre el avance, logro de los objetivos y alcance propuesto. Se requiere que la metodología a utilizar por el oferente esté alineada con el Project Management Body of Knowledge (PMBOK®) del Project Management Institute (PMI). También, se deben cumplir los lineamientos que el ICFES indique al contratista con respecto a la gestión, reporte y control del proyecto. El contratista deberá presentar informes diarios y semanales del rendimiento del proyecto,
ANEXO TÉCNICO
SERVICIO DE PRUEBAS DE SOFTWARE
adicionalmente asistir a todas las reuniones de seguimiento realizadas durante la ejecución del proyecto. El contratista debe contar con el licenciamiento de las herramientas de software necesarias para la realización de todos los procesos de la gerencia de proyectos, descritos en este anexo. Se requiere que el oferente use el software de gestión de proyectos Microsoft Project en la versión que determine el ICFES en el momento de la ejecución del contrato para poder revisar el cronograma, y cubierto por sus propias licencias.
3.2 Gestión del Cambio Organizacional y Transferencia de Conocimiento
El proponente debe detallar su propuesta para gestionar el cambio organizacional, las capacitaciones, talleres, cursos y en general los mecanismos que utilizará para realizar la transferencia de conocimiento adecuada, esto con el fin permitir la sensibilización del personal del ICFES hacia el proceso de pruebas, y garantizar que las personas encargadas puedan tomar las acciones necesarias durante la ejecución del contrato. En caso de requerirse esta transferencia de conocimiento se debe describir quien lo imparte, temario, audiencia, cronología, sesiones, duración de cada sesión, y cantidad de personas a quienes está dirigida la transferencia de conocimiento.