Está en la página 1de 9

UNIVERSIDAD TECNOLÓGICA DE PANAMÁ

FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES


DEPARTAMENTO DE INGENIERÍA DE SOFTWARE

CARRERA DE LICENCIATURA EN INGENIERÍA DE SOFTWARE

ACTIVIDAD 3:
TÉCNICAS DE DISEÑO DE PRUEBAS

PERTENECE A:
TONY ZHU LING 8-894-1607
LUIS GONZALES 8-946-1130
ALFONSO ALVARADO 8-941-856
STEVEN MORALES 8-940-2354
LUIS TORRES 8-941-2351

FACILITADORA:
CARMEN ORTEGA

PANAMÁ 2019
Introducción

En este trabajo veremos en qué consisten las pruebas con grafos Causa-
Efecto, las máquinas de estados y las Matrices CRUD, lo cuales son
herramientas que nos pueden facilitar mucho el camino de la evaluación y
durante el desarrollo de cualquier programa.

1. Pruebas con Grado Causa-Efecto


○ Los grafos causa-efecto representan la relación lógica entre distintas
causas y los posibles efectos. Para esto se listan las causas
(entradas o acciones del usuario) y los efectos (salidas o acciones
del sistema esperadas), y luego se unen indicando relaciones entre
ellos.

Con esta representación estaremos mostrando las reglas de la


lógica del sistema. La siguiente figura muestra los constructores
básicos para representar estos grafos (considerando los nodos “C”
como causas y los nodos “E” como efectos) y los operadores lógicos
que se pueden utilizar para representar así las reglas de negocio.

Vale aclarar que se pueden agregar nodos intermedios a modo de


representar la lógica combinada de distintas opciones.

Veamos cómo aplicar esta técnica sobre el mismo ejemplo


presentado para las Tablas de Decisión que aplicaba para un
sistema que ayuda a determinar el tratamiento a aplicar en base a la
edad, sexo y al Índice de Masa Corporal (IMC). El ejemplo está
explicado en el post anterior. La siguiente figura muestra una forma
de representar esta lógica con un grafo causa-efecto.

Prestar atención que en esta representación no se está teniendo en


cuenta la relación entre las causas. Por ejemplo, si ocurre la causa
“B” implica que no ocurre “M” ni “A” ni “AM” pues son excluyentes.
Para eso también está contemplada una forma de representarlo,
pero por mantenerlo simple no lo tendremos en cuenta,
considerando que el tester prestará atención a la relación entre las
causas al momento de derivar los casos de prueba. La técnica
completa la pueden encontrar en el libro de Myers, The art of
software testing.

Si bien la lógica del ejemplo no resulta muy compleja, ya puede


verse que ante situaciones en las que se manejan más variables y
condiciones, entonces la representación puede quedar poco
práctica. En esos casos es conveniente comenzar directamente con
la representación tabular, como se mostrará enseguida.

Luego, esta representación gráfica se pasa a una tabla que muestre


las distintas combinaciones y reglas que se desprenden de lo que
ahí está modelado. Para eso se ponen primero todas las causas, o
sea, una fila por cada nodo que está a la izquierda de una relación
causa-efecto. Luego, se agrupan también los efectos, poniendo una
fila por cada nodo que aparece a la derecha en una relación causa-
efecto. Las distintas columnas se llenan con las relaciones de las
causas y efectos.

No existe una única forma de llenar las celdas de esta tabla, lo


interesante es utilizar el grafo para identificar la forma de combinar
las causas para probar los distintos efectos que debe mostrar el
sistema. Por ejemplo, si queremos ver que el sistema indica
correctamente cuándo debe hacerse un análisis y cuándo no,
podemos generar pruebas pensando específicamente en esa
situación, viendo qué combinación de causas deben generar esa
situación y cuáles no.

Para completar la tabla se debe rellenar cada celda con 1 (indicando


que se cumple la causa o efecto correspondiente), 0 (indicando que
no se cumple) o con un guión “-” (indicando que no afecta o no está
determinado). Conviene rellenar primero todos los 1 de acuerdo a
las relaciones. Si existe una relación A=>B, entonces habrá una fila
“A” en las causas en la que llenaremos con un 1, y habrá una fila “B”
en los efectos que llenaremos con 1. Luego llenaremos el resto de
las celdas de esa columna con cuidado, poniendo 0 solo si: en las
causas el valor no debe combinarse para que se aplique esa regla
de negocio, y en los efectos, solo si hace falta verificar que el efecto
resultante no es el de esa columna. El resto de celdas se llenan con
“-”. Aquí es donde hay que tener cuidado con las relaciones entre las
causas, evitando inconsistencias (en el ejemplo, no tiene sentido
poner un caso de prueba en el cual se combinen las causas “Menor”
y “Adulto Mayor” ya que son excluyentes).

