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

实验三-软件测试

时间:2024-04-26 15:22:23浏览次数:29  
标签:结果 单元测试 预期 测试用例 实验 用例 输入 软件测试

一、实验题目 :软件测试

二、实验目的

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:正常情况下的排序
预期输入:{3, 1, 4, 1, 5, 9, 2, 6}
预期结果:{1, 1, 2, 3, 4, 5, 6, 9}

用例1与预期结果一致

// 测试用例2:空数组
预期输入:{}
预期结果:{}

用例2与预期结果一致

// 测试用例3:只有一个元素的数组
预期输入:{7}
预期结果:{7}

用例3与预期结果一致

// 测试用例4:已经排好序的数组
预期输入:{1, 2, 3, 4, 5}
预期结果:{1, 2, 3, 4, 5}

用例4与预期结果一致

// 测试用例5:逆序数组
预期输入:{5, 4, 3, 2, 1}
预期结果:{1, 2, 3, 4, 5}

用例5与预期结果一致

// 测试用例6:包含重复元素的数组
预期输入:{2, 1, 3, 2, 4, 3}
预期结果:{1, 2, 2, 3, 3, 4}

用例6与预期结果一致

六、单元测试结果截图

七、实验中遇到的问题及解决方法
在冒泡排序中,第 1 轮需要比较 n -1 次,第 2 轮需要比较 n -2 次……第 n -1 轮需 要比较 1 次。因此,总的比较次数为 (n -1) +(n -2) +…+1 ≈ (n^2)/2。这个比较次数恒定为该数值,和输入数据的排列顺序无关。不过,交换数字的次数和输入数据的排列顺序有关。假设出现某种极端情况,如输 入数据正好以从小到大的顺序排列,那么便不需要任何交换操作;反过来,输入数据要 是以从大到小的顺序排列,那么每次比较数字后便都要进行交换。因此,冒泡排序的时间复杂度为 O(n^2 )。
在本次实验中,我们使用Junit对一个简单的计算器程序进行了单元测试。我们首先创建了一个Sort类,其中包含了bullonSort方法。然后,我们对方法编写了对应的测试类,我们使用Junit运行器运行了所有的测试类,并查看了测试结果。通过本次实验,我们掌握了Junit的基本用法和特点,了解了单元测试的重要性和意义,提高了软件质量和可靠性。我们也发现了一些需要改进的地方,例如如何编写更有效的测试用例,如何处理异常情况,如何提高测试覆盖率等。
问题1:我想要在非测试文件夹下执行单元测试,但是我明明引入了junit4的依赖,但就是无法使用@Test注解。
解决方法2:后来发现原因就在于这个test标签,标签的值标注为test,意味着该依赖只在一个完整的maven项目生命周期的test阶段起作用,通俗点讲就是该依赖只在maven项目的测试文件夹下有效,在别的非测试文件夹下无法使用 ,将test 的test值改成 compile 就行了,或者去掉标签。改成compile就意味着该依赖会在maven的整个生命周期中起作用,也会被打包进去,所以就可以愉快的在别的地方做单元测试了。
问题2:数据的顺序排好之后,冒泡算法仍然会继续进行下一轮的比较。很显然,后面的比较没有意义的
解决方案2:设置bool变量flag(用于标记),如果发生了交换flag设置为true;如果没有交换就设置为false。这样当一轮比较结束后如果flag仍为false,即:这一轮没有发生交换,说明数据的顺序已经排好,没有必要继续进行下去。那么,就可以结束排序了。

标签:结果,单元测试,预期,测试用例,实验,用例,输入,软件测试
From: https://www.cnblogs.com/LlSsJ/p/18159946

相关文章

  • 实验3:软件测试
    一、实验题目:软件测试二、实验目的1、熟悉开发环境下的自动化测试工具;1、利用自动化测试工具进行自动化单元测试。三、实验内容1、选择开发环境,IDEA或PYCHARM任选其一;2、基于所选择的开发环境实现对输入的n个整数进行排序的代码;3、对所编写代码设计测试用例;4、基于所选择......
  • 实验三 数据库完整性
    第1关:定义s表完整性createtables(snochar(2)PRIMARYKEY,snamevarchar(10)notnull,statusint,cityvarchar(10)DEFAULT'天津');第2关:定义p表完整性usedemo;#代码开始#定义p表;pno主码,pname非空、color只能取红、蓝、绿createtablep(......
  • 实验三-软件测试
    一、实验题目:软件测试二、实验目的1、熟悉开发环境下的自动化测试工具;1、利用自动化测试工具进行自动化单元测试。三、实验内容1、选择开发环境,IDEA或PYCHARM任选其一;2、基于所选择的开发环境实现对输入的n个整数进行排序的代码;3、对所编写代码设计测试用例;4、基于所选择......
  • 火山引擎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等原型设计工具的各自的适用领域及优缺点。一丶墨刀墨刀是一款在线的产品设计协作软件,可以解决产设研团队中存在的项目管理权限不明、版本管理混乱、协作低效等诸多问题。优点:功能强大:可满足产品经理、设计师、开发在产品设......