Ciclo de Vida de Las Pruebas PDF

Unidad 1 / Escenario 2 Lectura fundamental Ciclo de vida de las pruebas Contenido 1 Ciclo de vida de las pruebas 2

Views 53 Downloads 0 File size 601KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Unidad 1 / Escenario 2 Lectura fundamental

Ciclo de vida de las pruebas

Contenido 1

Ciclo de vida de las pruebas

2

Verificación de requerimientos

3

Verificación del diseño

4

Verificación de la programación

5

Principios de calidad del ciclo PDCA

6

Las pruebas en metodologías ágiles

7

Notas finales

Palabras clave: pruebas de software, inspecciones, pruebas unitarias, pruebas de sistema.

1. Ciclo de vida de las pruebas Las pruebas no se pueden apartar del ciclo de vida del desarrollo de software. Una vez que se ha definido el proceso y ciclo de vida del proyecto, la calidad y las pruebas van de la mano; se gestionan con el mismo ritmo en un plan específico para el aseguramiento que defina y se alinee con los objetivos, alcance, costos y tiempo establecidos por el plan general del proyecto. Las tareas relativas al aseguramiento forman parte del plan general y son consideradas actividades del proyecto. Como en todo proceso de software, las fases mínimas son el análisis, el diseño, la codificación, las pruebas y el mantenimiento. Usualmente las pruebas se consideran una fase, pero es claro que la calidad debe asegurarse en todas las etapas. Por lo tanto, el proceso de pruebas se realiza en cada una de estas fases. El propósito de las pruebas es validar que el análisis, diseño y codificación correspondan a los requerimientos, a través de un método de monitoreo y control ordenado. El mantenimiento (o avance por etapas) exige cambios sobre el software, que debe ser controlado por un proceso de administración de configuraciones que permita identificar componentes, versiones y facilite la integración. De allí la importancia de contemplar la documentación del usuario y la del sistema para cambios a futuro. Pero si hay una fase de verificación, ¿qué hacemos en las otras fases? Bien, ya vimos que la calidad no es solamente probar. Se requiere de procesos en los cuales la calidad se evidencie. Por ello, cada fase tiene una validación de la calidad que determina si el propósito de tal fase se cumple estableciendo los criterios de aceptación correspondientes. Cada proceso debe ir ligado con los datos de prueba que determinen que el producto se puede aceptar y el tipo de pruebas a realizar, como se muestra en la Figura 1, que desglosa el método V, diseñado por la Administración Federal Alemana para el control del proceso de desarrollo de software. En tal método, los requerimientos de usuario determinan las pruebas de aceptación por parte del cliente, dado que se define cada requisito como un conjunto verificable y medible, que el aplicativo debe cumplir. Así mismo, las pruebas del sistema corresponden al documento de especificación de requerimientos del software, que cubren en detalle los objetivos del programa que se debe entregar al cliente. La arquitectura del sistema se valida para establecer si cumple con las pruebas de integración de todos los subsistemas, módulos, aplicativos o librerías usadas para dar solución al problema planteado. El diseño detallado de cada programa, función o rutina debe cumplir con las pruebas unitarias para verificar que cada uno de los componentes cumple con las funciones asignadas, a partir de las entradas y salidas específicas y establecidas por los diseñadores e implementadas por los programadores. El plan de pruebas adaptado al ciclo de vida a desarrollar, en resumen, documenta la cobertura, los métodos, la documentación y las responsabilidades en cada fase del proyecto.

POLITÉCNICO GRANCOLOMBIANO POLITÉCNICO GRANCOLOMBIANO

2

El plan debe incluir al menos los objetivos, los elementos a probar, la estrategia a usar en el desarrollo de los procedimientos de prueba, su ambiente, criterios de aceptación, datos de prueba, tipos de prueba a realizar, sus responsables, el cronograma, los reportes y formatos, los riesgos, el control de cambios, la administración de la configuración, etc.

Figura 1. Modelo V de pruebas Fuente: 1tjf (s.f.)

