domingo, 29 de noviembre de 2015

TIPOS DE PRUEBAS

Tipos de pruebas


Utilizando los distintos tipos de pruebas se deben seguir los formatos estándar y la documentación para realizar el seguimiento de los resultados de las pruebas funcionales del sistema y de todas las demás. Si se observa una falla, se debe generar un informe del incidente para que éste sea analizado y reparado desde el código. No se deben perder de vista estos documentos con el propósito de garantizar la calidad del software, y seguir el progreso del proceso de pruebas.

Pruebas de Caja Negra
En las siguientes pruebas se comprobó la autenticación, la carga de registros en la base de datos MYSQL 5.6.13 con las funciones creadas por php.

N° de Pruebas
Descripción
Puntuación
Criterio - MySQL
Deficiente
Aceptable
Bueno
Excelente
1
Registro en la base de datos


x

2
Ingresar usuario y clave


x

3
Nombre de usuario en la página de bienvenida


x

6
Consultas de claves


x

7
Eliminar registro de claves


x

8
Insertar contacto y clave



x
9
Actualizar registros


x

10
Busca de un solo registro

x




Pruebas de Caja Negra
Se realizan prueba e funcionalidad en PHP.

N° de Pruebas
Descripción
Puntuación
Criterio - PHP
Deficiente
Aceptable
Bueno
Excelente
1
Integración con base de datos


x

2
Conexión por usuarios


x

3
Acceso a los contactos únicos del usuario


x


Aspectos a mejorar:
Ninguno pero podemos utilizar joomla o wordpress para mejorar la presentación de la página y garantizar a su vez él envió de mensajes con servidor POP3 y SMTP.

Pruebas de Caja Negra
Se realizan pruebas sobre la página web en aspectos de diseño y estructura.

N° de Pruebas
Descripción
Puntuación
Criterio – HTML5
Deficiente
Aceptable
Bueno
Excelente
1
Presentación de la pagina


x

2
Facilidad de navegación


x

3
Estructura adecuada



x

Aspectos a mejorar:
Ninguno



N° de Pruebas
Descripción
Puntuación
Criterio – HTML5
Deficiente
Aceptable
Bueno
Excelente
1
Estilo de la pagina


x

2
Ambiente agradable a la vista



x

Aspectos a mejorar:
Ninguno




Prueba de Caja Blanca (Conociendo el código fuente)
Se realizan pruebas para obtener registros con el método POST y consulta en SQL.

N° de Pruebas
Descripción
Puntuación
Criterio - MySQL
Deficiente
Aceptable
Bueno
Excelente
1
Consultas en la base de datos


x

2
Agregar usuarios


x

3
Administración por phpmyadmin



x
4
Creación de base de datos



x
5
conexión por php


x

6
consultas por php



x
7
Eliminar contactos por php


x

8
Agregar contacto por php



x
9
Actualizar datos por php


x

10
Buscar contacto por php

x


11






Aspectos a mejorar:
Mejorar las búsquedas de usuarios mostrando los contactos únicos del usuario y no todo el registro.

Prueba de Caja Blanca (Conociendo el código fuente)
Se realizan pruebas de JAVASCRIPT en aspectos de cifrado en ciclos FOR y condiciones o restricciones para formularios en HTML.

N° de Pruebas
Descripción
Puntuación
Criterio – HTML5
Deficiente
Aceptable
Bueno
Excelente
1
Aplicación de funciones



x
2
Condiciones para cada textbox


x

3
Mensajes al realizar una acción



x
4
Función de cifrado



x

Aspectos a mejorar:
La función de cifrado trabaja a través de una única clave pero como un aspecto a mejorar es el cifrado asimétrico para documentos anexándolo como una opción adicional que queda a elección del usuario.

Pruebas de funcionalidad.


