一、实验题目 :软件测试
二、实验目的
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 :正序列表 [1,2,3,4,5] 预期输出:[1,2,3,4,5]
测试用例2 :倒序列表 [5,4,3,2,1] 预期输出:[1,2,3,4,5]
测试用例3 :重复元素列表 [3, 2, 2, 1, 4, 3, 1] 预期输出:[1, 1, 2, 2, 3, 3, 4]
测试用例4 :随机元素列表 [64, 34, 25, 12, 22, 11, 90] 预期输出:[11,12,22,25,34,64,90]
测试用例5 :空列表 [ ] 预期输出:[ ]
测试用例6 :只含有一个元素列表 [7] 预期输出:[7]
六、单元测试结果截图
七、实验中遇到的问题及解决方法
1.测试失败:
如果你的冒泡排序函数实现有误,那么测试可能会失败。确保你的排序算法能够正确地对所有测试用例进行排序。
测试用例设计不当也可能导致测试失败。例如,如果你没有覆盖到所有可能的边界情况或异常情况,那么可能存在漏网之鱼。
2.性能问题:
冒泡排序算法本身不是最高效的排序算法,特别是对于大数据集来说。如果你的测试包含了大规模的数据集,那么测试可能会运行得很慢。
如果你的实现没有正确地优化(例如,没有提前终止排序当列表已经有序时),那么性能问题可能会更加明显。
3.数据类型问题:
如果你的冒泡排序函数没有正确处理非数字类型的数据,或者没有处理列表中的None值或其他不可比较的对象,那么测试可能会抛出异常。
4.列表修改问题:
如果你的冒泡排序函数修改了原始列表而不是返回一个新的排序后列表,这可能会在某些测试情况下导致问题。特别是当测试用例期望函数返回一个新的列表时。
5.断言失败:
如果你的测试断言(如self.assertEqual)与函数实际返回的结果不匹配,测试将失败。这通常意味着你的函数没有按预期工作。
6.测试覆盖率不足:
如果你的测试用例没有覆盖到所有可能的代码路径,那么可能存在一些隐藏的错误没有被测试捕捉到。你可以考虑使用工具来测量你的测试覆盖率。
7.环境问题:
如果你的测试代码在不同的环境(例如,不同的Python版本或不同的操作系统)下运行,可能会出现环境问题。确保你的测试在各种环境下都能稳定运行。
为了更好地解决这些问题,我采取以下措施:
1.设计全面的测试用例,覆盖各种边界情况和异常情况。
2.使用性能分析工具来检查你的排序算法性能。
3.确保你的函数能够处理各种数据类型,并正确处理不可比较的对象。
4.如果你的函数应该返回一个新的列表而不是修改原始列表,请确保你遵守这一约定。
5.使用代码覆盖率工具来检查你的测试是否覆盖了所有代码路径。
6.在不同的环境下运行你的测试,以确保其稳定性和兼容性。