En cada fase, las revisiones técnicas (inspecciones, presentaciones o revisión de pares) son las más adecuadas porque reducen la cantidad de errores producidos, porque se centran en áreas y objetivos particulares más pequeños, para asegurar que los componentes sean aptos para las fases posteriores de integración. Estas últimas son más costosas de corregir por las tareas a rehacer, las revisiones sirven además para documentar lecciones aprendidas y mejorar los procesos locales en cada etapa. De nuevo se usa el mecanismo de dividir y conquistar, al establecer un plan de pruebas en cada proceso llevado a cabo de manera estática, aunque en etapas posteriores, ya que hay software real a revisar en ejecución y pueden realizarse pruebas dinámicas. El modelo cíclico PDCA se aplica en cada fase con la definición del plan a seguir, la ejecución de las pruebas, el reporte de fallos encontrados y la corrección de los mismos. Así, no se pasa a la siguiente fase hasta que se esté libre de errores. En un modelo ágil, en espiral o por prototipos esto es igualmente válido que en los modelos tradicionales de línea conservadora. Para llevar a cabo una inspección de sigue el modelo de Fagan en el cual hay un líder, un relator, un programador y un inspector.

POLITÉCNICO GRANCOLOMBIANO POLITÉCNICO GRANCOLOMBIANO

3

Cómo mejorar... El estándar IEEE 829-2008 para la documentación de pruebas de software indica los elementos y etapas a ser cubiertas en un plan de pruebas.

La inspección se planea preparando el material, los participantes y la agenda. Se prepara para determinar el alcance de la prueba, asignar los roles y conocer del tema específico. Se lleva a cabo la inspección y el programador con los resultados conseguidos en el reporte, rehace el trabajo para entregar al líder y generar la siguiente inspección hasta su aceptación. Se llama prueba de pares porque son personas del equipo de trabajo y no auditores formales externos. Las inspecciones serán el mecanismo más usado en la gestión de pruebas, pues solo en las fases finales se tiene suficiente código para realizar pruebas dinámicas y de aceptación con la formalidad y rigor establecidos en el plan.

2. Verificación de requerimientos Las necesidades de usuario deben siempre terminar en una especificación de requerimientos de software que debe incluir una descomposición de funciones y una descripción de todas las interfaces. Esto para verificar el cumplimiento de requerimientos y definir los criterios de aceptación del sistema. En los procesos de mejora continua, los resultados de procesos anteriores llevan a la construcción de listas de chequeo que, clasificada en una taxonomía definida por la empresa, ayuda a la revisión de problemas presentados en el pasado y a la prevención y detección temprana de nuevos casos. Los errores deben ser documentados y reparados a la brevedad posible, porque ello fijará la prioridad y objetivos del proyecto a realizar, junto con sus costos, tiempo y esfuerzo requeridos. Una vez llegado a un acuerdo inicial, es necesario mantener un rastro que permita seguir cada requerimiento a través del código, las pruebas, los cambios, el tratamiento dado y su criterio de aceptación. Estas pruebas de aceptación son formales lideradas por el usuario final, en aras de validar el cumplimiento del producto final de software.

POLITÉCNICO GRANCOLOMBIANO POLITÉCNICO GRANCOLOMBIANO

4

Esto no quiere decir que no se puedan aceptar funciones por etapas o a medida que se vayan a montar en ambiente de producción. Esta es la base para la construcción de los casos de prueba, ya que se basa en las funciones solicitadas y en la descripción de los procedimientos o flujo de tareas obligados para llegar a los resultados requeridos por el cliente. Cada elemento de prueba debe documentarse indicando las características del mismo, de modo que se conozca su estado en cada momento del proyecto. A partir del PMBOK del PMI, en la Internet se ofrece una amplia gama de formatos que pueden servir a este propósito. Igualmente, la cantidad y esfuerzo deben estimarse para construir el plan de pruebas e integrarlo al proyecto determinando costos, tiempo, personal y adquisiciones necesarias para llevarlo a cabo.

