Krypton Solid

La última tecnología en raciones de 5 minutos

Métodos de prueba de software para el examen CISSP

Métodos de prueba del software CISSP Study Guide

En Guía de estudio de CISSP, los autores Eric Conrad, Seth Misenar y Joshua Feldman analizan la seguridad del desarrollo de aplicaciones, incluidos los métodos de prueba de software como fuzzing y pruebas de software combinatorias.

El siguiente extracto proviene del Capítulo 9: Dominio 8: seguridad de desarrollo de aplicaciones (pdf).

Métodos de prueba de software

Existe una variedad de métodos de prueba de software. Además de probar las características y la estabilidad del software, las pruebas se enfocan cada vez más en descubrir errores específicos del programador que podrían conducir a vulnerabilidades que ponen en riesgo el sistema, incluida una verificación de falta de límites.

Las pruebas estáticas prueban el código de forma pasiva: el código no se está ejecutando. Esto incluye tutoriales, verificación de sintaxis y revisiones de código. Las pruebas dinámicas prueban el código mientras lo ejecutan.

Las pruebas de software de caja blanca le dan al probador acceso al código fuente del programa, estructuras de datos, variables, etc. Las pruebas de caja negra no brindan al probador detalles internos: el software se trata como una caja negra que recibe entradas.

Se puede utilizar una Matriz de trazabilidad (a veces denominada Matriz de trazabilidad de requisitos o RTM) para mapear los requisitos de los clientes con el plan de pruebas de software: “rastrea” los “requisitos” y garantiza que se envíen.

Niveles de prueba de software
Por lo general, es útil abordar el desafío de probar el software desde múltiples ángulos, abordando varios niveles de prueba, de menor a mayor. Los niveles de prueba de software de Pruebas unitarias, Pruebas de instalación, Pruebas de integración, Pruebas de regresión y Pruebas de aceptación están diseñados para lograr ese objetivo:

  • Pruebas unitarias: pruebas de bajo nivel de componentes de software, como funciones, procedimientos u objetos.
  • Prueba de instalación: prueba del software tal como se instala y se abre por primera vez
  • Prueba de integración: prueba de varios componentes de software a medida que se combinan en un sistema de trabajo. Se pueden probar subconjuntos, o las pruebas de integración de Big Bang prueban todos los componentes de software integrados
  • Prueba de regresión: prueba de software después de actualizaciones, modificaciones o parches
  • Pruebas de aceptación: pruebas para garantizar que el software cumpla con los requisitos operativos de los clientes. Cuando esta prueba la realiza directamente el cliente, se denomina Prueba de aceptación del usuario.

Fuzzing
Fuzzing (también llamado fuzz testing) es un tipo de prueba de caja negra que ingresa datos aleatorios con formato incorrecto como entradas en programas de software para determinar si fallarán. Es probable que un programa que se bloquea cuando recibe una entrada mal formada o inesperada sufra un problema de verificación de límites y puede ser vulnerable a un ataque de desbordamiento del búfer.

El fuzzing es típicamente automatizado, presenta repetidamente cadenas de entrada aleatorias como interruptores de línea de comando, variables de entorno y entradas de programa. Cualquier programa que se bloquee o se cuelgue no pasó la prueba de fuzz.

Pruebas de software combinatorias
La prueba combinatoria de software es un método de caja negra que busca identificar y probar todas las combinaciones únicas de entradas de software. Un ejemplo de prueba de software combinatoria es la prueba por pares (también llamada prueba de todos los pares).

NIST da el siguiente ejemplo de prueba por pares. “Supongamos que queremos demostrar que una nueva aplicación de software funciona correctamente en PC que utilizan el sistema operativo Windows o Linux, procesadores Intel o AMD y los protocolos IPv4 o IPv6. Esto es un total de 2 x 2 x 2 = 8 posibilidades, pero como muestra la tabla a continuación, solo se requieren cuatro pruebas para probar cada componente que interactúa con todos los demás componentes al menos una vez. En este método combinatorio más básico, conocido como prueba por pares, al menos una de las cuatro pruebas cubre todos los pares posibles (t = 2) de valores entre los tres parámetros «.

Ejemplo de prueba por pares de NIST

Caso de prueba

SO

UPC

Protocolo

1

Ventanas

Intel

IPv4

2

Ventanas

AMD

IPv6

3

Linux

Intel

IPv6

4

Linus

AMD

IPv4

Descarga el capítulo completo (pdf).

Reimpreso con permiso de Elsevier Inc. Copyright 2011. «Guía de estudio de CISSP» por E. Conrad, S. Misenar y J. Feldman. Para obtener más información sobre este título y libros similares, visite la página del libro en el sitio web del editor.

Deja un comentario

También te puede interesar...

Definición de sucesión

¿Qué es un testamento? Un testamento es el término para un proceso legal en el que se revisa un testamento para determinar si es válido y auténtico. El testamento también se refiere a la administración

IBM alphaWorks: de la teoría del software a los hechos

La web semántica, el desarrollo rápido de aplicaciones, la visualización de datos y las aplicaciones de atención médica son solo algunos de los tipos emergentes de software investigados por la división alphaWorks de IBM. Fundada

Evaluación de los mejores MDM para Android e iOS

Cuando se trata de elegir una plataforma de administración de dispositivos móviles, hay varios factores a considerar, como el soporte del sistema operativo, la seguridad, el presupuesto, la experiencia del usuario y los informes. Las

Ventajas y desventajas de las anualidades híbridas

Los planificadores de pensiones han utilizado las anualidades durante años para proporcionar un aumento de impuestos diferidos y un ingreso garantizado. Pero uno de los mayores golpes que la mayoría de los críticos citan contra

Perspectiva adolescente: atención a la wiki

Soumya Srinagesh, pasante de News.com, que ingresará a Wellesley College este otoño, proporciona información sobre el debate de Wikipedia. Wikipedia ha recibido mucha atención en los medios últimamente, estando llena de calumnias, mentiras y, en

Cómo aumentar significativamente tu puntuación en Snapchat

Consejo: Si quieres aumentar tu puntaje en Snapchat, aquí tienes algunas estrategias para ayudarte. Primero, intenta publicar regularmente contenido interesante en tus historias para que tus amigos interactúen con ellas. Cuanto más actividad generes, mayor

Definición del índice de coste laboral (ECI).

¿Qué es el Índice de Costo del Empleo (ECI)? El Índice de Costo Laboral (ECI) es una serie económica trimestral publicada por la Oficina de Estadísticas Laborales, que detalla el aumento en la compensación total

Cómo redactar un testamento sencillo

Un testamento simple, también llamado «testamento básico», determina lo que quiere que suceda con su propiedad después de su muerte. Si alguna vez se ha preguntado quién recibirá su anillo de bodas, heredará la casa

Error relacional Krypton Solid

Si alguna vez se ha preguntado qué mató a los 4GL, la respuesta es un error, uno que penetra casi todo en TI, desde aproximadamente 1969 hasta la actualidad. El modelo relacional de Codd no