|
Existen algunos estándares (como ISO/IEC_12207 y IEEE 830-1998) y también una serie de buenas prácticas adoptadas por ingenieros de software o científicos de la computación influyentes, que determinan los atributos que debe tener cualquier software de calidad.
Para poder evaluar la calidad de un software de ambito web (también conocido como aplicación cliente-servidor o sistema transaccional remoto) es necesario hacerse una serie de preguntas relacionadas estos atributos de calidad, los cuales se dividen en dos areas:
- Cualidades Internas
- Cualidades Externas
Las cualidades externas se refieren a factores esperables que son útiles o aprovechables por los usuarios finales de un sistema. Los atributos internos son aquellos que permitirán una labor sencilla, productiva, ordenada, y eficiente, a los desarrolladores del sistema, o a quienes deseen re-programarlo, mantenerlo, etc.
¿Cómo evaluar un Software Web de calidad?
Cuando hablamos de "software web" nos referimos a un sistema de gestión de cierta magnitud, no a un conjunto de scripts de unas cuantas lineas de código, que interactúan entre sí para cumplir alguna funcionalidad.
Según la teoría de la ingeniería de sistemas, hay más de 18 atributos, de los cuales priorizaremos aquí los más importantes que a nuestro entender son más aplicables o esperables en ámbitos web, puesto que en la práctica es muy difícil que un software complejo pueda superarlos todos (a menos que se trate de un software desarrollado por Sun Microsystems, Microsoft, etc).
La mayoría de estos atributos de calidad no pueden ser evaluados a priori (cuando el software todavía no ha sido programado), pero conocerlos nos permitirá a los profesionales de la programación saber con qué pautas/estándares de trabajo deberíamos manejarnos en todo proyecto importante; y a los clientes finales (quienes requieren/necesitan software de gestión web) les facilitará la tarea de evaluar la profesionalidad y competencia de los desarrolladores o empresas proveedoras de estos servicios.
Test de calidad de Software Web
Con una serie de preguntas determinaremos si un software web cumple los requisitos mínimos de calidad o no. Algunas son obvias y hasta intuitivas para cualquier cliente que no entiende de sistemas informáticos, pero otras no lo son tanto.
Cualidad
|
Importancia
|
Preguntas para evaluar el atributo
|
Respuesta
|
Correctitud
|
fundamental |
- ¿al someter al programa a diversas tareas básicas, cumple este el/los requerimiento/s del/los usuario/s?
- ¿realiza las tareas de manera tal que el resultado de las mismas sea correcto?
|
si / no |
Usabilidad
|
fundamental |
- ¿es sencillo de entender y manejar el software para los usuarios a los cuales está destinado su uso?
- ¿es intuitivo, y posee la información y ayudas adecuadas como para que el usuario no tenga que depender de alguien que explique cómo utilizar cada función?
- ¿son cómodos los menúes, los botones, las ventanas de interfaces, los cuadros de diálogo, los formularios, etc?¿las jerarquías visuales son correctas?
- ¿es sencillo buscar y filtrar información dentro del programa?
|
si / no |
Oportunidad y Economía
|
fundamental |
- ¿el software puede ser (o ha sido) entregado en tiempo y forma por sus desarrolladores?
- ¿pueden los desarrolladores establecer tiempos razonables de trabajo en relación a la complejidad del mismo?
- ¿es capaz de ser desarrollado óptimamente sin utilizar más recursos que los previstos (presupuesto estimado)?
- ¿es capaz el desarrollador de establecer un precio justo de desarrollo, implementación y soporte, previsiblemente amortizable según su productividad, y no inflado en relación al estándar del mercado?
|
si / no |
Documentación y Visibilidad
|
esperable |
- ¿posee el proyecto una buena documentación interna y externa (del código fuente, y de la ayuda al usuario). (esto está relacionado a otros factores, como la usabilidad y la comprensibilidad).
- ¿Hay transparencia hacia afuera en las etapas de desarrollo (ciclo de vida), están documentadas y disponibles para el cliente?
|
si / no |
Compatibilidad
|
esperable |
- ¿puede interactuar el software con otras aplicaciones que complementan tareas, o procesos que necesita abarcar el usuario?
- ¿sus reportes y datos están en archivos compatibles con aplicaciones de uso común y popular (por ejemplo planillas de excel, que es el estandar de las hojas de cálculo)?
|
si / no |
Comprensibilidad
|
esperable |
- ¿es amigable el software para los desarrolladores?
- ¿pueden comprender su estructura lógica, sus funciones de ejecución y procesamiento, su código fuente es fácilmente legible y comprensible?
|
si / no |
Confiabilidad
|
fundamental |
- ¿es confiable el software para el usuario final?
- ¿después de un buen periodo de uso: sucede a veces que el usuario “desconfía” porque en ocasiones anteriores ha perdido datos importantes que le ha llevado tiempo cargar?
- ¿cuándo falla, son fallas graves o leves, según las consecuencias que provocan?
|
si / no |
Eficiencia
|
fundamental |
- cuando el volumen de datos crece dentro de lo contemplado, ¿el software se vuelve lento?
- ¿es capaz el software de procesar/almacenar datos de manera eficiente?
- ¿comienza a insumir muchos recursos de hardware?
- ¿se ve afectada la productividad de los usuarios por esta lentitud?
|
si / no |
Escalabilidad
|
esperable |
- Escalabilidad funcional: ¿es sencillo y relativamente breve implementar al software nuevas funcionalidades y servicios, a medida que surgen nuevos requerimientos? (legibilidad, comprensibilidad, documentación).
- Escalabilidad por crecimiento en volumen de datos: (ver eficiencia)
|
si / no |
Funcionalidad
|
fundamental |
- ¿hay operaciones que el software podría realizar internamente y sin embargo hay que hacerlas “a mano” o en otras aplicaciones?
- ¿son muy limitadas o incompletas las funciones que realiza el software?
- ¿resuelve casi todos los problemas de operatividad y gestión de la información?
|
si / no |
Mantenibilidad
|
fundamental/esperable |
- Reparabilidad: ¿es sencillo corregir errores del software (bugs o funcionalidades mal definidas)? (esto depende del grado de modularidad del software) si el software es modular se aísla problemas fácilmente y se gana tiempo encontrando y corrigiendo errores.
- Flexibilidad: ¿es sencillo hacer adaptaciones cuando se alteran levemente los requerimientos iniciales? ¿es sencillo adaptar el software si se modifica su entorno de aplicación, si se actualiza el sistema operativo o el hardware?
- Evolucionabilidad: ¿es sencillo perfeccionar el software en un proceso evolutivo viable?
- Extensibilidad: ¿es sencillo extender el software hacia nuevas funcionalidades sin tener que modificar el código “existente”?
|
si / no |
Portabilidad
|
esperable |
- ¿el software es portable a diferentes sistemas operativos y plataformas?
- ¿es sencillo "trasladar" el software de una intranet a otra, o de un dominio/servidor a otro sin mayores problemas, y configurando tan solo unos pocos parámetros?
|
si / no |
Disponibilidad / Recuperabilidad
|
fundamental |
- ¿el sistema, se “cae” muy a menudo?
- ¿es preciso inhabilitarlo por mucho tiempo cada vez que hay que hacer tareas de mantenimiento?
- ¿cuánto tiempo demora el sistema en “arrancar” hasta su estado funcional?
|
si / no |
Reusabilidad
|
esperable |
¿es el código fuente del software, reusable? |
si / no |
Robustez
|
esperable |
¿reacciona bien el sistema ante situaciones o casos no previstos o no contemplados en los requerimientos? |
si / no |
Seguridad
|
fundamental |
- ¿están protegidos los datos que manipula el sistema, ya sea en su tiempo de proceso y tránsito, como así también en su estado de almacenamiento?
- ¿es muy vulnerable al ataque de hackers / crackers?
- ¿tiene contemplado un sistema de recuperación, ante pérdida de datos?
|
si / no |
Fuente Original: Desarrollo de Web
|