Computing">
M3L4
M3L4
M3L4
Estos y otros más son los interrogantes que se intentará responder dentro de esta unidad.
Se instala.
Necesita bibliotecas especiales.
Es estática.
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:
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.
Los pasos propuestos por Pressman (2006) pueden clasificarse en tres grupos: revisiones
(pruebas estáticas), pruebas dinámicas y pruebas con usuarios reales:
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.
5. Pruebas de rendimiento.
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.
La siguiente lista resume los puntos que comprende la seguridad de una red.
Por otro lado, entre las técnicas que incorporan las pruebas de seguridad, encontramos las
siguientes:
Análisis de vulnerabilidades
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.
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.
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
Sondeo de red
Identificación de los servicios de sistemas
Búsqueda y verificación de vulnerabilidades
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.
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:
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.
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
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:
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?
¿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).
Por otro lado, los factores que miden la gravedad de los problemas son los siguientes:
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:
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?
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.
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:
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:
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.
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. Técnicas de sondeo
2. Técnicas de inspección
3. Técnicas auxiliares
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
Nielsen, J. (1993). 10 Usability Heuristics for User Interface Design. Prentice Hall.