Se han establecido pruebas de funcionalidad de sistema ya que tienen mucho que ver con las pruebas de aceptación. Se dice que un programa es aceptable cuando:
-  Hace lo que debe hacer
-  No hace lo que no debe hacer.
Por tanto se debe asegurar que el comportamiento del sistema se adhiere a los requisitos funcionales.
a. Todos los requisitos funcionales del sistema deben ser realizables por el sistema.
b. Las pruebas de funcionalidad son de caja negra en naturaleza. Se focalizan en las entradas y salidas apropiadas para cada función.
c. Las entradas incorrectas e ilegales se deben manejar también por el sistema.
d. Todas las funciones deben ser probadas.
e. Las pruebas a nivel sistema incluyendo pruebas de funcionalidad deben ser diseñadas en el tiempo en que se toman los requisitos, e incluirse en el plan maestro del proyecto y por ende en el plan de prueba del sistema.

Pruebas de secuencias y actividades del proceso.


Estas pruebas permiten indagar que tanto la secuencia de actividades desde el punto de vista de los actores del sistema, como la secuencia de mensajes desde el punto de vista de los objetos del sistema tengan coherencia con lo que se expresa en cada uno de ellos. Las pruebas basadas en el diagrama de secuencias son orientadas principalmente a pruebas de caja blanca.
Los casos de prueba generados comprueban de forma global que los procesos, flujos e interacciones planteados en los diagramas de actividades y de secuencias de procesos son reflejados fielmente por TODO el producto de software.
Para realizar estas pruebas se debe tener en cuenta:
1.                  Adquirir la comprensión del dominio del sistema y del diagrama de secuencias y actividades del sistema completamente, (Si es necesario lea todo el documento de casos de uso y el documento de requisitos).
2.      Identificar las secuencias que comprometen directamente transiciones en la bases de datos del sistema.
3.      Comprobar que las transacciones generadas por unas secuencias son registradas en la base de datos.
4.      Identificar los procesos del sistema y en qué casos de uso se utilizan, encontrando concordancia así entre el diagrama de casos de uso y el diagrama de actividades.
5.      Ubicar los procesos del sistema del diagrama de actividades en los módulos e interfaces en los cuales se lleven a cabo.
6.      Corroborar el flujo correcto entre procesos mostrado en el diagrama de actividades. Se deberán elegir las que sean más comunes, reales y factibles al interior del sistema.
7.      Tener en cuenta la duración, como se realiza y en dónde se realiza el proceso con el fin de poder describir con más claridad el caso de prueba que prueba el flujo correcto entre procesos.

Prueba de acoplamiento con el usuario


Permite asegurar que el producto de software sea coherente con el ambiente en donde este será implantado y el usuario final en cuanto a sus habilidades y conocimientos.
Se debe chequear que los siguientes aspectos sean comprensibles por el usuario final según sus habilidades y conocimientos y además sean concordantes con el ambiente en el cual opere el aplicativo:
·       Etiquetas (label) de las interfaces.
·       Información de interacción con el usuario (Mensajes emergentes, explicaciones, errores y salidas).
·       Tooltips y ayudas.
·       Títulos de ventanas, componentes (Arboles, Menús, Tablas, entre otros).

Es importante tener en cuenta que se requiere tener una descripción de los usuarios del sistema agrupada según sus roles con el fin de identificar habilidades, conocimientos y ambiente en el cual se desempeña el usuario.

Prueba de entradas


Son consideradas entradas del sistema cualquier información que el usuario suministre y esté dispuesto en:
·      Cajas de texto (textbox, passwordfield).
·      Áreas de texto (textarea).
·      Listas de selección (list).
·      Barra de selección deslizable (slider).
·      Arboles de entrada (tree).
·      Caja de ajuste de valor (Spinner).
·      Caja de opciones (combox).
·      Campos en tablas modificables (Grid).
·      Botones (button).
·      Botones de opción (radiobutton).
·      Botones de selección (checkbox).
·      Vínculos (link).
·      Archivos (files).
·      Dispositivos externos de hardware (devices).
·      Otros que apliquen la definición (ver observaciones).

