Want to create interactive content? It’s easy in Genially!

Get started free

estrategias de prueba de software

Rocio Palma

Created on May 4, 2021

Start designing with a free template

Discover more than 1500 professional designs like these:

Akihabara Connectors Infographic

Essential Infographic

Practical Infographic

Akihabara Infographic

The Power of Roadmap

Artificial Intelligence in Corporate Environments

Interactive QR Code Generator

Transcript

Estrategias de prueba de software

Aplicar estrategias para verificar el software utilizado en la organización aplicando métricas y de acuerdo con el plan de Aseguramiento de la Calidad del Software (ACS

4.4 Administración de la configuración del software

4.1 Enfoque estratégico

4.5 Métricas de producto

4.2 Estrategia de prueba

4.3 Modelado y verificación forma

4.6 Seguridad

Enfoque estratégico

(Pressman, 2010)

Una estrategia es un conjunto de acciones que se llevan a cabo para lograr un determinado fin. La palabra estrategia proviene del griego ΣΤΡΑΤΗΓΙΚΗΣ Stratos = ejército y Agein = conductor, guía. Por lo tanto, el significado primario de estrategia es el arte de dirigir las operaciones militares. Es una palabra muy amplia cuyo significado varía según el contexto donde se la aplica. Por ejemplo: − Estrategia empresaria: se refiere al camino a seguir por una empresa para el logro de sus metas y objetivos. − Estrategia de marketing: área del marketing destinada a planear, determinar y coordinar las actividades operativas.

Tomar Decisiones Estratégicas (Make strategy decisions). Su objetivo es seleccionar las estrategias más prometedoras a partir de una lista de potenciales estrategias que permiten el logro de los objetivos. Esta actividad consta de dos tareas o subactividades. La primera es Identificar la lista de las estrategias potenciales para el logro de los objetivos empresariales. La segunda actividad es Seleccionar la estrategia más prometedora. La selección se realiza mediante la consideración de la relación costo-beneficio, y teniendo en cuenta, los factores de contexto y las suposiciones que restringen la factibilidad de las potenciales estrategias.

Estratégia de Prueba

La estrategia de prueba de software sirve como indicador describiendo los pasos que en cada etapa de la prueba se deben realizar además de indicar el plan de acción, los recursos, el esfuerzo y tiempo a utilizar. Esta compuesta por : la planificación de la prueba, el diseño de casos de prueba, la ejecución de la prueba , ,y la recolección y evaluación de los resultados. Dicha estrategia debe permitir adecuarse a las necesidades específicas solicitadas, así como establecer una planificación y gestión de la misma para llevar a buen término el proyecto.

1.2.1 Estrategia para software convencional. Esta estrategia es utilizada para diferentes modelos de desarrollo de software, desde el modelo en cascada hasta las metodologías agiles en las cuales las estrategias convencionales son muy diferentes, por ejemplo: 1. Modelo Cascada: Terminar el software y aplicar las pruebas esperando a detectar TODOS los errores 2. Modelo V: Aplicar Pruebas cada que se construya una parte del sistema permitiendo detectar los errores en el momento

1. Pruebas unitarias o de componentes

En este sentido el Modelo V tiene diferentes niveles:

2. Pruebas de integración:

3. Pruebas de sistema

4. Pruebas de validación o aceptación

1.2.2 Estrategia de prueba para software orientado a objeto.

Maneja los mismos niveles que la convencional, pero lo presenta con toro enfoque: • Inician por lo particular y se dirigen hacia lo general, pero en este caso una clase o un conjunto de clases que colaboren entre si • Conforme se integran las clases se deberán hacer pruebas de regresión para identificar errores entre componentes • Al final se debe probar el sistema como un todo para encontrar los errores de requisitos

1.2.3 Estrategias de prueba para aplicaciones web.

Si bien las estrategias que se utilizan para las pruebas de aplicaciones web son las mismas que las convencionales, es necesario tomar en cuenta las siguientes dimensiones (Peño, 2015): • El contenido: se evalúa a nivel sintáctico y semántico. • La función: descubrir errores en función de los requerimientos del cliente. • La estructura: se entrega correctamente el contenido, es extensible y permite agregar nuevas funcionalidades. • La usabilidad: se asegura que la interfaz soporta a cada categoría de usuario. • La navegabilidad: descubrir errores de navegación, como links rotos, inadecuados y erróneos. • La performance: se prueba bajo funcionamientos extremos para asegurar que no sufre degradación. • La compatibilidad: se realizan pruebas para garantizar varias configuraciones de host, tanto en el cliente como en el servidor. • La interoperabilidad: se prueba para garantizar que interactúa correctamente con otras aplicaciones. • La seguridad: se realiza la evaluación de las potenciales vulnerabilidades.

¿Qué es?

4.3 Modelado y verificación forma

¿Cuántas veces ha escuchado a alguien decir “Hazlo bien desde la primera vez”? Si esto se lograra en el software, habría considerablemente menos esfuerzo empleado en lo innecesario. Dos métodos avanzados de ingeniería del software (ingeniería del software de cuarto limpio y métodos formales) ayudan al equipo de software a “hacerlo bien desde la primera vez” al proporcionar un enfoque basado en matemáticas para programar el modelado y la capacidad de verificar que el modelo es correcto. La ingeniería del software de cuarto limpio enfatiza la verificación matemática de la exactitud antes de que comience la construcción del programa y la certificación de la confiabilidad del software como parte de la actividad de prueba.

Los métodos formales usan teoría de conjuntos y notación lógica para crear un enunciado claro de los hechos (requerimientos) que pueden analizarse para mejorar (o incluso probar) la exactitud y la consistencia. La línea de base para ambos métodos es la creación de software con tasas de falla extremadamente bajas

4.3 Modelado y verificación forma

El modelado de proceso identifica cuáles son las principales características de las actividades realizadas para llevar a cabo un objetivo. Por lo tanto, un modelo de proceso es una abstracción de un proceso que lo específica en términos por ejemplo de sus actividades, agentes y artefactos que lo integran. Al realizar un modelo, utilizando una representación gráfica (diagrama de proceso) se pueden observar fácilmente las distintas interrelaciones que existen entre las actividades, dependencias, puntos de control y paralelismos. Esto se debe a que poseen una mayor expresividad que los documentos textuales. Los diagramas también permiten observar con mayor facilidad la existencia de problemas y luego tomar acciones para corregirlos, como así también permite identificar posibles aspectos de mejora

Un método representa el modo específico de realizar una actividad. Incluye una descripción clara del curso de acción a seguir y procedimientos (basados frecuentemente en primitivas de modelado y estándares) que se emplean para tratar una actividad o conjunto de actividades de un proceso. Muchas veces, los métodos pueden estar automatizados por herramientas.

Herramientas de modelado

Herramientas que sirven para validar modelos de software, como por ejemplo modelos de datos físicos (PDM) de una base de datos relacional, enumerando inconsistencia y localizando defectos [ISTQB].

Beneficios del modelado de procesos: − Facilita el entendimiento y la comunicación, lo cual implica que el modelo de proceso contiene suficiente información para su representación. Los modelos pueden ser usados como herramienta para formar al personal. − Da soporte a la gestión del proceso (planificación, monitoreo y control); para lo cual también se requiere un proceso definido. − Permite la automatización del proceso mejorando su rendimiento, lo que requiere un entorno efectivo, proporcionando a los usuarios: guías, instrucciones y material de referencia. − Provee soporte a la ejecución automatizada, para lo cual es necesario automatizar algunas partesdel proceso, soporte de trabajo colaborativo (en grupos), recopilar métricas y asegurar la integridad del proceso. − Brinda soporte a la mejora de los procesos, que necesita de la reutilización de procesos efectivos y bien definidos, la comparación de procesos alternativos y el soporte al desarrollo de procesos.

La ingeniería del software de cuarto limpio (modelo de software incremental)

INCREMENTO 1

BSS

CG

FD

CI

CV

RG

SUT

TP

IS

INCREMENTO 2

INCREMENTO 3

Las primeras cuatro actividades en el proceso de cuarto limpio establecen el escenario para las actividades normales de verificación que siguen. Por esta razón, el estudio del enfoque de cuarto limpio comienza con las actividades de modelado, que son esenciales para la verificación formal que se va a aplicar

Refinamiento de estructura de cajas

Una especificación de caja negra

Una especificación de caja de estado

La caja de estado es “una simple generalización de una máquina de estado”

Una especificación de caja clara

La especificación de caja clara está cercanamente alineada con el diseño procedural y con la programación estructuradaEn esencia, la subfunción g dentro de la caja de estado se sustituye con los constructos de programación estructurada que implementan g

DISEÑO DE CUARTO LIMPIO

El enfoque de programación estructurada puede usarse de manera efectiva para refinar funciones. Pero ¿qué hay del diseño? Aquí entran en juego algunos conceptos de diseño fundamentales . Los datos de programa se encapsulan como un conjunto de abstracciones que son atendidas por subfunciones. Los conceptos de encapsulamiento de datos, ocultamiento de información y escritura de datos se usan para crear el diseño de datos.

04

03

01

02

Refinamiento de diseño

Verificación de diseño

Pruebas de Cuarto Limpio

Certificación

TÍTULO AQUÍ

SUBTÍTULO AQUÍ

Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam

Debe observar que el uso de los constructos de programaciónestructurada restringen el número de pruebas de exactitud que deben realizarse. Una sola condición se verifica para secuencias; dos condiciones se prueban para if-then-elseo y tres condiciones se verifican para ciclo.

Adicionalmente, debe asegurarse de que el ciclo termina. Un examen de la condición loop indica que, dado que y se incrementa y x ≥ 0, el ciclo finalmente debe terminar

Pruebas de uso estadístico

La prueba de uso estadístico “equivale a examinar el software de la forma en la que los usuarios pretenden usarlo” [Lin94b]. Para lograr esto, los equipos de prueba de cuarto limpio (también llamados equipos de certificación) deben determinar una distribución de probabilidad de uso para el software. La especificación (caja negra) para cada incremento del software se analiza a fin de definir un conjunto de estímulos (entradas o eventos) que hacen que el software cambie su comportamiento. En la creación de escenarios de uso y en una comprensión general del dominio de aplicación, a cada estímulo se le asigna una probabilidad de uso con base en entrevistas con usuarios potenciales.

MÉTODOS FORMALES

Los métodos formales utilizados para desarrollar sistemas de cómputo son técnicas con base matemática para describir las propiedades del sistema. Tales métodos formales proporcionan marcos conceptuales dentro de los cuales las personas pueden especificar, desarrollar y verificar los sistemas en forma sistemática más que ad hoc.

Las propiedades deseadas de una especificación formal (consistencia, completitud y falta de ambigüedad) son los objetivos de todos los métodos de especificación

Un lenguaje de especificación formal por lo general se compone de tres componentes primarios:

un conjunto de relaciones que definen las reglas que indican cuáles objetos satisfacen adecuadamente la especifica

1) una sintaxis que define la notación específica con la que se representa la especificación