Por ejemplo, a continuación se muestra la tabla derivada a partir del


grafo del ejemplo. Ahí la primera columna de datos indica que si no
es hombre se debe verificar que se suministre la dosis de mujer y el
complemento de mujer. Luego, se indica que no se debe hacer
ningún análisis, porque existe una regla que dice que el análisis se
asigna solo a los hombres adultos mayores y con el IMC en el rango
A. Las celdas que corresponden al IMC y a las franjas etarias se
llenaron con “-” pues no influyen en esta regla.

○ Cada columna representa un caso de prueba, donde se presentan


las entradas (causas) y los resultados esperados (efectos).

2. Máquina de Estado

○ ¿Que es una máquina de estado?


Un ‘estado’ es la condición de una cosa en un tiempo determinado.
Algunos que pueden realizar tareas y que utilizan estados como su
núcleo son máquinas de estado. También son conocidas como
máquinas de estado finitas, lo que significa que sabemos todos los
posibles estados de ella. La clave para la máquina de estado es el
concepto del tiempo y la historia. El estado de la máquina es
evaluada periódicamente. Cada vez que es evaluada, un nuevo
estado es elegido (el que podría ser el mismo estado nuevamente) y
el resultado es presentado.

Se denomina máquina de estados a un modelo de comportamiento


de un sistema con entradas y salidas en donde las salidas dependen
no solo de las señales de entradas actuales, sino también de las
anteriores.
Las máquinas de estados se definen como un conjunto de estados
que sirven de intermediarios en esta relación de entradas y salidas,
haciendo que el historial de señales de entrada determine, para cada
instante, un estado para la máquina de forma tal que la salida
depende únicamente del estado y las entradas actuales.

Es posible clasificar las máquinas de estados en aceptoras o


transductoras:

● Aceptoras (también llamadas reconocedoras o


discriminatorias): Son aquellas en donde la salida es binaria
(sí-no), depende únicamente del estado y existe un estado
inicial. Puede decirse, entonces, que cuando la máquina
produce una salida positiva (es decir, un si) es porque ha
reconocido o aceptado la secuencia de entrada. En las
máquinas de estados aceptoras, los estados con salida
positiva se denominan estados finales.
● Transductoras: Son las más generales. Convierten una
secuencia de señales de entrada en una secuencia de salida,
pudiendo esta ser binaria o más compleja, según la entrada
actual (no solo del estado) y pudiendo también prescindir de
un estado inicial.

En UML (lenguaje unificado de modelado), dice que una máquina de


estado es aquel comportamiento que permite hacer un seguimiento
de la vida de un objeto en el transcurso de un tiempo finito.

3. Matriz CRUD
○ Las Matrices CRUD son una referencia rápida que indican las tablas
que utiliza un código en particular, y de qué manera las utiliza. Como
tal no presenta la información de las invocaciones a procedimientos
o funciones, o triggers que se disparan, para ello contamos con los
Diagramas Esquemáticos, que nos dicen todos los objetos e
invocaciones utilizados por un código, o los Diagramas de
Secuencia, que indican la interacción entre las diferentes
invocaciones del código inicial hacia otros códigos.

Tradicionalmente, una Matriz CRUD lleva como renglones los


nombres de las tablas, y como columnas las siguientes operaciones:
■ Creation (Insert)
■ Read (Select)
■ Update
■ Delete

Usualmente en cada celda se presenta el número de operaciones que se


realizan dentro del código de cada tipo por cada objeto, por lo que
podemos tener una matriz de la siguiente forma:

Como podemos observar, una Matriz CRUD nos presenta, en forma breve
y concisa, un panorama de las afectaciones de un código sobre los objetos
de la base de datos.
Conclusión

Comprendemos que el uso de herramientas como los grafos para causa-efecto, las
máquinas de estados y las matrices CRUD nos facilitan mucho el trabajo a la hora de
evaluar los cambios en nuestro código, de esta forma podemos captar de manera más
eficaz los posibles errores o saber el camino más eficiente de lograr el objetivo sin
cometer o provocar un error en el futuro.
Referencias

Maquinas de Estado. (2019, 18 junio). Recuperado 2 octubre, 2019, de


https://cursos.mcielectronics.cl/2019/06/18/maquinas-de-estado/

Diseño de Pruebas con Grafos Causa-Efecto. (s.f.). Recuperado 2 octubre, 2019, de


http://blog.abstracta.com.uy/2014/02/diseno-de-pruebas-con-grafos-causa.html

Arix Software. (2018). Matriz CRUD. Recuperado 2 octubre, 2019, de


http://arix4oracle.com/matriz_crud.html

También podría gustarte