En esta prueba se realizan varias comprobaciones que tienen en cuenta el comportamiento - Las comprobaciones típicas son:
·      El nombre de las entradas concuerda con la entrada misma y es suficientemente claro para que el usuario ingrese el dato.
·      La ubicación de la entrada y de su nombre deben tener una relación ubicación-diseño clara para el usuario.
·      Se deben aceptar todas las entradas válidas.
·      Se deben rechazar todas las entradas inválidas teniendo en cuenta que el sistema debe seguir estando disponible.
·      El sistema debe retornar información de reconocimiento a las entradas correctamente.
·      las opciones no deben ser excesivas o pocas según sea el caso.
·      Se debe comprobar que las entradas no pueden ser redundantes y su interrelación debe ser correcta, no se deben repetir datos de entrada en las interfaces y adicionalmente no deberían haber datos derivados que ingrese el usuario.
·      los botones y otros componentes realizan la operación para la que fueron diseñados y respondan a sus eventos de manera adecuada.
·      Se debe chequear que la activación y desactivación de un componente sea la esperada.
·      No hayan vínculos rotos, y que estos direccionen al lugar correcto.
·       Si un componente posee valores por defecto, se debe verificar su correctitud.
·       Se debe comprobar que las entradas sean correspondientes a los roles de usuario.
·       Verificar que los procesos de importación de archivos sean correctos.
·       Verificar el comportamiento del sistema en relación con la interacción de entrada del usuario y el hardware.
·       Verificar que los archivo adjuntados cumplan los requisitos funcionales asociados a ellos.


Pruebas de salidas


Son consideradas salidas del sistema cualquier información que el sistema suministre y esté dispuesto en:
·         Cajas de texto (textbox, passwordfield).
·         Áreas de texto (textarea).
·         Listas de selección (list).
·         Barra de selección deslizable (slider).
·         Arboles de entrada (tree).
·         Caja de ajuste de valor (Spinner).
·         Caja de opciones (combox).
·         Campos en tablas (Grid).
·         Botones (button).
·         Botones de opción (radiobutton).
·         Botones de selección (checkbox).
·         Vínculos (link).
·         Archivos (files).
·         Dispositivos externos de hardware (devices).
·         Otros que apliquen la definición (ver observaciones).

Las comprobaciones a realizar son:

·      La información de las salidas no contenga información redundante o innecesaria.
·      El nombre de la salida concuerda con la salida misma y es suficientemente claro para que el usuario comprenda el dato.
·      La ubicación de la salida y de su nombre deben tener una relación ubicación-diseño clara para el usuario.
·      Comprobar que las salidas contengan datos correctos y válidos.
·      Las salidas no pueden ser redundantes y su interrelación debe ser correcta, no se deben repetir datos de salida en las interfaces.
·      Verificar que no hayan vínculos rotos, y que estos direccionen al lugar correcto.
·      Comprobar que las salidas sean correspondientes a los roles de usuario.
·      Verificar que los procesos de exportación de archivos sean correctos.
·      Verificar el comportamiento del sistema en relación con la interacción de salida del usuario y el hardware.
·      Verificar que los archivos generados por el sistema cumplan los requisitos funcionales asociados a ellos. Por ejemplo cuando el sistema genera reportes en pdf u en otro formato.
  • Definir qué es y que no es una entrada y una salida y en qué momento una se convierte en otra.


Prueba de manejo de errores


Se deben contemplar errores de hardware y de software. Es así como la aplicación debe estar en capacidad de capturar el error, tratarlo y entregar al usuario una alerta descriptiva del mismo, que le permita tomar las acciones pertinentes para solucionarlo. Algunos de los errores más comunes son:
  • Errores de bases de datos.
  • Errores de comunicación entre dispositivos.
  • Errores de memoria.
  • Errores de compatibilidad.
  • Errores del lenguaje de programación.
  • Errores inesperados.

Por otro lado verificar que los mensajes de error estén codificados, tipificados, que describan la posible causa del mismo y que den una posible solución.
También es importante que el sistema sea capaz de responder al error de forma que siga estando disponible una vez que se lanzó la respectiva alerta.

