Computing">
Nothing Special   »   [go: up one dir, main page]

M3L4

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 24

Testing de desarrollos web

1. Testing de desarrollos web


Actualmente, muchos de los sistemas con los que interactúa el hombre a diario son sistemas
interconectados que ofrecen un complejo conjunto de contenido y funcionalidades, y que pueden
ser accedidos desde cualquier terminal con conexión a internet. Debido a las nuevas tecnologías
de desarrollo, la mayoría de los sistemas utilizan ingeniería web y son desarrollados con
lenguajes que admiten la implementación web. Después de haber expuesto los conceptos
fundamentales sobre las pruebas de sistemas, surge la siguiente inquietud: ¿estamos en
condiciones de probar sistemas web? Los siguientes interrogantes son los que pueden surgir en
la mente de cualquier probador al enfrentarse a un proyecto de prueba de un sistema con
tecnología web.

¿Qué significa probar una aplicación web?


¿Qué es necesario conocer?
¿Qué características de los sistemas web toman relevancia al momento de las pruebas?
¿Es un nivel de pruebas?
¿Requiere otro proceso de pruebas? ¿Se considera una técnica?

Estos y otros más son los interrogantes que se intentará responder dentro de esta unidad.

Diferencias entre aplicación convencional y aplicación web


Una aplicación convencional tiene estas características fundamentales que la diferencian de una
aplicación web:

Se instala.
Necesita bibliotecas especiales.
Es estática.

En contraste, una aplicación web tiene las siguientes características particulares:


Se puede desplegar en navegadores web.
Ofrece un conjunto de objetos que se pueden visualizar y operar de forma independiente.
Es dinámica.

En cuanto a los aspectos específicos, se pueden mencionar:

Diversidad de perfiles de usuarios.


Variedad de comportamientos entre esos perfiles.
Atributos de calidad que satisfacen las necesidades de diferentes audiencias.
Distintos niveles de habilidades y conocimientos dentro del equipo de proyecto.
Procesos de desarrollo rápidos y ágiles.
Alto enfoque en la funcionalidad del sistema.

Por lo tanto, la ingeniería web demanda enfoques sistemáticos y disciplinados para la


construcción y evaluación de aplicaciones web, y hace uso de herramientas y metodologías
sólidas pero adaptables. Se desarrolla en un entorno multidisciplinario que abarca áreas como:

Ingeniería de sistemas e ingeniería de software


Interfaces de usuario
Multimedia
Modelado
Simulación
Pruebas
Gestión de proyectos
Sociología
Diseño gráfico

Dimensiones de calidad para pruebas de aplicaciones web


Dimensiones de calidad para pruebas de aplicaciones web

Como lo indica Pressman (2006), la calidad de una aplicación web está estrechamente
relacionada con su diseño. Este diseño debe evaluarse mediante revisiones técnicas que
consideren diversos elementos del diseño, así como a través de pruebas.
En ambos enfoques, es necesario examinar ciertas dimensiones de calidad inherentes al
desarrollo web. Entre estas dimensiones, se pueden destacar:

Las dimensiones de calidad inherentes al desarrollo web que deben examinarse son las
siguientes:

Navegabilidad. Se refiere a la eficacia de los vínculos en la aplicación web, evitando la


presencia de enlaces rotos, inadecuados o erróneos.
Interoperabilidad. Evalúa la capacidad de la aplicación para interactuar de manera
adecuada con otras aplicaciones o bases de datos, asegurando interfaces funcionales y
compatibles.
Seguridad. Implica la evaluación del nivel de vulnerabilidad de la aplicación web,
considerando todas las medidas de seguridad implementadas para protegerla de posibles
ataques y brechas de seguridad.
Facilidad de uso. Se refiere a la accesibilidad y usabilidad de la aplicación para cada perfil
de usuario involucrado, garantizando una experiencia fluida e intuitiva.
Contenido. Tanto en términos semánticos, que abarcan la consistencia, ambigüedad y
exactitud de la información presentada, como en términos sintácticos, que incluyen la
ortografía, puntuación y gramática.
Estructura. Se evalúa la organización y disposición del contenido y las funciones de la
aplicación web, asegurando que sean adecuadas y coherentes, así como la posibilidad de
que la estructura sea extensible para futuras actualizaciones o expansiones.

Considerando estas dimensiones de calidad, la búsqueda de errores representa un desafío


significativo para los probadores, en adelante, probadores webs.

Proceso de desarrollo web


En el desarrollo de sistemas con tecnología web, el proceso mismo de desarrollo muestra algunas
diferencias generales, entre las que se pueden mencionar:

Requerimientos livianos. No hay una especificación detallada de requerimientos, sino que


está restringida a la tecnología limitada de un navegador web.
El desarrollo es simple y rápido. Por lo tanto, los proyectos tienden a ser cortos.
Las pruebas son menos exhaustivas, dinámicas y altamente centradas en el contenido y
la visualización.
Comparativamente, en las fases de desarrollo, se presenta de manera resumida el siguiente
cuadro:

Tabla 1. Proceso de desarrollo web

Desarrollo de aplicación Desarrollo de aplicación Web


