Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ejercicio 1 ............................................................................................................................. 3
Ejercicio 2 ............................................................................................................................. 6
Ejercicio 3 ............................................................................................................................. 8
Ejercicio 4 ........................................................................................................................... 14
2
Introducción
En el marco educativo del módulo profesional de Entornos de Desarrollose presenta la
tarea perteneciente a la tercera unidad de trabajo del curso.
Ejercicio 1
false
false false
2 6 3
true true
4 5
3
Nodo Condicion - Linea
A 1-2
B 3 Cantidad < 0
C 8 cantidad = -3
F 14 - 21 Final
Complejidad ciclomática
7-6+2=3
2 INTERNAS + 1 EXTERIOR = 3
2 NODOS DE CONDICIION + 1 = 3
4
Caminos de prueba
Camino 1: 1 - 6
Camino 2: 1 - 2 - 4 - 2 - 6
Camino 3: 1 - 2 - 4 - 3 - 5 - 1 - 6
Caso de uso: Un usuario intenta ingresar una cantidad negativa de dinero en su cuenta
bancaria.
Caso de uso: Un usuario intenta ingresar una cantidad igual a -3 en su cuenta bancaria.
5
Resultado esperado: Se imprime un mensaje de error detectable en pruebas de caja
blanca y se devuelve un código de error 2.
Ejercicio 2
El análisis de caja negra es una técnica utilizada para probar un sistema o aplicación
sin tener conocimiento del código fuente. En este caso, el método retirar recibe como
parámetro la cantidad a retirar, que no podrá ser menor a 0. Además en ningún caso
esta cantidad podrá ser mayor al saldo actual.
Clases de equivalencia:
Cantidad a retirar es mayor a 0 y menor o igual al saldo actual: El método debe retirar la
cantidad especificada y actualizar el saldo correctamente.
Cantidad a retirar es mayor al saldo actual: El método debe mostrar un mensaje de error
indicando que no hay suficiente saldo.
Valores límite:
Valor máximo: El saldo actual, ya que no se puede retirar una cantidad mayor al saldo
actual.
Conjetura de errores:
6
Si se intenta retirar una cantidad mayor al saldo actual, se debería imprimir un mensaje
de error indicando que no hay suficiente saldo.
Ejecución del programa con los datos de entrada indicados en la tabla y comprobar si
los resultados obtenidos coinciden con los esperados:
Con los datos de entrada (50) el resultado obtenido es "Saldo tras retirada: 50 euros",
que coincide con el resultado esperado.
Con los datos de entrada (-50) el resultado obtenido es "No se puede retirar una
cantidad negativa", que coincide con el resultado esperado.
Con los datos de entrada (200) el resultado obtenido es "No se hay suficiente saldo",
que coincide con el resultado esperado.
7
Ejercicio 3
Crea la clase CCuentaTest del tipo Caso de prueba JUnit en Eclipse que nos permita
pasar las pruebas unitarias de caja blanca del método ingresar. Los casos de prueba ya
los habrás obtenido en el primer apartado del ejercicio. Copia el código fuente de esta
clase en el documento.
En Archivo > Nuevo > Caso de prueba de JUnit podemos iniciar la ventana asistente
para la creación del caso de prueba jUnit.
8
Ponemos el nombre CCuentaTest y hacemos clic en Finalizar:
Nos pide
9
Detallar y entender el código de la clase CCcuentaTest.
10
La anotación @DisplayName especifica un nombre legible para el método de prueba,
que se utilizará en los informes de prueba.
11
Hacemos clic en Aceptar asegurándonos que está seleccionado el fichero que
deseamos ejecutar, en este caso:
Dos de las pruebas son satisfactorias y una, cuando el Valor de cantidad -3, falla ya que
el resultado que esperábamos no es iCodErr = 2. Esto sucede, como anticipamos en las
pruebas anteriores de caja blanca, que las líneas 39-43 no serán ejecutadas nunca, ya
que el programa entrará en la primera condición cantidad < 0.
12
13
Ejercicio 4
Genera los siguientes puntos de ruptura para validar el comportamiento del método
ingresar en modo depuración.
Punto de parada sin condición al crear el objeto miCuenta en la función main. Línea 3
del código del método main que se presenta en la siguiente página de este libro.
14
Y en Depurar seleccionamos Puntos de ruptura:
15
Se abre la ventana de Puntos de ruptura. Hacemos clic derecho sobre dicha ventana y
Exportar puntos de interrupción. Seleccionamos todos los puntos de ruptura y los
guardamos en D:\Compartir\DAW\ED\Unidad03\break-points.bkpt
16
1 <?xml version="1.0" encoding="UTF-8"?>
<breakpoints>
2 <breakpoint enabled="true" persistant="true" registered="true">
<resource path="/CCuenta/src/CCuenta/CCuenta.java" type="1"/>
3 <marker charStart="133" lineNumber="7"
type="org.eclipse.jdt.debug.javaLineBreakpointMarker">
4 <attrib name="charStart" value="133"/>
<attrib name="org.eclipse.jdt.debug.core.suspendPolicy" value="2"/>
5 <attrib name="org.eclipse.jdt.debug.ui.JAVA_ELEMENT_HANDLE_ID"
value="=CCuenta/src<CCuenta{CCuenta.java[CCuenta"/>
6 <attrib name="charEnd" value="171"/>
<attrib name="org.eclipse.debug.core.enabled" value="true"/>
7 <attrib name="message" value="Punto de interrupción de línea:CCuenta
[línea: 7] - main(String[])"/>
8 <attrib name="org.eclipse.debug.core.id"
value="org.eclipse.jdt.debug"/>
9 <attrib name="org.eclipse.jdt.debug.core.typeName"
1 value="CCuenta.CCuenta"/>
0 <attrib name="workingset_name" value=""/>
1 <attrib name="workingset_id"
1 value="org.eclipse.debug.ui.breakpointWorkingSet"/>
1 </marker>
2 </breakpoint>
1 <breakpoint enabled="true" persistant="true" registered="true">
3 <resource path="/CCuenta/src/CCuenta/CCuenta.java" type="1"/>
1 <marker charStart="1620" lineNumber="47"
4 type="org.eclipse.jdt.debug.javaLineBreakpointMarker">
1 <attrib name="charStart" value="1620"/>
5 <attrib name="org.eclipse.jdt.debug.core.suspendPolicy" value="2"/>
1 <attrib name="org.eclipse.jdt.debug.ui.JAVA_ELEMENT_HANDLE_ID"
6 value="=CCuenta/src<CCuenta{CCuenta.java[CCuenta"/>
1 <attrib name="org.eclipse.jdt.debug.core.hitCount" value="3"/>
7 <attrib name="charEnd" value="1656"/>
1 <attrib name="org.eclipse.debug.core.enabled" value="true"/>
8 <attrib name="org.eclipse.jdt.debug.core.expired" value="false"/>
1 <attrib name="message" value="Punto de interrupción de línea:CCuenta
9 [línea: 47] [cuenta de aciertos: 3] - ingresar(double)"/>
2 <attrib name="org.eclipse.debug.core.id"
17
0 value="org.eclipse.jdt.debug"/>
2 <attrib name="org.eclipse.jdt.debug.core.typeName"
1 value="CCuenta.CCuenta"/>
2 <attrib name="workingset_name" value=""/>
2 <attrib name="workingset_id"
2 value="org.eclipse.debug.ui.breakpointWorkingSet"/>
3 </marker>
2 </breakpoint>
4 <breakpoint enabled="true" persistant="true" registered="true">
2 <resource path="/CCuenta/src/CCuenta/CCuenta.java" type="1"/>
5 <marker charStart="1781" lineNumber="52"
2 type="org.eclipse.jdt.debug.javaLineBreakpointMarker">
6 <attrib name="org.eclipse.jdt.debug.core.conditionEnabled"
2 value="true"/>
7 <attrib name="charStart" value="1781"/>
2 <attrib name="org.eclipse.jdt.debug.core.suspendPolicy" value="2"/>
8 <attrib name="org.eclipse.jdt.debug.core.condition" value="cantidad
2 < 0"/>
9 <attrib name="org.eclipse.jdt.debug.ui.JAVA_ELEMENT_HANDLE_ID"
3 value="=CCuenta/src<CCuenta{CCuenta.java[CCuenta"/>
0 <attrib name="charEnd" value="1804"/>
3 <attrib name="org.eclipse.debug.core.enabled" value="true"/>
1 <attrib name="message" value="Punto de interrupción de línea:CCuenta
3 [línea: 52] [condicional] - ingresar(double)"/>
2 <attrib name="org.eclipse.debug.core.id"
3 value="org.eclipse.jdt.debug"/>
3 <attrib name="org.eclipse.jdt.debug.core.typeName"
3 value="CCuenta.CCuenta"/>
4 <attrib name="workingset_name" value=""/>
3 <attrib name="workingset_id"
5 value="org.eclipse.debug.ui.breakpointWorkingSet"/>
3 </marker>
6 </breakpoint>
3 </breakpoints>
18
19