Está en la página 1de 15

IMPLEMENTACIÓN DE CASOS DE PRUEBA

Una empresa que fabrica piezas torneadas para vehículos, paga a sus empleados de acuerdo
a las horas trabajadas y a una tarifa de pago por hora, de acuerdo a la siguiente tabla:

Categoría tarifa
1 12000
2 17000
3 22000

Si la cantidad de horas trabajadas es mayor a 40 horas, la tarifa se Incrementa en un 25%


para las horas extras. Calcular el salario del trabajador dadas las horas trabajadas y la
categoría.

CODIGO

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace laboratorio19
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void btnCalcular_Click(object sender, EventArgs e)


{

int tipotarifa;
double tarifa1 = 12000;
double tarifa2 = 17000;
double tarifa3 = 22000;
double Horas = 0;
double Sueldo;
double sueldoTotal;

/* Nodo T
*/
if (string.IsNullOrEmpty(txtHorasTrabajadas.Text))
{
MessageBox.Show("No ha introducido horas validas", "Horas",
MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
else {
Horas = Convert.ToDouble(txtHorasTrabajadas.Text);
}
/* Nodo P
*/

if (string.IsNullOrEmpty(txtCateTarifa.Text))
{
MessageBox.Show("No ha Seleccionado una tarifa", "Tarifa",
MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
else
{
tipotarifa = Convert.ToInt32(txtCateTarifa.Text);
}
/* Categoria 1
*/

/* Nodo A
*/
switch (tipotarifa)

{
/* Nodo B
*/
case 1:
{
/* Nodo C
*/
if (Horas>40)
{
/* Nodo G
*/
Sueldo = Horas * tarifa1;
/* Nodo D
*/
sueldoTotal = Sueldo + (Sueldo * 0.25);
/* Nodo E
*/
txtSalarioTrabajador.Text = sueldoTotal.ToString();
break;

}
/* Nodo F
*/
else
{
/* Nodo G
*/
Sueldo = Horas * tarifa1;
/* Nodo I
*/
sueldoTotal = Sueldo;
/* Nodo J
*/
txtSalarioTrabajador.Text = sueldoTotal.ToString();
break;

}
/* Categoria 2
*/
/* Nodo B
*/
case 2:
{
/* Nodo C
*/
if (Horas > 40)
{
/* Nodo G
*/
Sueldo = Horas * tarifa2;
/* Nodo D
*/
sueldoTotal = Sueldo + (Sueldo * 0.25);
/* Nodo E
*/
txtSalarioTrabajador.Text = sueldoTotal.ToString();
break;

}
/* Nodo F
*/
else
{
/* Nodo G
*/
Sueldo = Horas * tarifa2;
/* Nodo I
*/
sueldoTotal = Sueldo;
/* Nodo J
*/
txtSalarioTrabajador.Text = sueldoTotal.ToString();
break;

}
/* Categoria 3
*/
/* Nodo B
*/
case 3:
{
/* Nodo C
*/
if (Horas > 40)
{
/* Nodo G
*/
Sueldo = Horas * tarifa3;
/* Nodo D
*/
sueldoTotal = Sueldo + (Sueldo * 0.25);
/* Nodo E
*/
txtSalarioTrabajador.Text = sueldoTotal.ToString();
break;

}
/* Nodo F
*/
else
{
/* Nodo G
*/
Sueldo = Horas * tarifa3;
/* Nodo I
*/
sueldoTotal = Sueldo;
/* Nodo J
*/
txtSalarioTrabajador.Text = sueldoTotal.ToString();
break;

}
default:
MessageBox.Show("No ha selecionado una Tarifa", "Tarifa",
MessageBoxButtons.OK, MessageBoxIcon.Information);
break;
}
}

private void txtHorasTrabajadas_TextChanged(object sender, EventArgs e)


{

private void txtHorasTrabajadas_KeyPress(object sender, KeyPressEventArgs e)


{
if (char.IsDigit(e.KeyChar))
{
e.Handled = false;
}
else if (char.IsControl(e.KeyChar))

{
e.Handled = false;

else if (char.IsPunctuation(e.KeyChar))
{
e.Handled = false;
}

else
{
e.Handled = true;
}

}
}
}

En el cuerpo de la Categoría 1 se desarrollan los nodos TWBCGDE para salario normal y


TWBFYIJ par salario con horas extras ya que infieren el proceso de catalogación de horas
para el usuario de Categoría 1 con valor de horas por 12000
En el cuerpo de la Categoría 2 se desarrollan los nodos TWBCRDE para salario normal y
TWBFZIJ par salario con horas extras ya que infieren el proceso de catalogación de horas
para el usuario de Categoría 1 con valor de horas por 17000

En el cuerpo de la Categoría 3 se desarrollan los nodos TWBCODE para salario normal y


TWBFNIJ par salario con horas extras ya que infieren el proceso de catalogación de horas
para el usuario de Categoría 1 con valor de horas por 22000
Pruebas

Probamos el código cuando la categoría es 1 y las horas son 41

Probamos el código cuando la categoría es 2 y las horas son 64


Probamos el código cuando la categoría es 3 y las horas son 30
Prueba de camino básico
1. Grafo

INFORME HORAS
D T

TARIFA
W
2 3
CON HORAS SIN HORAS
EXTRAS C EXTRAS

4 5 6 7 8 9

Cat 1B Cat 2Q Cat 3L Cat 1F Cat 2I Cat 3J

10 11
12 13 14 15

SUELDO
E SUELDO CON
HORAS EXTRAS
L

17
16

SUELDO TOTAL
18
M

2. Complejidad ciclomática
V(G) = #Aristas - #Nodos + 2
V(CDM) = 18-14+2=6

3. Caminos linealmente independientes:


Como la complejidad ciclomática es 6, entonces existen nueve caminos linealmente
independientes.
4. Casos de prueba

ARISTRAS
CAMINOS 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 1 1 19 2 CASOS PRUEBA
6 7 8 0
TDM 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 Default
TBAEKM 1 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 sueldo=tarifa*hora
s;
TBAFKM 1 1 0 0 1 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 sueldo=tarifa*hora
s
TBAGKM 1 1 0 0 0 1 0 0 0 0 0 1 1 0 0 0 1 0 0 0 sueldo=tarifa*hora
s;
TBCHLM 1 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 sueldoTotal=sueldo
+sueldo*2
5/100;
TBCILM 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 sueldoTotal=sueldo
+sueldo*2
5/100;
TBCJLM 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 sueldoTotal=sueldo
+sueldo*2
5/100;

Prueba de condición

Casos de prueba para cobertura de decisiones

D1= (categoría = case1, case2, case3, caseNumeroDiferente) D2=(horas>=40)

2. Datos concretos para los casos de prueba

Caso Valor verdadero Valor falso


D1 Case 1 case2, case3, caseNumeroDiferente
D2 Horas =41 Horas =30

Caso de prueba 1: D1 verdadero D2 verdadero (categoría = 1; horas = 40, 41, 42…)


Caso de prueba 2: D1 false (categoría = 4, 5, 6… -1, -2…)
Caso de prueba 3: D1 verdadero D2 false (categoría = 2; horas = 1, 2 hasta 39)

3. Casos de prueba para cubrir todas las decisiones


D1 (categoría) C1.1 categoría=1 C1.2 categoría=2 C1.3 categoría=3 D2 (horas>=40) C2.1
horas=40 C2.2 horas=41, 42…

4. Casos de prueba para obtener una cobertura total de decisión/condición:

D1: (Categoría=1)
C1.1 Categoría=1

D2: (Horas extras>40)


C2.1 Horas extras>40

E1: (Categoría=2)
C3.1 Categoría=2
E2: (Horas extras>40)
C4.1 Horas extras>40

F1: (Categoría=3)
C5.1 Categoría=3

F2: (Horas extras>40)


C6.1 Horas extras>40

4. Datos concretos para los casos de prueba

Caso Valor verdadero Valor falso


C1.1 Categoría=1 Categoría=2
C2.1 Horas extras=41 Horas extras=39
C3.1 Categoría=2 Categoría=3
C4.1 Horas extras=41 Horas extras=39
C5.1 Categoría=3 Categoría=1
C6.1 Horas extras=41 Horas extras=39

Caso de prueba 1:
C1.1=Verdadero; C2.1=Verdadero;
(Categoría=1; Horas extras=41)

Caso de prueba 2:
C1.1=Verdadero; C2.1=Falso;
(Categoría=1; Horas extras=39)

Caso de prueba 3:
C1.1=Falso; C2.1=Verdadero;
(Categoría=2)

Caso de prueba 4:
C3.1=Verdadero; C4.1=Verdadero;
(Categoría=2; Horas extras=41)

Caso de prueba 5:

C3.1=Verdadero; C4.1=Falso;
(Categoría=2; Horas extras=39)

Caso de prueba 6:
C3.1=Falso; C4.1=Verdadero;
(Categoría=3)

Caso de prueba 7:
C5.1=Verdadero; C6.1=Verdadero;
(Categoría=3; Horas extras=41)

Caso de prueba 8:

C5.1=Verdadero; C6.1=Falso;
(Categoría=3; Horas extras=39)

Caso de prueba 9:
C5.1=Falso; C6.1=Verdadero;
(Categoría=1)

Partición de equivalencia

Caso Clase valida Clase invalida


1 Categoría =1 Todo lo diferente a 1
2 Horas extras>40 Horas extras<=40
3 Categoría =2 Todo lo diferente a 2
4 Horas extras>40 Horas extras<=40
5 Categoría =3 Todo lo diferente a 3
6 Horas extras>40 Horas extras<=40

Caso de prueba 1:
1=Valida; 2=Valida;
(Categoría=1; Horas extras=41)

Caso de prueba 2:
1=Valida; 2=Invalida;
(Categoría=1; Horas extras=39)

Caso de prueba 3:

1= Invalida; 2= Valida;
(Categoría=2)

Caso de prueba 4:
3= Valida; 4= Valida;
(Categoría=2; Horas extras=41)

Caso de prueba 5:
3= Valida; 4= Invalida;
(Categoría=2; Horas extras=39)

Caso de prueba 6:
3= Invalida; 4= Valida;
(Categoría=3)

Caso de prueba 7:
5= Valida; 6= Valida;
(Categoría=3; Horas extras=41)

Caso de prueba 8:
5= Valida; 6=Invalida;
(Categoría=3; Horas extras=39)

Caso de prueba 9:
5=Invalida; 6= Valida;
(Categoría=1)

Análisis de valores límite

Caso Valor verdadero Valor falso


1 Categoría=1 Categoría=2
2 Horas extras=90000.1 Horas extras=0.00001
3 Categoría=2 Categoría=3
4 Horas extras=90000.1 Horas extras=0.00001
5 Categoría=3 Categoría=1
6 Horas extras=90000.1 Horas extras=0.00001

Caso de prueba 1:
1=Verdadero; 2=Verdadero;
(Categoría=1; Horas extras=90000.1)

Caso de prueba 2:
1= Verdadero; 2=Falso;
(Categoría=1; Horas extras=0.00001)

Caso de prueba 3:
1= Falso; 2= Verdadero;
(Categoría=2)

Caso de prueba 4:
3= Verdadero; 4= Verdadero;
(Categoría=2; Horas extras=90000.1)

Caso de prueba 5:
3= Verdadero; 4= Falso;
(Categoría=2; Horas extras=0.00001)

Caso de prueba 6:
3= Falso; 4= Verdadero;
(Categoría=3)

Caso de prueba 7:
5= Verdadero; 6= Verdadero;
(Categoría=3; Horas extras=90000.1)

Caso de prueba 8:
5= Verdadero; 6=Falso;
(Categoría=3; Horas extras=0.00001)

Caso de prueba 9:
5=Falso; 6= Verdadero;

(Categoría=1)

También podría gustarte