convencional
Basado en detalladas Más liviano, menos estricto, se basa
Requerimientos
especificaciones en notas, ideas, entre otros
Planificación Experiencia Disponibilidad de tiempo
Análisis y diseño Procesos separados En paralelo
Implementación Desarrollo secuencial de Transiciones iterativas a sitios webs
componentes
Integración Ensamblado de componentes Web services
Pruebas Se prueba la Se basa además sobre la
funcionalidad contra las funcionalidad deseada
especificaciones
Instalación y entrega Transferencia a un instalable Transferencia a un web server
Mantenimiento De 1 a 3 años De 4 a 6 meses

Fuente: elaboración propia.

Elementos diferenciadores del desarrollo web


Con todo lo ya expuesto, a continuación, se muestra un gráfico con las diferencias sustanciales
de la ingeniería web en cuanto a proceso, calidad, usuarios y equipo de proyecto.

Figura 1. Diferencias sustanciales de la ingeniería web


Fuente: elaboración propia.

El desafío de las pruebas


Pasando puntualmente a las pruebas, se presentan una serie de dificultades a la hora de detectar
un error durante las pruebas de aplicaciones web:

En muchas ocasiones, por ejemplo, al encontrar una inconsistencia en el navegador web, se


está observando el síntoma y no el error en sí mismo.
Se muestra el siguiente mensaje de error: «Microsoft OLE DB Provider for ODBC Drivers
error 80040e14». ¿Dónde radica exactamente el problema? ¿En el cliente o en el servidor?
A simple vista, parece un error del sistema, pero en realidad se trata de una mala
configuración de JavaScript que impide la visualización de un objeto ActiveX en el
navegador web.
Es muy difícil aislar un error del entorno en muchas ocasiones.

Clasificación de los sitios web


Al clasificar el sitio, se pueden determinar en parte qué pruebas realizar.

Estáticos. Este es el tipo más básico de sitio web, donde la única interacción disponible
para el usuario es hacer clic en enlaces.
Estáticos con formularios. Se emplean para recolectar información de los usuarios y están
diseñados para la captura de datos con acceso dinámico a bases de datos: el front-end
interactúa con datos almacenados en un repositorio externo. Los resultados son archivos
HTML generados por algún motor específico.
Generados dinámicamente. En este caso, la interfaz gráfica y cada página retornada por el
servidor son creadas de forma dinámica. En lugar de devolver un archivo, el servidor envía
un flujo de código.
Aplicaciones webs. Se refiere a un conjunto de funcionalidades y componentes que operan
en entornos web.

Si bien el desarrollo de los contenidos de esta unidad está dentro del último tipo de sitios
(aplicaciones webs), varios aspectos característicos son compartidos por otros tipos de sitios y
también aplican para la prueba de páginas web del tipo estáticos o estáticos con formulario.

Estrategia de pruebas web


Pressman (2006) presenta un enfoque de prueba que consta de varios pasos, fundamentado en
los principios esenciales de las pruebas de sistemas. Este método aplica técnicas de prueba
convencionales y adapta ciertos tipos de pruebas junto con sus técnicas asociadas para evaluar
las dimensiones de calidad pertinentes.

Los pasos propuestos por Pressman (2006) pueden clasificarse en tres grupos: revisiones
(pruebas estáticas), pruebas dinámicas y pruebas con usuarios reales:

1. Revisiones de modelos o diseños específicos para detectar errores

Modelo de contenido: representa la estructura general del contenido presentado.


Modelo de interfaz: describe la estructura y disposición de la interfaz de usuario.
Diseño de navegación: muestra el flujo de navegación entre los elementos de contenido
para todas las funciones.

2. Pruebas

Revisión del modelo de diseño de la web app para identificar errores de navegación.
Evaluación de la interfaz de usuario para detectar errores en la presentación o en los
mecanismos de navegación.
Pruebas individuales de componentes funcionales seleccionados.
Evaluación de la navegación a lo largo de toda la arquitectura.

3. Implementación de la web app en diversas configuraciones ambientales y pruebas de


compatibilidad.

4. Pruebas de seguridad para identificar vulnerabilidades en la web app o en su entorno.

5. Pruebas de rendimiento.

6. Evaluación de la web app con una población controlada y supervisada de usuarios


finales, buscando errores relacionados con la facilidad de uso, la compatibilidad,
la confiabilidad y el rendimiento.

2. Pruebas de seguridad y accesibilidad


Se identifican tres áreas vulnerables que pueden ser objeto de ataques: el lado del cliente, el
entorno del servidor y las comunicaciones de red entre ambos. En el lado del cliente, una posible
vulnerabilidad es el acceso no autorizado a las cookies almacenadas en el navegador, lo que
podría comprometer la privacidad del usuario. En el entorno del servidor, las vulnerabilidades
pueden incluir ataques de denegación de servicio o acceso no autorizado a bases de datos. En
cuanto a las comunicaciones de red, el spoofing es una de las vulnerabilidades más destacadas.

Las pruebas de seguridad están dirigidas a detectar vulnerabilidades en estos tres ámbitos,
siendo estas pruebas de gran importancia. Entre las condiciones de seguridad que deben
abordarse se encuentran, por un lado, la protección de la privacidad del usuario mediante
algoritmos de encriptación y, por otro lado, garantizar la estabilidad del servicio mediante sistemas
de respaldo y redundancia de la información.

Puntos comprendidos por la seguridad

Integridad. La integridad de la información es fundamental, ya que debe mantenerse


