Projecto: | Herramienta de Gestión de Expediente |
---|---|
Número Interno de Versión: | 0.1.0 |
Audiencia de la Entrega: |
Entrega para clientes específicos: Área de gestión de cursos - EV
|
Formas Anexas: |
Plan de QA > Caso de la prueba del sistema
Plan de QA > Revisión de notas de reuniones
|
Documentos Relacionados: |
LIGAS A OTROS ESTÁNDARES RELEVANTES
LIGAS A OTROS DOCUMENTOS
|
Impacto del Proceso: Este documento especifica los objetivos de calidad, selecciona estrategias para asegurar que las metas se han logrado, y detalla un plan de acción para llevar a cabo las estrategias.
Actividad | Cobertura o Frecuencia | Descripción |
---|---|---|
Precondiciones |
Todos los métodos públicos
Todos los métodos públicos en NOMBRE-DEL-COMPONENTE
Todos los métodos públicos quer modifiquen datos
|
usaremos sentencias if en el inicio de los métodos públicos para validar cada valor de los argumentos. Esto ayuda a documentar supuestos y a a detectar valores inválidos antes de que puedan ocasionar errores. |
Aserciones |
Todos los métodos privados
Todos los métodos privados en NOMBRE-DEL-COMPONENTE
Todos los métodos privados que modifiquen datos
|
Las aserciones serán usadas para validar todos los argumentos para de los métodos privados. Debido a que estos métodos son llamados únicamente por nuestros otros métodos, los argumentos pasados a ellos deberán ser siempre válidos, a menos que nuestro código sea deficiente. Las aserciones serán utilizadas también para provbar clases invariantes y algunas postconditiones. |
Análisis estático |
Advertencias estrictas del compilador
REvisión automática de estilo
Validación de XML
Detección de errores comunes
|
Utilizaremos herramientas de análisis de código fuente parta detectar errores automáticamente. Los validadores de estilo ayudarán a hacer nuestro código consistente con nuestros estándares de programación. La validación de XML asegura que cada documento XML está bien formado respecto a su DTD. Herramientas como Lint ayudan a detectar errores comunes de programación, por ejemplo lint, lclint/splint, jlint, checkstyle, Jcsc, PyLint, PyChecker, Tidy |
Revisión de Compañeros |
Todos los cambios a las ramas de desarrollo
Todos los cambios a NOMBRE-DEL-COMPONENTE
Todos los cambios
|
Cualquier cambio debe ser hecho para codificarse en una rama de desarrollo, (por ejemplo, para preparar una entrega de mantenimiento) el cambio será evaluado por otro desarrollador antes de ser enviado. El objetivo es asegurar que los cambios no introduzcan nuevos defectos. |
Juntas de evaluación |
Semanales
Antes de cada entrega
Por cada archivo fuente
|
Tendremos reuniones de evaluación donde los desarrolladores realizarán revisiones formales de código seleccionado o documentos. Decidimos invertir una cantidad de tiempo fija y peuqeña e intentar maximizar los resultados revisando la documentación cuidadosamente. En el proceso de revisión usaremos y mantendremos listas de pendientes. |
Pruebas por unidades |
100% de los métodos públicos, y 75% de las sentencias
100% de los métodos públicos
75% de las sentencias
|
Desarrollaremos u mantendremos una unidad de pruebas usando la arquitectura de JUnit. Consideraremos las condiciones límites para cada argumento y probaremos ambos extremos para cada límite. Las pruebas deben de ser ejecutadas y superadas antes de cada submisión, y también deberán ser corridas por el equipo de prubas. Cada método público deberá tener al menos una prueba, y el conjunto general de pruebas deberá utilizar al menos el 75% de tdoas las sentencias ejecutables en el sistema. |
Pruebas al Sistema |
100% de los campos y pantallas de la interfaz del usuario
100% de los requerimientos especificados
|
El equipo de QA deberá generar y mantener un conjunto detallado de documentos de pruebas manuales para probar el sistema completo a través de la interfaz del usuario. Este plan será suficientemente detallado para que una persona pueda realizar repetidamente las pruebas desde la documentación de prueba y otros documentos asociados. |
Pruebas de regresión |
Correr todas las pruebas unitarias antes de cada submisión
Correr todas las pruebas unitarias por la nocheR
Añadir nuevas pruebas unitarias cuando se añadan correcciones
|
Adoptaremos una política de volver a correr todas las pruebas automatizadas, incluyendo aquellas que ya han sido previamento superadas. Esto ayudará a detectar regresiones (bugs que se pensaba ya reparados, pero que podrían aparecer otra vez). |
Pruebas del Beta |
4 clientes actuales
40 miembros de nuestra red de desarrolladores
1000 miembros del público
|
Involucraremos personas externas en una prueba del beta, o un programa de acceso previo. Instruiremos a los beta testers para que se enfoquen en características específicas del sistema. Trbajaremos de cerca con los beta testers para motivarlos a reportar problemas en el sistema. |
Instrumentación y monitoreo |
Supervisión de nuestros servidores de ASP
Supervisar remotamente servidores del cliente
|
Como parte de nuestro SLA, supervisaremos el desempeño de nuestros servidores para detectar de forma automática interrupciones en el servicio o degradación del rendimiento. Tenemos políticas y procedimientos listos para notificación de fallas, escalamiento, y corrección. |
Reportes de fallas de campo |
Solicitar a los usuarios a reportar fallas
Reportar fallas de forma automática
|
Deseamos entender cada falla del sistema una vez liberado y tomar acciones concretas para corregir el error. El sistema incluye características para recopilar información detallada para cada error del sistema (por ejemplo, mensajes de error, rastreo hacia atrás, versión del OS). Esta información será transmitida de vuelta a nosotros para poner analizarla y hacer algo al respecto. |
Objetivo | Precondiciones | Aserciones | Revisión de Compañeros | Juntas de evaluación | Pruebas por unidades | Pruebas al Sistema | Asguramiento total |
---|---|---|---|---|---|---|---|
Functionalidad | Media | Media | Media | Alta | Alta | Alta | Fuerte |
Consistencia | Alta | Alta | Alta | Alta | Alta | Media | Fuerte |
Robustez | Alta | Alta | Media | Media | Alta | Media | Fuerte |
Usabilidad | Ninguna | Ninguna | Ninguna | Alta | Ninguna | Media | Fuerte |
Securidad | Media | Ninguna | Media | Alta | Ninguna | Media | Fuerte |
Confiabilidad | Ninguna | Media | Baja | Media | Media | Media | Débil |
Eficiencia | Ninguna | Ninguna | Baja | Media | Ninguna | Baja | Riesgosa |
Escalabilidad | Ninguna | Ninguna | Baja | Media | Baja | Baja | Riesgosa |
Operabilidad | Ninguna | Ninguna | Ninguna | Baja | Ninguna | Baja | Riesgosa |
Capacidad de Manteniento | Media | Baja | Media | Alta | Baja | Ninguna | Débil |
Los valores en las cenldas de arriba son estimados subjetivos de la efectividad de cada actividad. esta tabla ayuda a identificar objetivos de calidad que no están siendo asgurados adecuadamente.
Nota: Como regla empírica, se necesita al menos dos actividades "Altas" y una "Mediana" para dar una calificación global de "Fuerte". De la misma forma, se necesitan al menos dos "Medios" y una "Baja" para poder calificar como "Débil".