semántica para ayudar a definir un “universo de objetos” [Win90] que se usarán para describir el sistema y

El dominio sintáctico de un lenguaje de especificación formal con frecuencia se basa en una sintaxis que se deriva de la notación estándar de la teoría de conjuntos y del cálculo de predicados. El dominio semántico de un lenguaje de especificación indica cómo representa el lenguaje los requerimientos del sistema

4.4 Administración de la configuración del software

La administración de la configuración del software es un conjunto de actividades de rastreo y control que inicia cuando comienza un proyecto de ingeniería de software y sólo termina cuando el software se retira de la operación

¿Qué es? Cuando se construye software de computadora, ocurren cambios. Y puesto que ocurren, es necesario administrarlos de manera efectiva. La administración de la configuración del software (ACS), también llamada gestión del cambio, es un conjunto de actividades diseñadas para administrar el cambio mediante la identificación de los productos de trabajo que es probable que cambien, el establecimiento de relaciones entre ellos, la definición de mecanismos para administrar diferentes versiones de dichos productos de trabajo y el control de los cambios impuestos, así como la auditoría y reporte de los cambios realizados

4.5 Métricas de producto

Las métricas de software proporcionan una forma cuantitativa para valorar la calidad de los atributos internos de producto y, por tanto, permiten valorar la calidad antes de construir el producto. Las métricas proporcionan la comprensión necesaria para crear modelos efectivos de requerimientos y diseño, código sólido y pruebas amplias. Para ser útil en un contexto de mundo real, una métrica de software debe ser simple y calculable, convincente, congruente y objetiva. Debe ser independiente del lenguaje de programación y ofrecer retroalimentación efectiva