Prueba de uniformidad de interfaces

Esta prueba permite comprobar los siguientes aspectos:
·         Las interfaces en conjunto a través de toda la aplicación están interrelacionadas, son uniformes en conversiones, formatos (colores, fuentes, tamaños de fuentes), estilos (negrita, subrayados, cursivas, tachado), abreviaciones de lenguaje entre otros.
·         Las imágenes utilizadas se visualizan correctamente,  no se superponen de forma no controlada y son coherentes a través de la aplicación.
·         Los componentes o elementos del aplicativo de software tiene estándares definidos para su ubicación.


Prueba de compatibilidad

Esta prueba busca comprobar la compatibilidad del aplicativo frente a diferentes entornos como:
· Navegadores: no solo se prueba la compatibilidad entre distintos navegadores sino también entre versiones de un mismo navegador.
· Framework cliente y servidor.
· Sistemas operativos cliente y servidor.
· Plataformas de hardware cliente y servidor.

Pruebas de seguridad


La prueba de la seguridad evalúa las características del sistema que se relacionan con la disponibilidad, integridad, y confidencialidad de los datos y de los servicios del sistema.
En ésta prueba se chequean generalmente los siguientes aspectos:
·         Password Checking (Prueba de contraseña): Se inspecciona la contraseña para asegurar que los usuarios si seleccionen  una contraseña que contemple las condiciones de aceptación de la misma establecidas en los requisitos. Las reglas y las condiciones que especifican una contraseña como válida se pueden utilizar para diseñar las pruebas.
·         Los ingresos legales e ilegales por medio de contraseñas: Se prueba que los resultados de los intentos de ingresos legales e ilegales al sistema sean los esperados.
·         Pruebas de snifffer y spoofing.
·         Verificación de concurrencia de sesiones.
·         Chequeos de expiración de sesiones.
·         Expiración de contraseña: Si se decide que las contraseñas expirarán después de cierto período, las pruebas se debe diseñar para asegurar que el período de la expiración sea el correcto y que los usuarios puedan ingresar y cambiar correctamente su contraseña apropiadamente.
·         Cifrado: Se deben diseñar pruebas para evaluar la correctitud de los algoritmos de cifrado y de desciframiento para los sistemas donde se codifican los datos y los mensajes.
·         Visualización: Se deben evaluar los privilegios al visualizar las interfaces para asegurar que no ocurren ingresos no autorizados. Deben determinarse qué tipos de información privada se pueden deducir por navegación legal e ilegal.
·         Las Puertas abiertas: Se deben identificar cualquier entrada desprotegida en el sistema que puede permitir el acceso a través de los canales inesperados (puertas traseras abiertas). Las pruebas deben intentar lograr la entrada ilegal y observar los resultados en el sistema.
·         Virus: se deben diseñar las pruebas para asegurar que los antivirus del sistema previenen o disminuyen la entrada de virus en el mismo.

Posibles riesgos de software


RIESGO
TIPO
DESCRIPCION
Rotación de personal
proyecto
Personal con experiencia abandona el proyecto
No disponibilidad del hardware
proyecto
El hardware esencial para el proyecto no será entregado a tiempo
Cambios de requerimientos
Proyecto y producto
Habrá más cambios de requerimientos
Retrasos en las especificaciones
Proyecto y producto
Las especificaciones de las interfaces esenciales no estarán a tiempo
Subestimación del tamaño
Proyecto y producto
El tamaño del proyecto se ha subestimado
Cambio de tecnología
Negocio
Un producto competitivo se pone en venta antes que el sistema se complete
Competencia del producto
Negocio
La tecnología fundamental sobre la que se construirá el sistema se sustituye por nueva tecnología
Cambio de gestión
proyecto
Habrá un cambio de gestión organizacional con diferentes prioridades
Bajo rendimiento de la herramienta CASE
producto
Las herramientas CASE que ayudan al proyecto no tienen el rendimiento esperado.



No hay comentarios:

Publicar un comentario