precisa y fiable sin importar los errores o inconsistencias externas que puedan surgir. Es
crucial proteger la información contra posibles daños o modificaciones accidentales o
deliberadas.
Autenticación. Es esencial verificar la autenticidad de la identidad de los usuarios durante
el inicio de sesión en el sistema y en todas las acciones que realicen. La seguridad de la red
abarca tanto la protección física de los dispositivos como la garantía de la integridad,
confidencialidad y autenticidad de las transmisiones de datos que se produzcan a través de
ella.

La siguiente lista resume los puntos que comprende la seguridad de una red.

La información debe estar protegida de una posible destrucción o modificación accidental o


intencional (integridad).
Los datos no deben estar disponibles a los accesos no autorizados (privacidad).
Las transacciones no deben ser modificadas en su trayecto y se debe asegurar que quien
las generó es quien dice ser (integridad, autenticidad y no repudio).
Se debe mantener la integridad física de los dispositivos de red como servidores, switches,
etc.
El uso de la red no debe ser con fines que no estén contemplados por las políticas de
utilización.
La red debe estar disponible siempre y con la eficiencia necesaria, aun ante fallos
inesperados (disponibilidad).

Por otro lado, entre las técnicas que incorporan las pruebas de seguridad, encontramos las
siguientes:

Análisis de vulnerabilidades. Examina la robustez respecto de la seguridad de cada uno


de los sistemas y dispositivos ante ataques. Es decir que incluye tanto los sistemas como la
parte física también.
Pruebas de penetración. Se hacen las pruebas mediante la simulación de los mecanismos
habituales de atacantes.
Pruebas de accesibilidad. Son las pruebas que se realizan midiendo la facilidad del
acceso y la navegación en cualquier condición.
Pruebas de servicios web. Son las pruebas sobre mecanismos de seguridad del servicio
web (autorización de path virtuales, listado de archivos de directorio, acceso a script, asp,
php).
Pruebas de validación de algoritmos. Se verifican los pasos empleados en la generación
de claves públicas y firmas electrónicas (algoritmos RSA —rivest, shamir y adleman—, DES
—data encryption standard—).

Análisis de vulnerabilidades

La evaluación de seguridad es el proceso de analizar minuciosamente los sistemas para detectar


posibles fallos de seguridad, tanto en el diseño como en la implementación de la aplicación.
Incluye pruebas de validación de algoritmos. Esta técnica permite a los analistas de seguridad
examinar la resistencia y la protección de los sistemas y dispositivos frente a posibles ataques,
con el objetivo de obtener información para determinar las contramedidas que pueden aplicarse
para mitigar el impacto de un ataque.

¿Cuándo debe realizarse el análisis de vulnerabilidades?


Cuando se producen cambios en el diseño o actualizaciones de dispositivos de red, o incluso en
ausencia de tales situaciones, es importante realizar análisis de vulnerabilidades de forma
periódica. Las vulnerabilidades pueden surgir en diferentes áreas y se pueden clasificar en
vulnerabilidades de implementación, configuración, dispositivo, protocolo y aplicación.
Los enfoques de caja negra y caja blanca, utilizados en las pruebas de sistemas tradicionales,
también son aplicables en las pruebas de aplicaciones web. En el enfoque de caja negra, el
analista solo tiene acceso a la información básica de acceso a la red o al sistema, como una
dirección IP, y debe obtener toda la información posible a partir de esta limitada visión.

Por otro lado, en el enfoque de caja blanca, el analista de seguridad cuenta con una visión
completa de la red y tiene acceso a todos los equipos con los permisos de usuario más elevados.
Este método de análisis ofrece una visión más detallada y exhaustiva de las vulnerabilidades
presentes en el sistema.

Dentro de las herramientas que se pueden utilizar para realizar un análisis de vulnerabilidades, se
encuentran:

Escaneo de puertos;
Detección de vulnerabilidades;
Analizador de protocolos;
Passwords crackers;
Trashing.

Pasos para el análisis de vulnerabilidades


1. Acuerdo de confidencialidad entre las partes. Es crucial reconocer la importancia del
análisis de vulnerabilidades, ya que durante este proceso se pueden obtener datos críticos para la
organización evaluada. Desde la perspectiva de la organización, es esencial establecer una
relación de confianza sólida con la entidad que realiza el análisis. El acuerdo de confidencialidad
proporciona un marco legal para esta colaboración, ofreciendo un respaldo formal a la labor
realizada y asegurando la protección de la información sensible durante todo el proceso.

2. Establecer las reglas de juego. Antes de iniciar el análisis, es fundamental establecer


claramente las tareas a realizar y definir los límites, permisos y obligaciones que se deben
respetar durante el proceso. Durante el análisis, se debe mantener informada a la menor cantidad
de personas posible, asegurando que el uso de los sistemas y dispositivos sea normal y evitando
cualquier cambio en la forma de trabajo habitual.

3. Reunión de información. Es crucial tener claro el objetivo de la prueba y comunicar


claramente la técnica que se utilizará. En el caso de una prueba de caja negra, el proceso de
análisis será similar al seguido por un atacante, donde se buscarán vulnerabilidades sin acceso
directo al código o estructura interna del sistema. Por otro lado, en una prueba de caja blanca, se
recopilará y compartirá toda la información de acceso a servicios, hosts y dispositivos, así como
los detalles de direccionamiento y cualquier otra información relevante para la evaluación de
seguridad.