Las métricas para el modelo de requerimientos se enfocan en los tres componentes del modelo: la función, los datos y el comportamiento.

Las métricas para diseño consideranarquitectura, diseño en el nivel de componentes y conflictos en el diseño de interfaz.

Las métricas de diseño en el nivel de componente proporcionan un indicio de la calidad del módulo al establecer medidas indirectas para cohesión, acoplamiento y complejidad.

Las métricas de diseño arquitectónico consideran los aspectos estructurales del modelo de diseño.

Las métricas de diseño de interfaz de usuario ofrecen un indicio de la facilidad con la que puede usarse una GUI.

Las métricas webapp consideran aspectos de la interfaz de usuario, así como estética, contenido y navegación de la webapp.

Las métricas para los sistemas OO se enfocan en mediciones que pueden aplicarse a las características de clase y de diseño (localización, encapsulación, ocultamiento de información, herencia y técnicas de abstracción de objeto) que hacen única a la clase. La suite de métricas CK define seis métricas de software orientado a clase que se enfocan en la clase y en la jerarquía de clase. La suite de métricas también desarrolla métricas para valorar las colaboraciones entre clases y la cohesión en métodos que residen dentro de una clase. En un nivel orientado a clase, la suite de métricas CK puede aumentarse con las métricas propuestas por Lorenz y Kidd y con la suite de métricas MOOD. Halstead proporciona un interesante conjunto de métricas en el nivel del código fuente. Al usar el número de operadores y operandos presentes en el código, la ciencia del software proporciona una variedad de métricas que pueden usarse para valorar la calidad del programa. Pocas métricas de producto se han propuesto para uso directo en las pruebas de software y en el mantenimiento. Sin embargo, muchas otras métricas de producto pueden usarse para guiar el proceso de pruebas y como mecanismo para valorar la capacidad de mantenimiento de un programa de cómputo. Para valorar la comprobabilidad de un sistema OO, se ha propuesto una gran variedad de métricas OO.

4.6 Seguridad