Calidad del Software
-
Upload
jesus-pereira -
Category
Documents
-
view
212 -
download
0
description
Transcript of Calidad del Software
Calidad del Software
Proyecto “Pizza-Inn Restaurant”
Integrantes
Paul Astorga Tencio
Ariana Cerdas Quesada
Melvin Jiménez Araya
Marianyela Magallón Hernández
Jesús Pereira Mena
José Zúñiga Marìn
Profesor :
Msc. Ricardo Boom
III Cuatrimestre
2012
INTRODUCCIÓN
La calidad del software es un concepto que se ve alejado de la vida cotidiana de muchas personas, pero nada más lejos de la realidad. Un ejemplo muy claro y que vivimos siempre es cuando en nuestra computadora se muestran errores conocidos como “pantallazos azules”.
Los sistemas cliente/servidor de hoy en día todavía necesitan mejorar para permitir el uso concurrente a miles de usuarios. Las organizaciones necesitan desarrollar pruebas de carga repetibles y determinar el rendimiento real y límites potenciales del sistema.
Referente al proyecto del curso de Calidad del Software hemos querido analizar el sitio web “Pizza-Inn Restaurant” con algo más de detalle uno de los aspectos clave para la calidad. Se trata de las pruebas de software: es la técnica presente en todos los proyectos y consiste en realizar ensayos de funcionamiento de las aplicaciones en entornos controlados, a fin de detectar los posibles defectos presentes antes de que el producto se ponga en funcionamiento y pueda originar cualquier tipo de fallo.
Es claro que a la hora de desarrollar un software es importante tener en cuenta que la calidad se debe implementar desde las etapas tempranas del desarrollo y no agregarlo al final, así se asegurará la mejora continua del mismo cumpliendo con los estándares para su correcta distribución e implementación en la empresa.
Breve Descripción del Sistema
El sistema al cual le aplicamos calidad, consiste en una página web de un
Restaurante llamado “Pizza-Inn Restaurant”.
La página web las funciones que hace es mostrar la pestaña de Inicio en donde
se encuentra la información del Restaurante, una pestaña llamada Pizza Zone
en donde se encuentra un historial acerca de las reservaciones hechas por el
cliente.
Cabe destacar que para poder ver toda esa información el cliente debe registrarse,
cuenta con la pestaña Special-Deals que son las ofertas que el Restaurante
pública para que sean vistas por los clientes; puesto que para formar parte de la
página como cliente y poder ver acerca de todo lo anteriormente mencionado la
página cuenta con una pestaña de registro y otra de Login para que el usuario
pueda ingresar y pueda disfrutar de toda la información de la página , así como
ofertas, reservaciones , historial de reservaciones, modo de contacto y lo más
importante la calificación para el Restaurante al momento de que el cliente prueba
sus servicios este mismo puede calificar que tal le pareció.
Objetivos del Proyecto
1. Objetivo General
Aplicar los métodos de calidad aprendidos en clases para poder ver en la práctica su comportamiento.
2. Objetivos Específicos
· Verificar la consistencia de los datos de entrada
· Determinar si existe algún tipo de validación de los datos
·Identificar anomalías en el programa de desarrollo mediante los
métodos de calidad.
· Analizar la seguridad del sistema y la facilidad de uso
Descripción de las fases de la Prueba Prueba de SW / Comprobación de la Prueba
● Revisión del funcionamiento de las acciones asociadas a la pantalla de
Pizza-In Restaurant
● Revisión de los fundamentos Hipervínculo Home
● Revisión del módulo Mi cuenta
● Sección Mi perfil
● Revisión de la función cierre de sesión.
● Revisión Gestión Personal
● Revisión Mensajería
● Revisión Seguridad (todo el Frontend)
● Revisión Seguridad (Inicio de sesión para clientes)
● Revisión Seguridad (Panel Administrativo)
● Revisión de la pestaña “Pizza Zone”
● Revisión de pizza Zone (Reservación de mesas)
● Revisión de pizza Zone (Generar Órdenes)
● Revisión de pizza Zone (Reservación de mesas)
● Revisión de pizza Zone (Eliminar Órdenes)
● Revisión del Panel administrativo, función Login.
A. Prueba Unitaria
En esta etapa se da la descripción de cada prueba hecha en el sistema para luego
en la etapa posterior que sería la etapa de la prueba de integración poder ver el
funcionamiento del sistema en conjunto.
● Revisión del funcionamiento de las acciones asociadas a la pantalla
de Pizza-In Restaurant Descripción: Ver el funcionamiento de la pantalla de Pizza-In Restaurant con sus
respectivas funciones asociadas.
● Revisión de los fundamentos Hipervínculo Home Descripción: Se basa en la revisión de la ortografía y gramática utilizada en todo
el sitio, la cual es de suma importancia ya que es la presentación para el usuario.
Además se realizará la prueba de navegación donde se checará la integridad de
los hipervínculos. Se analizará si el usuario necesita algún complemento para el
sitio como por ejemplo flash o Adobe Reader.
● Revisión del módulo Mi cuenta Descripción: Revisar que al momento de registrarse en el sistema los datos de
entrada sean los correctos y que la información en el módulo sea la esperada.
También la verificación posterior a la creación de la cuenta para detectar errores.
● Revisión Sección Mi perfil Descripción: Consiste en revisar la funcionalidad de los botones y también el
ingreso de información errónea para validar que este contenido no sea permitido
por el sistema
● Revisión de la función cierre de sesión.Descripción: se verifica el funcionamiento del botón Logout.
● Revisión Gestión Personal Descripción: Dentro del administrador el usuario debe presionar el botón Staff Allocation Management el cual lo encontramos en la parte superior derecha,
al ingresar se muestra un conjunto de opciones; order id, staff id, reservation id,
staff id, entre otros. El administrador ingresa la información requerida y presiona el
botón Allocate Staff, con eso ingresamos los datos a la base de datos.
● Revisión Mensajería Descripción: Dentro del administrador el usuario debe presionar el botón Messages Management el cual lo encontramos en la parte superior derecha, al
ingresar se muestra una área de texto y un botón de envío.
● Revisión Seguridad (todo el Frontend) Descripción: Se accede a cualquier módulo que se muestre en el frontend y se
mira los derechos de autor.
● Revisión Seguridad (Inicio de sesión para clientes) Descripción: Se accede al formulario de registro, una vez ahí se ingresan los
datos para registrarse en el sistema.
● Revisión Seguridad (Panel Administrativo)
Descripción: Se accede al panel administrativo entrando al directorio /admin/ y
pide datos para iniciar sesión como administrador.
● Revisión de la pestaña “Pizza Zone”Descripción: Se ingresa a la página web y luego a la pestaña del menú principal
llamada "Pizza Zone"
● Revisión de pizza Zone (reservación de mesas)Descripción: Se ingresa a la página web y luego a la pestaña del menú principal
llamada "Pizza Zone"
● Revisión de pizza Zone (Generar Ordenes)Descripción: Se ingresa a la página web y luego a la pestaña del menú principal
llamada "Pizza Zone"
● Revisión de pizza Zone (reservación de mesas)Descripción: Se ingresa a la página web y luego a la pestaña del menú principal
llamada "Pizza Zone"
● Revisión de pizza Zone (Eliminar Ordenes)Descripción: Se ingresa a la página web y luego a la pestaña del menú principal
llamada "Pizza Zone"
B. Prueba de Integración
Ejecución del sistema en su debida totalidad, después de las pruebas por módulo.
En especial se utiliza el tipo de integración ascendente, es donde la construcción
del diseño empieza desde los módulos más bajos hacia arriba (módulo principal),
el procesamiento requerido de los módulos subordinados siempre esta disponible
y elimina la necesidad de resguardo.
La sección de una estrategia de integración depende de las características
depende de las características del software y, a veces, del plan del proyecto, en
algunos de los casos se puede combinar ambas estrategias.
C. Prueba Global del Sistema
Prueba al sistema en general sobre la debida ejecución, el uso correcto del
sistema y la respuesta esperada.
D. Prueba de Volumen y Tiempo de Respuesta Como se sabe, la meta de las pruebas de desempeño (tiempo y volumen) no es
encontrar bugs, es garantizar que el sistema es apto para soportar determinada
carga, así como la recuperación apropiada del exceso de uso de sus propios
recursos. Para las pruebas de desempeño,se debe tratar de determinar el
rendimiento de un sistema, validando atributos de calidad (como fiabilidad,
estabilidad, etc) del sistema, exponer los cuellos de botella y medir los picos de
carga.
Asegurarse de que el ambiente de pruebas está estable y las condiciones de
pruebas son similares al ambiente de producción como sea posible. Intentar
simular una carga de trabajo al azar.
Estimar el crecimiento de carga de trabajo cada año y aplicarlo dentro de las
pruebas
Asegurarse que la versión de software fue desplegada y probada correctamente
Durante una prueba de desempeño se debe ajustar la carga de trabajo del sistema
gradualmente con tiempos adecuados entre pasos para permitir que el Sistema se
estabilice.
Siempre se debe monitorear y grabar las estadísticas del Sistema, incluyendo
utilización de CPU y memoria del cliente y todos los servidores involucrados en la
prueba.
Se ha hecho una prueba con la herramienta del sitio web: www.speedtest.net y el
resultado de velocidad de carga del ìndice es de 2.009 segundos, siendo calificado
como un sitio web optimizado.
RESULTADOS OBTENIDOS
El sistema muestra un tiempo de respuesta adecuado, además la prueba de
estrés realizada sobre el sistema no generó errores, permitiendo así que el
sistema soporte más de un usuario ingresado. Con esta prueba realizada hace
constar que el sistema es capaz de soportar pruebas en web.
Esquema de Pruebas
A. Planificación de Pruebas
Las pruebas se realizaron de manera separada por cada integrante del grupo en
donde, cada estudiante hizo el testing en donde se creyó que era conveniente
testear para ver la reacción del sistema al introducir datos, presionar botones,
links, etc.
Estas pruebas se hicieron de acuerdo al grado de vulnerabilidad que se creyó que
podía haber en el sistema y así hacer notar los fallos .
B. Estrategia Global de Prueba La prueba global a realizar se basa en un caso de prueba sobre la funcionabilidad
del sistema y el correcto uso, se manejará en forma de manual de instrucciones
donde el usuario lo aplicará paso a paso al sistema.
C. Datos de Prueba
En las siguientes pruebas que se hicieron estos fueron los datos de prueba:
1. Revisión del módulo Mi cuenta:● Nombre: Z98PL
● Apellido: 51sp
● Email: [email protected]
● Clave: 123
Sección : Reservar Mesa
● Fecha : 2008/08/12
● Para la prueba se utilizarán cifras combinadas con letras y una cuenta
de correo electrónico totalmente errónea.
● En la sección de reservar mesa usaremos una fecha que es antigua a la
actual
2. Revisión de Sección Mi perfil
● Dirección: 0000
● PO Box No: FFFF
● Ciudad : 050
● Mobile No: ppp
● No fijo:yyy
● Clic botón Añadir con datos nulos
● Clic a botón Cambiar
En Cambiar la contraseña: se comprobará la funcionalidad el botón: Cambiar
En añadir entrega/Dirección de Facturación: se implementará la estrategia descrita
en el punto anterior
3. Revisión Seguridad (Inicio de sesión para clientes) Se ingresará el carácter especial en el nombre de usuario para así probar errores.
Se ingresará 2 caracteres alfanuméricos en el campo de texto de la contraseña
para comprobar si el sistema valida los datos.
4. Revisión Seguridad (Panel Administrativo)Se utilizará una aplicación que realice un ataque de fuerza bruta al login del
sistema de administración.
5. Preparación del Entorno
Se preparó un servidor con el hardware:
● Procesador: Intel Xeon 16 nucleos.● Memoria RAM: 320mb.● Conexiòn: 100MBS
Software del servidor:
● Sistema operativo: Debian.● Motor de base de datos: MySQL.● Motor web: Apache.● Motor PHP.
Ejecución de la Prueba
Ejecución del sistema en tiempo real, el sistema se encuentra cargado en la nube donde diferentes usuarios a la vez realizarán pruebas al sistema.
Administrar las actividades de la prueba
Uso de casos de prueba para la debida ejecución del sistema, se utiliza el caso de prueba para que los tester puedan encontrar errores en el sistema y así notificar el incidente a los desarrolladores.
Obtención de Resultados
Revisión de los fundamentos Hipervínculo Home:
Descripción del proceso: Cuando el usuario ingresa a la sección del menú: Home o Casa se presenta la página correspondiente al link. Se presenta una galería fotográfica realizada en flash el cual sería un requisito para que el usuario visualice
Resultado: Mostrar la página acordada
Revisión del módulo Mi cuenta
Descripción del proceso: Para la prueba se utilizarán cifras combinadas con letras y una cuenta de correo electrónico totalmente errónea.
En la sección de reservar mesa usaremos una fecha que es antigua a la actual
Resultados Obtenidos: Permite ingresar al sistema sin previas validaciones en la información ingresada, Fecha de reserva sin validaciones.
Revisión Cerrar Sesión
Descripción del proceso: Botón Logout para cerrar sesión de administrador
Resultado obtenidos: EL botón cumple con los objetivos dispuestos, pero la sesión debería de cerrarse después de un tiempo dado por el administrador.
Revisión mensajería
Descripción del proceso: Administrador ingresa texto en el espacio requerido y es enviado como un correo.
Resultados Obtenidos: El administrador no sabe a cual correo o persona se esta enviando este correo, no tiene área para ingresar asunto. Y si es el caso que se envíe a otros administradores, debería de haber un módulo para ver mensajes o en su defecto crear un módulo chat.
Seguridad (todo el Frontend)
Descripción: Se revisará todo los módulos que son vistos por el usuario común(sin permisos de administración) en busca de información que comprometa la seguridad del sistema
Resultados obtenidos: En todos los módulos se encontró un link que redirecciona al usuario hacia el login del admin.
Seguridad (Inicio de sesión para clientes)
Descripción: Se ingresará el caracter especial ' en el nombre de usuario para así probar errores.
Obtención de resultados: La aplicación continuó con el registro.
Seguridad (Panel administrativo)
Descripción : Se utilizará una aplicación que realice un ataque de fuerza bruta al login del sistema de administración.
Obtención de resultados: No banea la IP, permite hacer los intentos que soporte el servidor.
Seguridad (Inicio de sesión para clientes)
Descripción Se ingresará 2 caracteres alfanuméricos en el campo de texto de la contraseña para comprobar si el sistema valida los datos.
Obtención de resultados: La aplicación continuó con el registro.
Pizza Zone Generar Ordenes
Descripción: El usuario de la página ingresa a la pestaña del menú Pizza Zone y luego al link de Choose your Pizza, donde podrá ordenar alguna pizza.
Obtención de resultados: Cuando el usuario esta registrado puede entrar a esta sección y ordenar una pizza, el problema se genera al ingresar datos, ya que permite ingresar letras en la parte de Cantidad y en la parte de total, además el total debería ser auto calculado ya que si la persona compra varias pizzas pueden poner cualquier total que igual la orden se realiza, otro error es que permite ordenar pizzas para fechas ya pasadas. Otro problema que se encontró es que cuando se entra a la parte de Choose your Pizza no hay manera de devolverse al punto anterior que sería el ver órdenes o reservar mesa.
Pizza Zone Mensajes al Usuario.
Descripción: El usuario de la página ingresa a la pestaña del menú, donde podrá escoger alguna pizza o bien reservar una mesa, para algún día en específico.
Obtención de resultados: Si el usuario ingresa a la sección de Pizza Zone y no esta registrado, le mostrará un mensaje poco amigable con el usuario, "Access Denied!". En caso de que no sea miembro de la página debería mostrar un espacio para loguearse o registrarse por primera vez.
Pizza Zone reservación de Mesas
Descripción: El usuario de la página ingresa a la pestaña del menú, donde podrá escoger alguna pizza o bien reservar una mesa, para algún día en específico.
Obtención de Resultados: Cuando el usuario está registrado puede entrar a esta sección y reservar una mesa, hay un problema en la validación de fechas, ya que permite reservar una mesa para fechas que ya pasaron. Además permite reservar una misma mesa para el mismo día y la misma hora, lo cual indica que faltan validaciones en esta parte.
Pizza Zone Eliminar Ordenes
Descripción: El usuario de la página ingresa a la pestaña del menú Pizza Zone donde verá un título de Order History y desde ahí podrá cancelar órdenes.
Obtención de resultados: Cuando el usuario está registrado puede entrar a esta
sección y ver el historial de sus órdenes, a la par de cada orden hay un botón
con el cual puede eliminar la orden, el problema se encontró en que si un usuario
por error le dio a ese botón, inmediatamente eliminará la orden sin antes haber
visto algún mensaje de confirmación, para así evitar ese tipo de problemas. Otro
problema encontrado es que en el historial de órdenes, el campo de Pizza Type no
esta siendo llenado al igual que el precio.
Identificar los bugs A. Asignación de los bugs para su solución
Clasificación y descripción de los errores que se encontraron en el tiempo de pruebas de calidad del sistema.
B. Corrección de los bugs
Incidentes del sistema debidamente notificados a los desarrolladores para su debida solución.
Revisión de los fundamentos Hipervínculo Home
Errores encontrados: El link de Home se encuentra roto.
Solución: Se procede a revisar el código para determinar el problema y corregirlo lo más antes posible.
Revisión del módulo Mi cuenta
Errores encontrados: El sistema acepta y crea la cuenta con los errores citados anteriormente.
La posibilidad de que el usuario cambie su contraseña en caso de olvidarla es nula.
Reserva la mesa con una fecha anterior a la actual.
Solución:
Se recomienda tomar en cuenta las validaciones del sistema a la hora de ingresar datos en los formularios y al igual que las fechas.
Que el sistema tenga la capacidad de mostrarle al usuario mensajes de errores mostrándole la validación correcta de los datos.
Sección Mi perfil
Errores encontrados:
Acepta los datos que fueron especificados en la prueba
Al darle clic al botón Cambiar la contraseña dicho proceso no se lleva a cabo.
Al añadir datos nulos no se encuentra problemas en añadir pero si los hay en cambiar
Solución:
Asignar los procedimientos o funciones correctas a los botones.
Validar la entrada de datos
Recomendaciones y Toma de Decisiones Se concluye que para la realización del proyecto es importante que a lo largo
del desarrollo software; es de gran importancia aplicarle calidad al producto
garantizando la calidad, la eficiencia y el éxito del producto, y es una buena
práctica para identificaciones de los posibles bugs en el producto, la forma de
poder solucionarlos antes de la entrega al cliente, revisión en la parte de la
seguridad ya que en toda empresa o negocio es la parte más importante y con la
aplicación de la calidad se garantiza que lo que se le va a entregar al cliente será
un buen producto.
También se debe tomar en cuenta un modelo con las estrategias que se aplicarán
en el software,pruebas y demás documentos cumpliendo con las normas ISO en
especial las referentes a Calidad del Software.