实验三:软件测试
一、实验题目 :软件测试
二、实验目的
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:2,3,1
期望输出:1,2,3
用例2: 1,2,3
期望输出:1,2,3
用例3:3,2,1
期望输出:1,2,3
六、单元测试结果截图
用例1:
说明:用例1当中,该用例中需要将第3个元素交换到第1个位置
用例2:
说明:该用例中,所有数据不需要交换位置
用例3:
说明:该用例中,第一个数据需要和第三个数据交换
说明:该测试采取了条件覆盖,当数组当前位置元素大于下一个位置的元素时,进行交换;否则不进行交换
七、实验中遇到的问题及解决方法
遇到的问题:
对于IDEA的JUnit安装不是很熟悉,反复弄了好多次,去网上搜集资料,查阅信息,最后知道的问题所在--没有导入JUnit库以及插件的问题。
排序代码:
public class Sort {
public static int[] bubbleSort(int[] array) {
int n = array.length;
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (array[j] > array[j + 1]) {
// 交换 array[j] 和 array[j+1]
int temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
for (int i = 0; i < n; i++) {
System.out.print(array[i] + " ");
}
System.out.println();
return array;
}
}
测试代码:
import org.junit.Assert;
import org.junit.Test;
import java.util.Scanner;
import static org.junit.Assert.*;
public class SortTest {
@Test
public void bubbleSort() {
int []arr = {1,2,3};
int []t = {1,2,3};
System.out.print("测试用例:");
for(int i = 0 ; i < arr.length ; i++){
System.out.print(arr[i] + " ");
}
System.out.println();
System.out.print("期望输出:");
for(int i = 0 ; i < t.length ; i++){
System.out.print(t[i] + " ");
}
System.out.println();
System.out.print("实际输出:");
Assert.assertArrayEquals(t,Sort.bubbleSort(arr));
}
}