4. Prueba interior. Para esta prueba, se requiere la provisión de una computadora estándar, así
como un nombre de usuario y una contraseña de acceso correspondientes a un usuario común.
La prueba consiste en demostrar los alcances de los privilegios de un usuario típico dentro de la
organización.

¿Qué pruebas se hacen?

Revisión de privacidad
Pruebas de detección de intrusos
Descifrado de contraseñas
Pruebas de denegación de servicios
Evaluación de políticas de seguridad

5. Test exterior. Consiste en acceder en forma remota a los servidores de la organización y


obtener privilegios o permisos que no deberían estar disponibles.

¿Qué pruebas se hacen?

Sondeo de red
Identificación de los servicios de sistemas
Búsqueda y verificación de vulnerabilidades

6. Registración e informe. Como finalización del análisis de vulnerabilidades, se debe presentar


un informe donde se detalle cada una de las pruebas realizadas y los resultados asociados. El
informe debe incluir los siguientes elementos:

Una lista de las vulnerabilidades probadas.


Una lista de las vulnerabilidades detectadas
Una lista de los servicios y dispositivos vulnerables
El nivel de riesgo que involucra cada vulnerabilidad encontrada.

También, como anexo, se deben incluir los resultados de los programas utilizados.

7. Pruebas de penetración. Durante el test de penetración se simula ser un atacante con el fin
de evaluar la seguridad de un sistema. Desde esta posición, se llevan a cabo varios intentos de
ataques a la red con el objetivo de identificar debilidades y vulnerabilidades. Este proceso es
similar al análisis de vulnerabilidades, pero implica una simulación más activa de los métodos
utilizados por un atacante real.

¿Cómo se realizan las pruebas de penetración?

Estudio de la red externa


Análisis de servicios disponibles
Estudio de debilidades
Análisis de vulnerabilidades en dispositivos de red
Análisis de vulnerabilidades de implementaciones y configuraciones
Denegación de servicio.

El resultado del test de penetración mostrará una idea general del estado de la seguridad de los
sistemas frente a los ataques. El informe final debería temer la siguiente información:

Pruebas de seguridad realizadas en las pruebas.


Lista de vulnerabilidades y debilidades encontradas.
Referencia técnica a estas vulnerabilidades y sus contramedidas.
Recomendaciones.

A continuación, se dan una serie de estándares que existen para llevar adelante las pruebas de
seguridad. Se desarrollarán mínimamente, pero a la hora de aplicarlos, deberán ser consultados
para tomarlos en su versión última.
1. Metodología OSSTMM (2003)
Open source security testing methodology manual, en español, Manual de la metodología abierta
de pruebas de seguridad. Es un estándar de referencia creado por el ISECOM para llevar
adelante las pruebas de seguridad en forma ordenada y de calidad profesional.

Dimensiones de seguridad alcanzadas por la metodología

Seguridad de la información
Seguridad de los procesos
Seguridad en las tecnologías de internet
Seguridad en las comunicaciones
Seguridad inalámbrica
Seguridad física

2. Metodología ISSAF (Information System Security Assessment)


El framework de esta metodología es el proyecto del OISSG (Open information system security
group, 2005). Constituye un framework detallado respecto de las prácticas y conceptos
relacionados con las tareas para conducir pruebas de seguridad. Puede involucrar desde
administración de proyectos de pruebas de seguridad, hasta técnicas tan puntuales, como la
ejecución de pruebas de inyección de código SQL (SQL injection) o como las estrategias del
cracking de contraseñas.

La información está organizada alrededor de lo que se ha dado en llamar «criterios de


evaluación», que se componen de los siguientes elementos:

Una descripción del criterio de evaluación.


Puntos y objetivos a cubrir.
Los prerrequisitos para conducir la evaluación.
El proceso mismo de evaluación.
El informe de los resultados esperados.
Las contramedidas y recomendaciones.
Referencias y documentación externa.

3. Metodología OTP: OWASP Project Testing (2011)


El OTP pertenece a la Open Web Application Security Project, organización de voluntarios.

La primera parte de esta metodología contiene:


Principios y alcance del testeo;
Explicación de las técnicas de testeo;
Explicación general acerca del framework de testeo OWASP.

En la segunda parte, se planifican todas las técnicas necesarias para testear cada paso del ciclo
de vida del desarrollo de software.
Pruebas de accesibilidad
Las pruebas de accesibilidad se hacen empleando simuladores y tienen los siguientes aspectos a
cubrir:

Facilitar el acceso y la navegación en cualquier condición;


Intentar mejorar el acceso a la web de los usuarios en general;
También garantizar el acceso a la web de personas con discapacidad en particular.

El Consorcio World Wide Web (W3C) es una comunidad internacional donde las organizaciones
miembros, personal a tiempo completo y el público en general trabajan conjuntamente para
desarrollar estándares webs. Estableció un estándar técnico recomendado, el WCAG: Web
Content Accessibility Guidelines.

Las normas para lograr la accesibilidad de un sitio web se dividen en tres áreas, cada una con un
nivel de prioridad diferente. Estas áreas son secuenciales y pueden certificarse de forma
independiente.

Prioridad 1

Los puntos de verificación de esta prioridad tienen que ser satisfechos, porque, de lo contrario,
uno o más grupos de usuarios encontrarán imposible acceder a la información del documento.
Satisfacer este punto de verificación es un requerimiento básico para que algunos grupos puedan
usar estos documentos webs.

