Caso de prueba de software orientado a objetos | Prueba del método Date.increment

 La tecnología orientada a objetos ha producido una mejor estructura del sistema y un estilo de codificación más estandarizado. Ha optimizado en gran medida la seguridad del uso de los datos y mejorado la reutilización del código del programa. Esto ha llevado a algunas personas a creer que los programas desarrollados con tecnología orientada a objetos no funcionan. No es necesario realizar pruebas. Cabe señalar que aunque la idea básica de la tecnología orientada a objetos garantiza que el software debe tener mayor calidad, la situación real no es así; porque no importa qué tecnología de programación se utilice, los errores del programador son inevitables y debido a la El código de software desarrollado con tecnología de objetos tiene una alta tasa de reutilización y una mayor probabilidad de recurrencia de errores, lo que requiere pruebas estrictas para evitar que se repitan una gran cantidad de errores. Este artículo presenta la prueba del método Date.increment.

01. Descripción de la clase

CRC (Colaborador de responsabilidad de clase, Colaborador de responsabilidad de clase) es actualmente un método popular de análisis y modelado orientado a objetos. En el modelado CRC, los usuarios, diseñadores y desarrolladores participarán para completar el diseño de todo el proyecto orientado a objetos.

La tarjeta CRC es una colección estándar de fichas que incluye tres partes, a saber, el nombre de la clase, las responsabilidades de la clase y la relación de colaboración de la clase. Cada tarjeta representará una clase. El nombre de la clase es el nombre de la clase descrita en la tarjeta, que está escrito en la parte superior de toda la tarjeta CRC; las responsabilidades de la clase incluyen la comprensión de la clase de su propia información y cómo se utilizará esta información. Esta parte estar escrito en el lado izquierdo de la tarjeta CRC; La relación de colaboración de una clase se refiere a otras clases relacionadas con la clase actual, a través de las cuales se puede obtener la información deseada o realizar operaciones relacionadas. Esta parte está escrita en el lado derecho de la tarjeta CRC.

Al probar este método, primero debe usar la tarjeta "Clase-Responsabilidad-Colaborador" (CRC) para describir la clase Fecha y luego analizar el diagrama del programa según el pseudocódigo de la clase Fecha como se muestra en la Figura 1.

■ Figura 1 Diagrama de programa de las clases testIt y Date

La clase CalendarUnit proporciona un método para establecer el valor de la clase que hereda y proporciona un método booleano para indicar si los atributos de su clase heredada se pueden aumentar en 1. El pseudocódigo es el siguiente.

class CalendarUnit(
//abstract class
int currentpos;
CalendarUnit(pCurrentpos)
currentpos = pCurrentpos;//结束 CalendarUnit
setCurrentpos(pCurrentpos)
currentpos = pCurrentpos;//结束 setCurrentpos
abstract protected Boolean increment();
}

 Para probar el método Date.increment, necesita desarrollar la clase testIt como un controlador de prueba, es decir, crear un objeto de fecha de prueba, luego solicitar al objeto que se incremente en 1 y finalmente imprimir el nuevo valor. El pseudocódigo es como sigue.

class testItl
main()(
testdate = instaniate Date(testMonth,testDay,testYear);
Testdate.increment();
Testdate.printDate();
//结束 testIt

La información en la tarjeta CRC de la clase Fecha se proporciona a continuación, como se muestra en la Tabla 2.

■ Tabla 2 Tarjeta CRC tipo fecha

 El pseudocódigo de la clase Date es el siguiente.

class Date{
private Day d;
private Month m;
private Year y;
public Date( int pMonth,int pDay,int pYear){
y = instaniate Year(pYear);
m = instaniate Month(pMonth,y);
d = instaniate Day(pDay,m);
)//结束 Date构造函数
increment()
if(!d.increment()){
if(!m.increment())
y.increment();
m.setMonth(1,y);
else
d.setDay(1,m);
//结束 increment
printDate()
System.out.println(m.getMonth() +"/" + d.getDay() + "/"+ y.getYear());
}//结束 printDate
}//结束 Date

 El diagrama de programa de la clase testIt y la clase Date se muestra en la Figura 2.

 

■ Figura 2 Diagrama de programa de las clases testIt y Date

02. Diseñar casos de prueba.

Como se presentó en la sección de pruebas de caja negra, las pruebas de clases de equivalencia son una buena elección para unidades con uso intensivo de lógica. Las tres clases equivalentes de operación Date.increment para procesar fechas son las siguientes.

D1={fecha:1≤fecha<última fecha del mes}.

D2={Fecha: La fecha es la última fecha distinta de diciembre}.

D3={Fecha: La fecha es el 31 de diciembre}.

De hecho, hay tres rutas correspondientes al gráfico del programa Date.increment.

ruta 1: 9-10-18.

camino2:9-10-11-12-13-14-17-18。

camino3:9-10-11-15-16-17-18。

Constituyen la ruta base de Date.increment. No es difícil calcular que la complejidad ciclomática del gráfico del programa Date.increment es 3. Además, estas clases de equivalencia parecen estar vagamente definidas, especialmente D1, que hace referencia a la última fecha sin una especificación de mes, es decir, sin especificar qué mes es. De esta manera, el problema se transforma aún más en una prueba del método Month.increment.

Supongo que te gusta

Origin blog.csdn.net/qq_41640218/article/details/132706747
Recomendado
Clasificación