3. Verificación del diseño El diseño es una representación del problema presentado en términos de los datos, el proceso de transformación y la presentación de las salidas en la plataforma del cliente y con la arquitectura adecuada a la solución requerida, de acuerdo a la lista de funciones determinada. El plan de pruebas de la fase anterior se complementa con la verificación de que todos los elementos representados en la especificación de requerimientos estén completos en el diseño realizado. Se generan adicionalmente matrices que determinan el tipo de pruebas a realizar y las de integración de acuerdo al grupo de funciones y módulos generados en el diseño. La logística y manejo de correcciones se agrega en esta fase, junto con el esbozo de la administración de configuraciones y las herramientas de pruebas. La fase de diseño proporciona la definición de la interfaz pública entre los programas a especificar, por lo que, de nuevo, las inspecciones son el medio de prueba preferido para detectar errores. Ya sea por fallas en el paso de argumentos o en el flujo de tareas de cada función definida para alcanzar la solución del problema. Igualmente, en este momento se alcanza a definir el conjunto de datos persistentes y la afectación que desde diferentes elementos del producto de software se tendrá. Con ello se pueden agregar factores de verificación adicionales como control de concurrencia, fallas de seguridad, doble afectación, etc. Las pruebas de integración y modulares empiezan a surgir por el agrupamiento de componentes y la separación de módulos con funciones específicas y necesarias en la interfaz pública de los programadores. Se puede validar el cumplimiento de prerrequisitos y las condiciones de las salidas, así como el tratamiento de los errores controlados por el sistema. El diseño de los algoritmos, que luego se codificarán, permite delinear los casos de prueba unitarios, avanzar en las pruebas de integración y modulares y terminar las de aceptación y del sistema. Los casos de prueba y el conjunto de datos se hacen cada vez más claros.

POLITÉCNICO GRANCOLOMBIANO POLITÉCNICO GRANCOLOMBIANO

5

La matriz de funciones, requerimientos, programas y elementos de prueba se va refinando. El flujo del programa permite la definición de combinación de datos a revisar y el establecimiento de límites y rangos a verificar la determinación de pruebas de carga, rendimiento y eficiencia. Con el diseño detallado podemos establecer casos de prueba de caja blanca y de caja negra, para las fases posteriores, además de las inspecciones del código, que son igualmente eficaces. La cobertura de las pruebas debe revisarse para establecer que todo el producto de software será probado; pues el detalle lleva a listas más largas de funciones y dejar de lado alguno es una posibilidad.

4. Verificación de la programación Para esta fase, el plan de pruebas está completo. Los resultados ya han sido definidos y la ejecución de los programas debe conducir a lograrlos. Se inician las pruebas dinámicas, a partir de las pruebas unitarias, las de integración, las modulares o de sistema y las de aceptación por parte del usuario. El propósito es detectar errores en ámbitos pequeños y solo al establecer su correcto comportamiento agregarlos al sistema. Cobra importancia el uso de herramientas para automatización de pruebas o la generación de datos aleatorios para las pruebas. Se pueden establecer técnicas de caja blanca y combinación de datos específicos para validar la lógica correcta del programa. Las pruebas se deben llevar a cabo en el ambiente de ejecución, pero no en el de producción, de tal suerte que no se afecten los datos reales, pero sean válidas las pruebas relacionadas con el desempeño y la interacción entre elementos internos y externos al sistema. Las pruebas de aceptación son ejecutadas por el usuario final y validan que los requerimientos establecidos se han cumplido y se realizan luego de que el equipo de desarrollo ha concluido las suyas, de acuerdo al plan de pruebas definido en el proyecto. Como se observa en la Figura 2, las diferentes fases del ciclo de desarrollo interactúan y aplican a lo largo del proyecto para obtener un producto de software de calidad y no de modo secuencial e independiente como era la usanza en el siglo pasado con proyectos de menor escala y con pocos o ningún usuario directo. Hoy en día estos elementos se entrelazan en ciclos de desarrollo cortos para mostrar avances y tomar decisiones sobre la marcha.

POLITÉCNICO GRANCOLOMBIANO POLITÉCNICO GRANCOLOMBIANO

6

Figura 2. Fases de desarrollo Fuente: Aksoy (s.f.)

5. Principios de calidad del ciclo PDCA Deming, en 1986, en su libro Out of the Crisis, indica que la calidad se logra con el cambio de filosofía, no con el seguimiento de pautas. Repasemos los puntos claves expuestos por él. Se debe pensar a futuro, planear a largo plazo, con la base de que la calidad requiere de educación, investigación e innovación para la mejora continua del producto, con un plan de aseguramiento de la calidad que mantenga el rumbo constante para las actividades diarias. Se debe cambiar de pensamiento, el aceptar los niveles de defectos y calidad va en contra de las leyes de la mejor continua de la calidad y afecta la productividad, mantenga criterios de tolerancia baja para los defectos y estándares altos para la calidad a lograr. Se debe anticipar los errores y detectar las causas que los producen, no se debe basar el sistema de calidad en la ejecución de pruebas exhaustivas; por el contrario, la mejora de los procesos y las técnicas de producción deben revisarse para asegurar la calidad, no solo del producto final sino de cada paso ejecutado. Se debe pensar en la calidad de los proveedores y no guiarse solo por su precio. La conciencia del trabajo en solitario no existe, las relaciones de negocios y el enfoque en aspectos especializados es cada vez más palpable. Por ello, se debe prestar atención a quienes proveen servicios en aras de obtener alineamiento en los aspectos de calidad, que aseguren un futuro para ambas partes y relaciones a largo plazo.

POLITÉCNICO GRANCOLOMBIANO POLITÉCNICO GRANCOLOMBIANO

7

La mejor continua exige actores instruidos constantemente. El entrenamiento es vital para el proceso; de lo contrario, los avances se harán por etapas y se tenderá a permanecer en un estado sin cambios a futuro, pues se creerá que ya las técnicas fueron aplicadas y no hay espacio para mayores mejoras. Se debe incentivar el conocimiento y la novedad en las personas. Se debe invertir en la gente. No basta con tener personal que haga el trabajo, toca que valore lo que hace y se sienta orgulloso de ello. Se debe entrenar al personal, escuchar sus opiniones, conocer los problemas que dificultan el desarrollo de su trabajo. Se debe inculcar que la calidad es parte de su responsabilidad, pero también el reconocimiento de un trabajo bien hecho. Se debe incentivar el liderazgo al delegar responsabilidades para que cada persona sienta que aporta al grupo y que se requiere de su buen desempeño. Se debe evitar generar retos que no se puedan cumplir y quemar el recurso. Es mejor contar con personas fiables y en mejora continua que quebrarlos y despedirlos por llevarlos más allá de sus limitaciones. Por el contrario, se debe descubrir sus fallas y entrenarlos para su mejora. Asociar la calidad con la detección de fallas en el personal conlleva al miedo. Igualmente, el temor entre áreas y las escalas de jerarquía en el personal afectan el desarrollo de la calidad, los aportes y sugerencias de mejora se convierten en piedras en el zapato. Por el contrario, se debe incentivar el trabajo en equipo, pero pensado siempre en la mejora de la empresa y que los errores descubiertos internamente no afectan, como sí lo hacen los hechos por el cliente. Se deben fijar metas realistas que describan el modo de lograrlas y especifiquen qué es aceptable y qué no lo es. La calidad no se consigue fijando metas sino mejorando los procesos y entendiendo las fallas que en ellos se presenta. Se deben definir estándares y procedimientos que ayuden a la empresa a tener calidad. Se debe impulsar la calidad desde el tope de la empresa. La calidad no se genera solo en las actividades operativas. El norte a seguir está dado por la mejora continua de la calidad; esta se logra a través del tiempo, con políticas e incentivos que redunden en beneficio para todos los integrantes de la organización.

6. Las pruebas en metodologías ágiles Como hemos dicho, el modo de llevar a cabo las pruebas va de la mano del ciclo de vida del desarrollo. Esto es válido aún para modelos en que el ciclo de vida no parece tan definido; más bien que parece planearse sobre la marcha. Si se siguen prácticas de desarrollo ágil, en consecuencia, las pruebas deben aportar al desarrollo. Deben verse no como una fase (una vez construido el software), sino en paralelo con el desarrollo, para garantizar que el avance continuo sea fiable.

POLITÉCNICO GRANCOLOMBIANO POLITÉCNICO GRANCOLOMBIANO

8

Ya que se da retroalimentación permanente de los cambios y las correcciones necesarias definidas, para que los tiempos de cada iteración se cumplan. No solo en cuanto a liberación de código sino en la verificación de su correcto comportamiento y aceptación antes de pasar al siguiente ciclo. Esto conlleva una reducción de la planeación y documentación de las pruebas, pero a cambio se centra en los casos de prueba siguiendo listas de chequeo. Por ello, debe involucrarse personal experto que aporte al grupo y no lo retrase. Algunos ingenieros que aplican métodos ágiles de desarrollo consideran que las técnicas de conducción de pruebas no aplican para las metodologías ágiles; aunque realmente sí lo hacen. Solo que lo antagónico entre los sistemas de desarrollo ingenieriles versus los métodos de desarrollo ágil se reflejan más en una lucha de pareceres que en las diferencias reales que los separan, las cuales son pocas. En pruebas ágiles se habla de desarrollo dirigido a pruebas, desarrollo dirigido a comportamiento o a aceptación, pero su núcleo se basa en los mismos principios y planes de los sistemas tradicionales, solo que, aplicados a cada iteración y funcionalidad, que se va agregando al software. De este modo, pequeños ciclos de la metodología de pruebas se desarrollan para pequeños grupos de requerimientos y en ciertos casos pueden ser probados dinámicamente solo hasta que se tenga el código fuente desarrollado o integrado. Por el contrario, en otras iteraciones las pruebas unitarias sí se realizan en el orden establecido, según como avance la programación. El reto es el tiempo, los imprevistos y la buena comunicación entre los integrantes para resolver rápidamente los inconvenientes presentados. El marco de referencia de pruebas ágiles se basa en 4 cuadrantes que dividen las pruebas entre dos ejes: i) aquellas que soportan el equipo de desarrollo y las que son críticas para el producto; el otro eje ii) las divide entre las que se hacen de cara al negocio y las que se hacen de cara a la tecnología. En cada cuadrante se ubican diferentes tipos de prueba y recomendaciones acerca de cómo llevarlas a cabo, pero es básicamente la aplicación de lo que se presenta en el módulo, solo bajo la filosofía de asegurar ciclos cortos, refactorización y reutilización del código. Para terminar, vale la pena indicar que en los cuadrantes se hacen recomendaciones para automatizar las pruebas. Sin embargo, esto debe hacerse con precaución, de tal suerte que la labor de programación de pruebas sea para aquellos aspectos que estén definidos como vitales y necesarios a entregar al cliente. De otro modo, se corre el riesgo de gastar esfuerzos en pruebas de elementos que no se sabe si serán o no importantes y definitivos en el software final a entregar.

POLITÉCNICO GRANCOLOMBIANO POLITÉCNICO GRANCOLOMBIANO

9

7. Notas finales Un plan de pruebas define las condiciones en que se ejecutarán, de acuerdo con el ciclo de vida del proyecto planteado. Se lleva a cabo a lo largo del proyecto en cada fase, para tratar de prevenir errores y hallarlos lo más pronto posible, esto evita costos mayores en etapas posteriores. La calidad y detección de errores va de la mano con las metodologías y herramientas de mejora de los procesos y el control a través de inspecciones para asegurar la calidad en cada etapa. La calidad no es labor de un día, ni un intento de un grupo de héroes, es una línea de pensamiento integral para cada labor diaria realizada con responsabilidad y entendiendo el beneficio de realizarla.

POLITÉCNICO GRANCOLOMBIANO POLITÉCNICO GRANCOLOMBIANO

10