Prioridad 2

Los puntos de verificación de esta prioridad deben ser cumplidos, ya que, de lo contrario, uno o
más grupos podrían enfrentar dificultades para acceder a la información del documento. Cumplir
con este punto de verificación eliminará importantes barreras de acceso a los documentos webs.

Prioridad 3

Los puntos de verificación de esta prioridad pueden ser cumplidos, ya que, de lo contrario, uno o
más grupos de usuarios podrían encontrar dificultades para acceder a la información del
documento. Cumplir con este punto de verificación mejorará la accesibilidad de los documentos
webs.
Ejemplo de un checklist de seguridad
En este ejemplo se presentan una serie de puntos que deben ser verificados para determinar si el
sitio web analizado cumple con las características de seguridad recomendadas. Se marca «sí» o
«no» y se espera que el objeto bajo prueba cumpla con la mayoría o todos ellos. Este es solo un
ejemplo demostrativo de cómo se puede construir, y no debe ser utilizado como un conjunto
completo ni con fines estadísticos.

¿Funciona correctamente y no presenta fallas al navegar por sus páginas o utilizar sus
servicios?
¿Todos los vínculos tienen una página asociada y el contenido adecuado al vínculo
señalado?
Frente a una búsqueda, ¿los resultados se muestran correctamente?
¿Los servicios ofrecidos son realizados a través de canales de transacción seguros?
¿En los temas que requieren de accesos restringidos, provee algún medio para validar el
acceso, solicitando usuario y clave?
¿Se evita que sea visto el nombre de los programas y los directorios?
¿Los datos privados, ingresados por los usuarios, son guardados de manera reservada?

Ejemplo de un checklist de accesibilidad


Se presenta un ejemplo de los puntos que podría contener un checklist de accesibilidad para
evaluar si el sitio web analizado cumple con las características de accesibilidad recomendadas. Al
igual que en el anterior, se marca «sí» o «no» y se espera que el objeto bajo prueba cumpla con
ellos. Este es solo un ejemplo demostrativo de cómo se puede construir, y no debe ser utilizado
como un conjunto completo ni con fines estadísticos.

¿La información transmitida a través de los colores también está disponible sin depender del
color?
¿El contenido del documento está redactado en un lenguaje claro y comprensible?
¿Las páginas que utilizan nuevas tecnologías, como los plug-ins de flash, siguen siendo
funcionales cuando dicha tecnología no está disponible?
¿Se proporciona un texto equivalente para describir el contenido de elementos no textuales,
como imágenes, a usuarios con discapacidad visual?
¿Los elementos de las páginas pueden ser activados por el usuario utilizando diferentes
dispositivos, como el mouse o el teclado, en lugar de depender de uno en particular?
¿Se ofrecen elementos de navegación claros y fácilmente identificables?

Las pruebas heurísticas consisten en un análisis realizado por expertos con criterio sobre las
pantallas que se ofrecen a los usuarios. Estas pruebas son complementarias a las pruebas de
usabilidad, las cuales son realizadas por usuarios o con enfoque hacia los usuarios.

La prueba mide si se cumplen los estándares que se usan en la Internet. “Esta evaluación detecta
aproximadamente el 42 % de los problemas graves de diseño y el 32 % de los problemas
menores, dependiendo del número de evaluadores que revisen el sitio” (López Cisternas, 2012,
p.16).

Las características son las siguientes:

Los evaluadores trabajan individualmente.


Se recomienda una recorrida completa al menos 2 veces antes.
Las sesiones duran 1 o 2 horas.
Se confecciona lista de problemas analizados separadamente.
Se realiza una jerarquización de los problemas detectados.

Por otro lado, los factores que miden la gravedad de los problemas son los siguientes:

Frecuencia: ¿es común que ocurra o poco frecuente?


Impacto: cuando sucede, ¿es fácil o no superarlo?
Persistencia: ¿es resuelto o se vuelve a presentar?

Jacob Nielsen estableció diez principios de usabilidad universalmente aplicados, que se


consideran el conjunto más adecuado para medir las características de usabilidad de un software,
sitio web o portal. Estos principios fueron presentados en su libro Usability Engineering (1993).

1. “Visibilidad del estado del sistema. La prueba mide si el usuario siempre sabe qué está
haciendo el sistema. Se revisa si existen los diferentes elementos que ayudan a esto:

Indicación gráfica de donde se encuentra (ruta de acceso desde portada)


