Quality in software engineering es una zona bastante masiva, y la mayor parte se aplica a código escrito en I tanto como código escrito en COBOL o C#, así que mi primera respuesta sería 'depende'.
Para mí, vengo de la industria farmacéutica, donde lo que hacemos está regulado por agencias gubernamentales como la FDA y la MHRA.Para nosotros, la calidad es algo en lo que pensamos durante todo el proceso, por lo que enumeraría los siguientes como artefactos visibles de calidad;
- tenemos un proceso de desarrollo de software, que está escrito y repetible (tradicionalmente en este tipo de industria se trata de una waterfall style, pero se están utilizando cada vez más agile/prototyping style metodologías)
- Tenemos un sistema que asegura que cada la persona involucrada sabe lo que debería hacer (descripciones de trabajo) y está adecuadamente calificada para hacer ese trabajo (entrenamiento)
- Comenzamos definiendo lo que se requiere de alguna manera, con suerte de alguna manera que se puede probar
- Tenemos alguna forma de documentar nuestro proceso de desarrollo, donde hemos estado y cómo (una combinación de una buena documentación y Source Control)
- Nosotros pruebas siempre que sea posible, y tan pronto como sea posible (por lo que, automated si es posible)
- Tenemos people que son responsables de la supervisión de la calidad, que son independientes de las personas que están haciendo para evitar conflictos
- Controlamos el entorno de software que se utiliza para el desarrollo, las pruebas y la producción (leer; change control)
- Nos controlar y gestionar el software una vez que está en uso, el seguimiento de los problemas y gestionarlos (Issue Tracking)
- llevamos registros, por lo que incluso si todas las personas involucradas se fue debajo de un autobús/ganado la lotería el nuevo pueblo podía Todavía defiendo y prueba todo lo de arriba a un inspector del gobierno.
Sin embargo, esa es una gran lista, y me imagino que hay muchas industrias que no hacen todas (finanzas, educación) y probablemente algunas que hacen más (construir reactores nucleares, salvar vidas, NASA) .
más específicamente a lo que supongo que quieres decir, antes de código que debe ser capaz de definir algunos a partir de entrada de y las respuestas específicas que debe salir, y le recomiendo que utilice algo como RUnit o Testthat para construir estos en.
¿Quiere decir al desarrollar un paquete en R o solo * soluciones ad hoc * a problemas de análisis de datos. En un paquete puede tener un directorio './Tests' que contenga pruebas que prueben su código actual contra los resultados esperados -' stopifnot() 'se usa extensamente allí. –
@ucfagls ad hoc, en general. No necesariamente hago paquetes, sino que creo scripts para resolver mis problemas/responder mis preguntas. –