一、实验题目 :软件测试
二、实验目的
1、熟悉开发环境下的自动化测试工具;
1、利用自动化测试工具进行自动化单元测试。
三、实验内容
1、选择开发环境,IDEA或PYCHARM任选其一;
2、基于所选择的开发环境实现对输入的n个整数进行排序的代码;
3、对所编写代码设计测试用例;
4、基于所选择的开发环境开展单元测试。
IDEA环境:
利用Junit对所编写代码进行单元测试
https://blog.csdn.net/antony9118/article/details/51736135
PYCHARM环境:
利用unittest对所编写代码进行单元测试
https://zhuanlan.zhihu.com/p/688994644
四、实验要求
1、预先准备的代码要求独立编写,严禁抄袭,具体排序算法可以自由选择一种;
2、利用平台提供的单元测试工具对代码中的方法或函数进行单元测试,截取测试结果。
五、设计单元测试用例
1.使用冒泡顺序算法进行单元测试用例。 比较数组相邻的的大小,将较大的数据放在后面,对每对相邻的数组均进行比较,实现第一次扫描
例 a[1] > a[2],则交换 a[1] 与 a[2] 中数据的位置,第二次扫描仍然从头开始,进行多次扫描,实现数据从小到大的排序。
2.代码如下:
import java.util.Scanner;
public class Main {
public static void paixu(int a[]) {
for(int i=0; i<a.length-1; i++) {
for(int j=0; j<a.length-i-1; j++) {
if(a[j] > a[j+1])
{int n;n = a[j]; a[j] = a[j+1]; a[j+1] = n;}
}
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入元素个数:");
int n = sc.nextInt();
int a[] = new int[n];
System.out.print("请输入元素:");
for(int i=0; i<a.length; i++) {
a[i] = sc.nextInt();
}
paixu(a);
System.out.print("排序完成:");
for(int i=0; i<a.length; i++) {
System.out.print(a[i]+" ");
}
}
}
3.测试结果
1)输入值:7 {3 1 6 2 5 7 4} 预期输出:{1 2 3 4 5 6 7} 测试结果正确
2)输入值: 5 {1 2 2 6 3} 预期输出:{1 2 2 3 6} 测试结果正确
3)输入值: 4 { 9 -8 7 6} 预期输出:{-8 6 7 9} 测试结果正确
六、单元测试结果截图
七、实验中遇到的问题及解决方法
1.遇到的问题:首先构造一个实现冒泡排序的函数,在主函数内编写语句,编写输入语句(Scanner语句),实现可以对自己输入的数据进行排序,再定义整数输入要输入的元素个数,定义一个数组,遍历输入数据存放在数组中,调用冒泡函数,遍历输出排好序的数据。在编写过程中,我对冒泡函数有点不太熟悉,编写代码过程中还出现不熟练的问题,程序总是报错。
解决方法:上网搜有关于冒泡排序的视频模仿写代码,最后运行成功了。
2.遇到的问题:测试数据准备的不充分,无法全面覆盖所有可能的排序情况。
解决方法:准备多组测试数据,包括正序、逆序、随机顺序等。
3.遇到的问题:对于冒泡排序的时间复杂度理解不足,导致在测试时无法有效评估其性能。
解决方法:理解冒泡排序的时间复杂度为O(n^2),并知道其在最坏情况下的性能表现。对比其他排序算法,评估冒泡排序在实际应用中的适用性。