首页 > 其他分享 >实验三-软件测试

实验三-软件测试

时间:2024-04-26 14:14:30浏览次数:19  
标签:代码 单元测试 列表 测试用例 实验 测试 排序 软件测试

一、实验题目 :软件测试

二、实验目的

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.在不同的环境下运行你的测试,以确保其稳定性和兼容性。

标签:代码,单元测试,列表,测试用例,实验,测试,排序,软件测试
From: https://www.cnblogs.com/limusnd/p/18159934

相关文章

  • 火山引擎VeDI:如何高效使用A/B实验,优化APP推荐系统
    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群在移动互联网飞速发展的时代,用户规模和网络信息量呈现出爆炸式增长,信息过载加大了用户选择的难度,这样的背景下,推荐系统应运而生,为用户提供个性化的内容推荐。推荐系统在不断迭代中,其算法、策......
  • 实验1-波士顿房价预测
    实验1-波士顿房价预测1fromsklearn.linear_modelimportLinearRegression,SGDRegressor,Ridge,LogisticRegression#fromsklearn.datasetsimportload_bostonfromsklearn.model_selectionimporttrain_test_splitfromsklearn.preprocessingimportStandardScaler......
  • 20211317 李卓桐 Exp5 信息搜集与漏洞扫描 实验报告
    Exp5信息搜集与漏洞扫描实验报告1、实践目标掌握信息搜集的最基础技能与常用工具的使用方法。2、实践内容(1)各种搜索技巧的应用(2)DNSIP注册信息的查询(3)基本的扫描技术:主机发现、端口扫描、OS及服务版本探测、具体服务的查点(以自己主机为目标)(4)漏洞扫描:会扫,会看报告,会查漏......
  • 实验三
    TASK1点击查看代码#include<stdio.h>#include<stdlib.h>#include<time.h>#include<windows.h>#defineN80voidprint_text(intline,intcol,chartext[]);//函数声明voidprint_spaces(intn);//函数声明voidprint_blank_lines(intn)......
  • 实验4 信号量(Semaphores)
    要使用信号量,请先包含头文件<semaphore.h>sem_t:信号量的数据类型intsem_init(sem_t*sem,intpshared,unsignedintval);该函数第一个参数为信号量指针,第二个参数为信号量类型(一般设置为0),第三个为信号量初始值,第二个参数pshared为0时,该进程内所有线程可用,不为0时不同进......
  • 进度跟踪和成本跟踪实验
      接着实验    ......
  • 软件工程基础-实验一-原型设计-作家助手
    实验要求一:对比分析对比分析墨刀、Axure、Mockplus等原型设计工具的各自的适用领域及优缺点。一丶墨刀墨刀是一款在线的产品设计协作软件,可以解决产设研团队中存在的项目管理权限不明、版本管理混乱、协作低效等诸多问题。优点:功能强大:可满足产品经理、设计师、开发在产品设......
  • 实验3
    #include<stdio.h>#include<stdlib.h>#include<time.h>#include<windows.h>#defineN80voidprint_text(intline,intcol,chartext[]);//函数声明voidprint_spaces(intn);//函数声明voidprint_blank_lines(intn);//函数声明int......
  • 软件开发与创新第二次实验———结对编程:计算出题系统
    一.结对信息2252418盛宇伟2252436董朝二.题目要求小学老师要每周给同学出300道四则运算练习题。这个程序有很多种实现方式:C/C++C#/VB.net/JavaExcelUnixShellEmacs/Powershell/VbscriptPerlPython两个运算符,100以内的数字,不需要写答案。需要检查答案是否正确,并......
  • 实验三
    实验任务一#include<stdio.h>#include<stdlib.h>#include<time.h>#include<windows.h>#defineN80voidprint_text(intline,intcol,chartext[]);voidprint_spaces(intn);voidprint_blank_lines(intn);intmain(){ intlin......