黑盒测试用例 软件测试2个月能学会吗


黑盒测试用例 软件测试2个月能学会吗

文章插图
黑盒测试用例(软件测试2个月能学会吗)
黑盒测试仅关注输入和输出,将程序看成一个黑盒子 。在不遗漏需求的情况下,打开这个黑盒子,从代码实现的角度进行分析,可以更好的理解测试用例,帮助我们完善测试用例设计,更好地提升测试效果 。
下面小编从一元多项式的加法和乘法运算程序进行系统阐述思路 。
程序功能描述:设计程序分别求两个一元多项式的乘积与和 。
(1)Input :输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数,数字间以空格分隔
(2)Output:输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数 。零多项式应输出 0,0
(3)举例:
【黑盒测试用例 软件测试2个月能学会吗】执行加法运算后的结果:
(4)程序输入及预期输出
Input:
3 9 12 15 8 3 2
4 26 19 -4 8 -13 6 82 0
Output:
234 31 390 27 78 21 -36 20 -117 18 -60 16 -195 14 738 12 -12 10 1191 8 246 2
26 19 9 12 11 8 -13 6 3 2 82 0
一、程序框架思考
(1)数据结构使用链表:链表较数组灵活、但较容易出错,因此比较适合在本文举例:
(2)程序架构如下:
i. 通过Creat( ) 函数构建链表,存储数据
ii. 通过multiple( ) 函数执行乘法运算并返回结果
iii. 通过add( ) 函数执行加法运算并返回结果
iv. 通过PrintLink( ) 函数打印结果
结合程序功能,从实现难度来看,multiple( ) 可能更容易出错 。各子函数的具体实现在此不表,后面会结合测试点进行详细的阐述 。
二、测试验证
1. 临界测试:录入 空多项式 运行程序,可以看到输出数据发生了混乱 。
分析:通过排查代码发现,由于没有考虑 空指针场景(头指针的Next指向为NULL),指针指向了未知内存空间,导致数据异常 。另外需要说明,空指针也会引发段错误 segmentation fault,这是我们在测试过程中、特别是项目初期较多遇到的情况:指针为空引发程序崩溃 。
解决方法:增加头指针的Next为NULL的判定和处理 。
2. 等价类测试
I. add( )
对于加法函数,它需要考虑三种基本情况:两个一元多项式进行比较,i.前者系数大于后者 ii.前者系数等于后者 iii.前者系数小于后者 。If语句的三个分支对应了三个等价类测试点 。
相较 i , iii 两种情况,问题容易出现在 ii 两者系数相等:这里需要考虑一个较特殊的场景,当相加后的系数为0时,相关数据不记录,同时需要通过free( ) 函数释放对应的内存空间 。
因此在设计对应的测试用例时,需要考虑系数相加为0的场景,在判定输出的同时,同步关注内存占用情况 。
II. multiple( )
乘法函数较加法函数复杂一些,需要通过两层while循环 、 insert() 子函数完成功能实现:
两层while循环模拟 两个一元多项式相乘的步骤,insert( ) 将产生的结果插入到结果链表中 。因此需要同步关注insert( )子函数 。没有在multiple( )中直接实现insert功能,是程序编写的基本规则:避免代码冗余、增加灵活性 。Insert( )部分代码如下:
我们可以看到,这里的测试点类似于add( )函数,也需要考虑三种情况:指数大于、指数小于、指数相等 。其中 指数相等的情况,会触发系数相加操作,当结果为0时,需要通过free( )函数进行内存释放 。
因此在设计测试用例时,需要进行全面考虑,不要遗漏系数相加为0的场景,同步关注内存占用 。


以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!

「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助: