Articulo de referencia

Pruebas de desarrollo

Las pruebas de desarrollo son un proceso de desarrollo de software que implica la aplicación sincronizada de un amplio espectro de estrategias de prevención y detección de defec...

Las pruebas de desarrollo son un proceso de desarrollo de software que implica la aplicación sincronizada de un amplio espectro de estrategias de prevención y detección de defectos con el fin de reducir los riesgos, el tiempo y los costes del desarrollo de software.

Dependiendo de las expectativas de la organización en cuanto al desarrollo de software, las pruebas de desarrollo pueden incluir análisis de código estático , análisis de flujo de datos , análisis de métricas , revisiones de código por pares , pruebas unitarias , análisis de cobertura de código , trazabilidad y otras prácticas de verificación de software.

Descripción general

Las pruebas de desarrollo son realizadas por el desarrollador o ingeniero de software durante la fase de construcción del ciclo de vida del desarrollo de software . [ 1 ]

En lugar de reemplazar los enfoques tradicionales de control de calidad , los complementa. [ 2 ] Las pruebas de desarrollo buscan eliminar los errores de construcción antes de que el código pase al control de calidad; esta estrategia pretende aumentar la calidad del software resultante, así como la eficiencia del proceso general de desarrollo y control de calidad. [ 3 ]

Propósitos y beneficios

Las pruebas de desarrollo se aplican con los siguientes propósitos principales:

Los informes de investigación de VDC indican que la implementación estandarizada de los procesos de prueba de desarrollo dentro de un proceso estandarizado general no solo mejora la calidad del software (al alinear las actividades de desarrollo con las mejores prácticas comprobadas), sino que también aumenta la previsibilidad del proyecto. [ 4 ] Los informes de investigación de voke indican que las pruebas de desarrollo hacen que el software sea más predecible, rastreable, visible y transparente a lo largo del ciclo de vida del desarrollo de software. [ 2 ]

Principios clave

En cada una de las aplicaciones mencionadas, las pruebas de desarrollo comienzan definiendo políticas que expresan las expectativas de la organización en cuanto a confiabilidad , seguridad, rendimiento y cumplimiento normativo. Luego, una vez que el equipo recibe capacitación sobre estas políticas, se implementan prácticas de pruebas de desarrollo para alinear las actividades de desarrollo de software con dichas políticas. [ 5 ] Estas prácticas de pruebas de desarrollo incluyen:

  • Prácticas que previenen la mayor cantidad posible de defectos mediante un enfoque inspirado en Deming que promueve la reducción de la oportunidad de error a través del análisis de la causa raíz .
  • Prácticas que exponen los defectos inmediatamente después de su introducción, cuando encontrar y corregir los defectos es más rápido, más fácil y más barato. [ 3 ] [ 6 ]

El énfasis en aplicar un amplio espectro de prácticas de prevención y detección de defectos se basa en la premisa de que las diferentes técnicas de prueba de desarrollo están diseñadas para exponer distintos tipos de defectos en diferentes puntos del ciclo de vida del desarrollo de software, por lo que la aplicación conjunta de múltiples técnicas reduce el riesgo de que los defectos pasen desapercibidos. [ 3 ] La importancia de aplicar un amplio conjunto de prácticas es confirmada por Boehm y Basili en la frecuentemente citada "Lista de los 10 principales métodos para la reducción de defectos de software". [ 7 ]

Análisis estático

El término "pruebas de desarrollo" se ha utilizado ocasionalmente para describir la aplicación de herramientas de análisis estático. Numerosos líderes de la industria han cuestionado esta confusión, ya que el análisis estático no es técnicamente una prueba; incluso un análisis estático que "cubre" cada línea de código es incapaz de validar que el código haga lo que se supone que debe hacer, o de exponer ciertos tipos de defectos o vulnerabilidades de seguridad que se manifiestan solo cuando el software se ejecuta dinámicamente. Si bien muchos advierten que el análisis estático por sí solo no debe considerarse una solución milagrosa, la mayoría de los expertos de la industria coinciden en que es un método probado para eliminar muchos defectos de seguridad, confiabilidad y rendimiento. En otras palabras, aunque el análisis estático no es lo mismo que las pruebas de desarrollo, comúnmente se considera un componente de estas últimas. [ 8 ] [ 9 ]

Actividades adicionales

Además de diversas implementaciones de análisis estático, como el análisis de flujo y las pruebas unitarias, las pruebas de desarrollo también incluyen la revisión de código por pares como una actividad de calidad primordial. La revisión de código se considera ampliamente uno de los métodos más eficaces de detección y prevención de defectos en el desarrollo de software. [ 10 ]

Véase también

Referencias

  1. McConnell, Steve (2004). Code Complete (2.ª  ed.). Microsoft Press. ISBN 0-7356-1967-0.
  2. 1 2 voke Market Mover Array Report: Plataformas de prueba por Theresa Lanowitz, Lisa Dronzek, voke, 5 de junio de 2012
  3. 1 2 3 4 Kolawa, Adam; Huizinga, Dorota (2007). Prevención automatizada de defectos: mejores prácticas en la gestión de software . Wiley-IEEE Computer Society Press. ISBN 978-0-470-04212-0.
  4. Documento técnico "Prevención automatizada de defectos para la calidad del software embebido" de VDC Research
  5. Grandes expectativas para el desarrollo: con la automatización de políticas, por Wayne Ariola, SD Times, 28 de julio de 2011
  6. Repensando el desarrollo, las pruebas y la inspección de software. Archivado el 7 de mayo de 2013 en Wayback Machine por Matthew Heusser, CIO, 1 de febrero de 2012.
  7. Lista de los 10 principales métodos para reducir defectos de software, por Barry Boehm y Victor R. Basili, Computer, enero de 2001
  8. Analizadores estáticos en ingeniería de software Archivado el 15/10/2012 en Wayback Machine por el Dr. Paul E. Black, CrossTalk: The Journal of Defense Software Engineering, marzo/abril de 2009
  9. Los 3 errores más comunes en el análisis estático para el desarrollo de sistemas embebidos y de seguridad crítica, por Arthur Hicken, EE Catalog, 25 de septiembre de 2012
  10. Cumplimiento de los requisitos SIL: Garantizar la seguridad funcional de los sistemas relacionados con la seguridad de E/E/PE. Artículo archivado el 4 de marzo de 2016 en Wayback Machine en DevelopmentTesting.com.