Referencias Boloix, G. (2009). Evaluación en informática. Córdoba, AR: El Cid Editor | apuntes. Recuperado de https://ebookcentral-proquest-com.loginbiblio.poligran.edu.co/lib/ bibliopoligransp/detail.action?docID=3182407&query=Evaluaci%C3%B3n%20en%20 inform%C3%A1tica Echeverri, J., Aristizabal, M., González, L. Urrego, G., Polo, R. Reflexiones sobre ingeniería de requisitos y pruebas de software. (2013). Medellín, CO: Corporación Universitaria Remington. Recuperado de https://ebookcentral-proquest-com.loginbiblio.poligran.edu. co/lib/bibliopoligransp/detail.action?docID=4795310&query=Reflexiones%20sobre%20 ingenier%C3%ADa%20de%20requisitos%20y%20pruebas%20de%20software Hernándes, P. F. Á., & Ricardo, Z. P. M. (2006). Glosario de Términos Informáticos. Córdoba, AR: El Cid Editor. Recuperado de https://ebookcentral-proquest-com.loginbiblio.poligran. edu.co/lib/bibliopoligransp/detail.action?docID=3167493&query=Glosario%20de%20 T%C3%A9rminos%20Inform%C3%A1ticos González, G. C., Domingo, N. R., & Pérez, M. Á. S. (2013). Técnicas de mejora de la calidad. Madrid, ES: UNED - Universidad Nacional de Educación a Distancia. Recuperado de https://ebookcentral-proquest-com.loginbiblio.poligran.edu.co/lib/bibliopoligransp/detail. action?docID=3216137&query=T%C3%A9cnicas%20de%20mejora%20de%20la%20 calidad Gutiérrez, H. (2013). Control estadístico de la calidad y Seis Sigma (3a. ed.). México, D.F., MX: McGraw-Hill Interamericana. Recuperado de https://www.ebooks7-24.com/book. aspx?i=280 Gutiérrez, H. (2014). Calidad y productividad. (4a. ed.). México, D.F., MX: McGraw-Hill Interamericana. Recuperado de https://www.ebooks7-24.com/book.aspx?i=751 Maigua, G., & López, E. (2012). Buenas prácticas en la dirección y gestión de proyectos informáticos. Buenos Aires, AR: Editorial de la Universidad Tecnológica Nacional. Recuperado de https://ebookcentral-proquest-com.loginbiblio.poligran.edu.co/lib/bibliopoligransp/ detail.action?docID=4909345&query=Buenas%20pr%C3%A1cticas%20en%20la%20 direcci%C3%B3n%20y%20gesti%C3%B3n%20de%20proyectos%20inform%C3%A1ticos Marcelino, A. M., & Ramírez, H. D. (2014). Administración de la calidad: nuevas perspectivas. México, D.F., MX: Grupo Editorial Patria. Recuperado de https:// ebookcentral-proquest-com.loginbiblio.poligran.edu.co/lib/bibliopoligransp/detail. action?docID=3227569&query=Administraci%C3%B3n%20de%20la%20calidad:%20 nuevas%20perspectivas

Pressman, R. (2010) Ingeniería del software un enfoque práctico (7a. ed.). México, D.F., MX: McGraw-Hill Interamericana. Recuperado de https://www.ebooks7-24.com/book. aspx?i=686 Project Management Institute. (2013). Guía de los fundamentos para la dirección de proyectos (guía del PMBOK®) -- Quinta edición. Pensilvania, EE.UU.

Referencias de gráficas 1tjf. (s.f.). Detailed Software Development Life Cycle V-Model Including Phases, levels, Documentation, Review [Ilustración]. Recuperado de https://www.123rf.com/search. php?word=v+model&imgtype=0&t_word=&t_lang=en&orderby=0&t_word=&t_ lang=en&oriSearch=cwqc&sti=lovmtztqt8wbpc8z3k|&mediapopup=14805492 Aksoy, R. (s.f.). Software engineering concept [Ilustración]. Recuperado de https:// www.123rf.com/stock-photo/software_verification.html?imgtype=0&oriSearch=code+ verification&sti=memnpvejo8m6uzlosi|&mediapopup=75970060

INFORMACIÓN TÉCNICA

Módulo: Pruebas y Calidad de Software Unidad 1: Calidad de software y el ciclo de vida de las pruebas. Escenario 2: Ciclo de vida de las pruebas Autor: Nelson Pérez Asesor Pedagógico: Manuel Fernando Guevara Diseñador Gráfico: Alejandro Torres Asistente: Ginna Quiroga Este material pertenece al Politécnico Grancolombiano. Prohibida su reproducción total o parcial.

POLITÉCNICO GRANCOLOMBIANO POLITÉCNICO GRANCOLOMBIANO

13