软件测试的艺术————学习笔记2

测试用例的设计

对于与条件,我们必须注意测试用例需要测试到每一个条件。
if(a && b) 当a为假时,就不会判断b,就不会测试到b可能出现的错误

白盒测试
逻辑覆盖测试(覆盖到每一个路径,则需要尽可能多的测试用例)

  • 判定覆盖/分支覆盖
  • 条件覆盖
  • 多重条件覆盖

例子:

public void foo(int a,int b,int x)
{
if(a>1 && b==0)//此处有两个判断条件:a>1,a<=1 和 b==0,b<>0
x=x/a;
if(a==2||x>1)//此处有两个判断条件:a==2,a<>2 和 x>1,x<=1
x=x+1;
}

所以测试用例必须覆盖以下8种组合:2* 2+2 *2
1.a>1,b==0
2.a>1,b<>0
3.a<=1,b==0
4.a<=1,b<>0
5.a==2,x>1
6.a==2,x<=1
7.a<>2,x>1
8.a<>2,x<=1
其中5-8是表示第二个if语句的值
而设计测试用例可以只用4个,(1,2)(3,4)(5,6)(7,8)

if(x==y && length(z)==0 && FLAG )
//此处有三个判断条件x==y,x<>y and length(z)==0,length(z)<>0 and //FLAG=true,FLAG==false
j=1;
else
i=1;

所以需要设计测试用例来满足2* 2* 2=8个条件。


黑盒测试

等价划分:
确定等价类(根据输入条件来划分两个或更多的组)——有效等价类代表对程序的有效输入,而无效等价类代表时其他可能的输入条件(不正确)。

如果输入条件规定了一个取值范围(1<x<99),那么就应该确定了一个有效等价类(1<x<99),以及两个无效等价类(x<1,x>99)

注,等价类中可再细分。

根据等价类我们可以编写测试用例:
1.尽可能多的覆盖那些尚未被涵盖的有效等价类,直到所有的有效类都被测试用例所覆盖;
2.覆盖一个且仅一个尚未被覆盖的无效等价类,直到所有的无效类都被测试用例所覆盖。
注,用单个测试用例覆盖无效等价类,是由于某些特定的输入错误检查可能会屏蔽或取代其他输入错误检查(我第一句写的那样)

边界值分析
对边界值和恰好超出边界的值编写测试用例。
如果程序的输入或输出是一个有序序列,(如顺序的文件,线性列表三角格),则应特别注意该序列的第一个和最后一个元素。


因果图…..

全部评论

相关推荐

2024-12-23 11:36
中南大学 Java
点赞 评论 收藏
分享
双飞二本嵌入式求拷打我是在&nbsp;BOSS&nbsp;上投递的简历,好多都没人回复,这是开场白和简历求大神帮忙看看。您好!我是2025届应届生,最快可在一周内上岗,能够实习六个月以上,并接受加班。以下是我的核心优势和相关经验:1.&nbsp;嵌入式开发能力:&nbsp;&nbsp;&nbsp;熟练掌握STM32系列单片机及其外设(如GPIO、定时器、ADC、DAC、I2C、SPI、UART等),能够独立完成硬件驱动开发和调试。&nbsp;&nbsp;熟悉FreeRTOS实时操作系统,具备多任务调度和资源管理经验。&nbsp;&nbsp;熟悉LVGL图形库开发,能够实现嵌入式设备的图形界面设计。2.&nbsp;硬件设计能力:&nbsp;&nbsp;&nbsp;具备PCB设计经验,曾为2023年工创赛物流搬运赛道设计小车主板,带领团队获得国家级银奖。&nbsp;&nbsp;&nbsp;熟悉硬件原理图分析,能够快速理解并调试硬件电路。3.&nbsp;机器人开发与竞赛经验:&nbsp;&nbsp;&nbsp;在全国大学生智能车竞赛、ROS机器人竞赛中多次获得国家级奖项,具备丰富的机器人开发经验。&nbsp;&nbsp;&nbsp;熟悉Linux环境,对ROS和ROS&nbsp;2有一定了解,能够进行机器人系统的开发与调试。4.&nbsp;编程能力:&nbsp;&nbsp;&nbsp;熟悉C/C++,熟悉Python,能够高效完成嵌入式开发和算法实现。&nbsp;&nbsp;&nbsp;具备良好的代码规范和文档编写能力。5.&nbsp;团队协作与领导能力:&nbsp;&nbsp;&nbsp;在多个项目中担任核心开发或团队负责人,具备良好的沟通能力和团队协作精神。&nbsp;&nbsp;&nbsp;在工创赛中带领团队完成项目规划、任务分配和技术攻关,展现了较强的领导力。我对嵌入式开发、机器人技术和智能硬件充满热情,期待加入贵公司,与团队共同成长,为公司创造价值!如果有合适的岗位,欢迎随时联系我,期待进一步沟通!
沉淀一会:嵌入式就是狗屎
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务