Indicación de que ha visto (marcar los enlaces visitados)
Indicación de que hay un proceso en marcha (anunciando estado de avance...)
Indicación de cuántos pasos faltan para terminar (como en el caso de que ya a un proceso
de registro en el Sitio Web

2. Similitud entre el sistema y el mundo real. La prueba mide si el sitio se expresa de una
manera comprensible para el usuario. Para ello, se revisa si se emplean las convenciones
habituales y que le permiten operar en el sitio web.

3. Control y libertad del usuario. La prueba mide si los usuarios que se equivocan al hacer algo
tienen forma de recuperarse de esos errores. Se revisa si existen formas de hacerlo. Por ejemplo,
¿se puede deshacer una operación? ¿Se puede rehacer una operación?

4. Consistencia y cumplimiento de estándares en el sitio web. Para ello se debe validar y


revisar el sitio con las herramientas que se ofrecen en http://www.w3c.org para HTML y CSS.

5. Prevención de errores. La prueba permite validar si se cuenta con mecanismos que aseguren
que el ingreso de cualquier información, por parte del usuario, permite evitarle errores. Para ello,
se verifica si en las áreas en que los usuarios deben interactuar con el sistema, se les explica
claramente lo que se espera de ellos. Por ejemplo:

Uso de JavaScript para validar formularios, para que todos los campos obligatorios sean
llenados, para que el número de RUT sea ingresado correctamente, etc.
Uso de elementos destacados en los formularios, es decir, indicar los campos obligatorios
con asteriscos (*), o bien campos obligatorios marcados con color.

6. Preferencia al reconocimiento que a la memorización. La prueba permite revisar si el sitio


web ayuda al usuario a recordar cómo se hacía una operación, o bien le obliga a aprenderse los
pasos cada vez que ingresa. Para conseguir este objetivo se verifica la existencia de una línea
gráfica uniforme en todo el sitio web (mediante la cual el usuario entiende lo que se le ofrece con
solo mirarlos) y si se cuenta con un sistema de navegación coherente.

7. Flexibilidad y eficiencia de uso. La prueba permite revisar si se ofrecen soluciones diferentes


de acceso a los contenidos, a los usuarios novatos respecto de los expertos. Por ejemplo, se
puede contar con botones para los primeros y atajos de teclado para el experto. También es
importante medir en esta prueba la carga rápida de los sitios mediante una buena construcción
del código.

8. Estética y diseño minimalista. La prueba pide que los elementos que se ofrezcan en la
pantalla tengan una buena razón para estar presentes. Se verifica la existencia de elementos
irrelevantes (texto, sonido e imagen), que no aportan ni ayudan a que el usuario distinga lo
importante de lo superfluo. Para ello, se verifica la existencia de estos elementos:

Jerarquías visuales, que permiten determinar lo importante con una sola mirada.
Tamaño de imágenes, que no afectan la visión general de la información del sitio web; se
verifica tanto tamaño como peso.

9. Ayuda ante errores. Se verifica que el usuario sepa cómo enfrentar problemas en una página
tanto online como offline; entre los elementos que se miden, se cuentan los siguientes:

Mensaje 404 personalizado, con el fin de ofrecer una información y navegación alternativa
cuando una página no es encontrada.
Mensaje de falla ofrece una alternativa offline (teléfono, mesa de ayuda) que permite que el
usuario mantenga su confianza en la institución.

10. Ayuda y documentación: se revisa que el sitio web ofrezca ayuda relevante de acuerdo con
el lugar en que el usuario esté visitando; también se revisa la existencia de sistemas de búsqueda
que permiten al usuario encontrar los elementos de ayuda que sean relevantes de ofrecer
(preguntas frecuentes; páginas de ayuda)” (Gobierno de Chile, s.f., p.61-62).

3. Pruebas de usabilidad
Para Jacob Nielsen (1993), la usabilidad es la propiedad de un sistema según su facilidad en
relación con la usabilidad, utilización y aprendizaje. De acuerdo con la norma ISO 9126 (2001), es
la “capacidad de un software de ser comprendido, aprendido, usado y ser atractivo para el
usuario, en condiciones específicas de uso” (Ecured, s.f. https://bit.ly/2QDbBY7). Por su parte, en
la norma ISO 9241 (2008) se define la usabilidad como “la eficiencia y satisfacción con la que un
producto permite alcanzar objetivos específicos a usuarios específicos en un contexto de uso
específico” (UTM, s.f. https://bit.ly/2UsfBcW).

La usabilidad es una amplia disciplina comprometida con los problemas de los usuarios al trabajar
con la aplicación. Esta disciplina considera:

Aspectos de diseño;
De uso;
Facilidad de aprendizaje.

Las pruebas de usabilidad, entonces, revisan una serie de factores con el fin de establecer si
cumplen con las necesidades de los usuarios. Son realizadas con usuarios o bien con orientación
a usuarios.

Para hacer las pruebas de usabilidad, es necesario conocer los siguientes aspectos:

Funcionalidad mínima requerida. ¿Cuál es la información esencial que un usuario


necesita para interactuar con el sitio web? Comenzar con un diseño simple y luego agregar
elementos según sea necesario.
Limitaciones del usuario. Esto incluye restricciones como ancho de banda, tipos de
navegador, nuevas interfaces (PDA, WAP, WebTV), complementos (plug-ins), y plataformas.
Preferencias del usuario. Considerar las preferencias individuales de los usuarios en
términos de diseño, navegación y personalización.
Hábitos del usuario. Entender cómo los usuarios interactúan con el sitio web, incluyendo
patrones de navegación y comportamientos comunes.
Sistemas existentes. Identificar otros sistemas con los que los usuarios interactúan
regularmente, como teléfonos, formularios, sistemas mecánicos y paneles de control.
Aspectos no deseados por el usuario. Esto puede incluir aspectos negativos como
tiempos de respuesta lentos del servidor o descargas de gráficos excesivamente
prolongadas.
Datos demográficos del usuario. Recopilar información relevante sobre los usuarios,
como edad, nivel de educación, experiencia en Internet, sitios web que más utilizan,
ubicación geográfica, y cantidad de dispositivos en el hogar.​​
Herramientas utilizadas
Se pueden emplear diversas herramientas para conocer aspectos relacionados con las
preferencias y hábitos de los distintos tipos de usuarios, con el fin de llevar a cabo pruebas de
usabilidad. Esto se debe a que no es lo mismo probar un sistema para el cobro de jubilaciones en
línea que para la inscripción a exámenes universitarios. El primero está dirigido a personas
jubiladas, mientras que el segundo está dirigido a estudiantes universitarios. Se presentan
diferencias en cuanto a edades, niveles de estudio y familiaridad con sistemas informáticos.

Las herramientas que se pueden utilizar para abordar estas cuestiones pueden ser (esta lista es
meramente enunciativa, ya que se pueden emplear otras herramientas con el mismo propósito):

1. Card sort. También conocido como ordenamiento de tarjetas, este método apunta a descubrir
lo primero que los usuarios observan. Se trata de una técnica para la clasificación de contenidos
de manera que un usuario pueda organizar la información según su estructura mental, facilitando
así la interacción. Consiste en crear categorías organizadas desde el diseño que se ajusten a la
estructura mental del usuario. El proceso puede ser abierto cuando es completamente libre, o
cerrado cuando las categorías están predefinidas. Este método tiene ventajas como su fácil
realización, bajo costo y la posibilidad de involucrar directamente a los usuarios en el diseño. Sin
embargo, una desventaja es que los resultados pueden ser muy diversos. En tales casos, una
solución es combinar esta técnica con otras de usabilidad.
Los pasos que se siguen en esta técnica son los siguientes:

Se crean las tarjetas en un número controlado y con nombres cortos.


Se seleccionan los participantes entre los usuarios reales.
En la sesión de card sorting, se brindan los objetivos de manera clara. A veces, es necesario
un ensayo.
Se analizan los resultados agrupándolos según sean cualitativos o cuantitativos.

2. Entrevistas con los usuarios: diálogos con los usuarios sobre el sitio web.
3. Cuestionarios.
4. Test clásico.
5. Evaluación heurística realizada por expertos a partir de estándares.
6. Prototipado.
7. Estudio de campo.
8. Sesión automatizada: se realiza con navegador automático.
9. Pensamientos en voz baja: captura en momentos de confusión.

Tipos de pruebas de usabilidad


Las pruebas de usabilidad deben realizarse a lo largo de todo el ciclo de vida del desarrollo. En
etapas tempranas, pueden consistir en pruebas de una versión preliminar o incluso en pruebas
comparativas con competidores, ya que esto agregará valor al diseño. En etapas intermedias,
ayudan a validar el diseño y aportan oportunidades para refinarlo. Y en etapas posteriores,
aseguran que el producto cumpla con los objetivos de diseño. Estas pruebas pueden incluir los
siguientes elementos.

Pruebas de aceptación visual: “implica revisar la integración gráfica y probar que haya
consistencia visual y gráfica entre las páginas del sitio. Estas pruebas deben realizarse en
diferentes entornos, incluyendo distintas frecuencias de refresco, resoluciones de colores y
de pantalla, entre otros” (Ciolli, 2007, https://bit.ly/2L3h85h).
Pruebas de idioma: “resulta importante realizar pruebas reales en los idiomas que se
desea, donde no solo exista una prueba superficial, sino que se prueben las funcionalidades
del sitio en condiciones de uso reales, con el sistema operativo y el browser de los idiomas
seleccionados” (Ciolli, 2007, https://bit.ly/2L3h85h).
Pruebas de contenidos. Es una prueba básica para revisar si el desarrollo incluye todos los
contenidos que se han especificado. Los elementos para considerar en las pruebas de
contenidos son los siguientes:

1. Verificación de ortografía y redacción


2. Verificación de enlaces principales
3. Verificación de imágenes y gráficos
4. Verificación de existencia de archivos adjuntos

Clasificación de las técnicas: sondeo, inspección y auxiliares


Dentro de las técnicas y herramientas utilizadas en las fases de desarrollo para mejorar la
usabilidad de un producto, la lista es casi interminable. Algunas ya han sido mencionadas y
descritas, y todas contribuyen a la calidad de la usabilidad, ya sea en el momento del diseño, la
construcción o las pruebas.
Se presenta una clasificación que permite organizar esta lista, pero está lejos de ser definitiva, ya
que cada organización desarrolladora de aplicaciones web y tradicionales (que requieran una
cuidada interfaz de usuario) puede crear y diseñar sus propias técnicas para abordar los puntos
que necesiten mejorar. Se las agrupa en tres categorías, a saber:

1. Técnicas de sondeo

Estas técnicas se centran en descubrir la información adecuada en el momento oportuno:

Encuestas de contexto. Consisten en recopilar datos relevantes sobre el contexto en el


que se utilizará el producto o sistema.
Estudio etnográfico u observación de campo. Implica observar cómo los usuarios
interactúan con el sistema en su entorno natural de trabajo, en lugar de en un laboratorio
controlado.
Entrevistas a grupos objetivo o focus group. Son entrevistas formales programadas con
grupos completos de usuarios. Durante estas entrevistas:

Se plantean preguntas sobre aspectos específicos de interés;


Se fomenta el intercambio de ideas y la discusión entre los participantes;
Se extraen conclusiones para informar el desarrollo del producto o sistema.

Encuestas personales o cuestionarios. Estas entrevistas implican la interacción con


usuarios, quienes responden a un conjunto de preguntas predefinidas. Durante estas
entrevistas, los usuarios tienen la oportunidad de comentar sus respuestas, y se recopilan
tanto sus comentarios como la forma en que se expresan, así como también lo que no
expresan. Aunque estas entrevistas pueden parecerse a las encuestas de contexto y los
cuestionarios, se diferencian de las primeras en que no están estructuradas, y de los
segundos en que son interactivas. En otras palabras, permiten una mayor flexibilidad en las
respuestas y fomentan la participación activa del usuario en la conversación.
Sesiones capturadas o logs autorreportados. Se trata de pruebas que se llevan a cabo
de forma remota, donde se graban las acciones que los usuarios realizan mientras
interactúan con una maqueta del sitio web que está siendo analizado. En el caso de los
registros autoinformados, los usuarios completan formularios en papel diseñados
específicamente, describiendo la secuencia de acciones que llevaron a cabo para realizar
cada tarea que se está analizando. Estas pruebas tienen la ventaja de permitir que los
usuarios expresen consideraciones subjetivas sobre su experiencia personal al realizar cada
acción.

2. Técnicas de inspección

Ensayo cognitivo. Consiste en elaborar escenarios de tareas basados en las


especificaciones de una maqueta, asumiendo el papel de un usuario y simulando la
realización de dichas tareas a través de la interfaz de usuario propuesta. Durante este
proceso, se registra paso a paso lo que haría un usuario. Se identifican los puntos en los
que el usuario se bloquea o no logra completar una tarea, lo que indica la necesidad de
revisar la interfaz para simplificar la ejecución de la tarea.
Inspecciones formales de usabilidad. Estas inspecciones se llevan a cabo como cualquier
otra inspección dentro de las pruebas estáticas.
Inspección de características, consistencia y estándares. Estas inspecciones se realizan
como parte de las pruebas estáticas, y abarcan la evaluación de diferentes aspectos del
producto en términos de características, consistencia y cumplimiento de estándares.
Guías de consulta y checklist de usabilidad. Las guías de consulta describen los principios a
tener en cuenta en el diseño y desarrollo de una aplicación web o sitio web para garantizar
su usabilidad. Estas guías proporcionan un conjunto de pautas y principios para orientar el
proceso de diseño y desarrollo hacia la usabilidad deseada.

3. Técnicas auxiliares

Prototipado. Existen varios tipos de prototipado:

Prototipado rápido. Se enfoca en desarrollar prototipos de manera rápida para probar


ideas y conceptos antes de invertir recursos significativos en el desarrollo completo del
producto.
Prototipado evolutivo. Requiere un esfuerzo considerable durante la implementación del
prototipo inicial para que posteriormente sea fácilmente transformado en el producto final, lo
que permite una evolución gradual del diseño.
Prototipado modular (o incremental). Se añaden partes al prototipo a medida que avanza
el ciclo de desarrollo, lo que facilita la integración de nuevas funcionalidades de manera
progresiva.
Prototipado horizontal. La maqueta cubre múltiples funcionalidades, pero solo algunas
están operativas para las pruebas, lo que proporciona una visión completa del producto en
su conjunto.
Prototipado vertical. La maqueta cubre un número limitado de funcionalidades, pero estas
funcionan y pueden ser probadas, lo que permite evaluar aspectos específicos del producto
en detalle.
Prototipado de baja fidelidad. Se diseña la maqueta con lápiz y papel, acompañada de
explicaciones. Es un método rápido y económico que proporciona una representación
esquemática del diseño, similar a un croquis en el contexto de un proyecto de construcción.
Prototipado de alta fidelidad. La maqueta se diseña para que sea lo más parecida posible
al producto final en términos de apariencia y funcionalidad.

Por otro lado, tenemos las siguientes técnicas auxiliares:

Diagramas de afinidad. Método de categorización en el que los usuarios clasifican varios


conceptos en categorías, utilizado para organizar un gran número de conceptos según las
relaciones naturales entre ellos.
Votación ciega. Método en el que los participantes votan de manera anónima sobre
diversas opciones o ideas, sin conocer las preferencias de los demás, para tomar decisiones
de manera imparcial.
Card sorting. Técnica que implica que los usuarios organicen y clasifiquen tarjetas con
elementos de contenido en categorías predefinidas, facilitando la comprensión de la
estructura de la información y la navegación del sitio web.

Referencias
Ciolli, M. E. (2007). Testing de migración de aplicaciones distribuidas a entornos web [tesis de
maestría].
http://sedici.unlp.edu.ar/bitstream/handle/10915/4148/Documento_completo.%20Elena.pdf?
sequence=1

Ecured, (s.f.) Usabilidad. https://www.ecured.cu/Usabilidad

Gobierno de Chile, (s.f.). Diseño web y estándares.


http://www.guiadigital.gob.cl/guiaweb_old/guia/archivos/Capitulo_III.pdf
López Cisternas, M. (2012). Métodos de evaluación de usabilidad para aplicaciones web
transaccionales [tesis de grado]. http://opac.pucv.cl/pucv_txt/txt-3000/UCF3276_01.pdf

Nielsen, J. (1993). 10 Usability Heuristics for User Interface Design. Prentice Hall.

Pressman, R. (2006). Ingeniería de software. Un enfoque práctico (6.ta. ed.). McGraw-Hill.

UTM, (s.f.) Usabilidad. http://www.utm.mx/usabilidad.html

También podría gustarte