20210227面试题参考答案以及知识点补充(测试篇)


其实很多表示没有看题目,其实小编刚看到的时候也是一脸懵逼呀。说实话也没有看懂,第一时间想到的也是这张图不就是讲诉了我们的测试流程吗?

正如朋友回答的。但是后面发现其实不是的。这个问题应该是涉及到了一个测试方法:基本路径测试法。小编根据自己的理解给了参考答案:(各位大佬觉得有误,可以留言提出来)。

为了方便描述,小编直接给之前的题目标注了序号。(作图很粗糙,大家请勿见怪哈)。


程序流程图

以上是小编手稿得参考答案,大家有不同建议得欢迎补充,接下来补充一下这个知识点,这个知识点,小编查询各大资料整合得,大家可以理解一下啊。

基本路径测试方法知识点补充:

基本路径方法设计测试用例步骤

1、画出控制流程图

2、计算圈复杂度(环路复杂度)

3、整理基本路径集合

4、导出测试用例

一、常见结构的控制流图

控制流图是退化了的流程图,将流程图中执行语句、判定语句、开始、结束等退化成节点,将流程线退化成一个节点到另一个节点的带箭头的弧线

流图只有两种图形符号:

  • 每一个圆称为流图的节点,代码一条或多条语句

  • 箭头称为边或连接,代表控制流

  • 包含条件的节点称为判定节点(也叫谓词节点),由判定节点发出的边必须终止于摸一个节点(判断是否为判定节点:该节点会有多个流出的边)

  • 由边和节点限定的范围称为区域(图形外也算一个区域)

多个逻辑运算符的情况

如果判断中的条件表达式是由一个或多个逻辑运算符(OR,AND,NAND,NOR)连接的复合条件表达式,则需要改为一系列只有但条件的嵌套的判断

在程序流图中一系列的顺序执行语句可以合成为一个节点,但是对于多分支的判断则需要分界为独立的分枝,每个分支一个节点

二、计算圈复杂度(环路复杂度)

圈复杂度是一种为程序逻辑复杂性提供定量测试的软件度量,该度量用于计算程序的基本的独立路径数,为确保所有语句至少执行一次的测试数量的上界。独立路径必须包含一条在定义之前不曾用到的边

有以下三种方法计算圈复杂度:

流图中区域的数量对应于环形的复杂度

给定流图G的圈复杂度V(G),定义为V(G)=E-N+2,E是流图中边的数量,N是流图中节点的数量

给定流图G的圈复杂度V(G),定义为V(G)=P+1,P是流图G中判定节点的数量(仅限于不存在多分支语句情况)

例如:

1 if a or b

2 x

3 else

4 y

对应的逻辑为:

三、整理基本路径集合

首先要确定整体的开始(1)和结束(11),无论哪条路径,开始和结束必须是这两个节点

独立路径:至少沿一条新的边移动的路径

四、举例说明:

例:下例程序流程图描述了最多输入50个值(以–1作为输入结束标志),计算其中有效的学生分数的个数、总分数和平均值。

步骤1:导出过程的流图。

步骤2:确定环形复杂性度量V(G):

1)V(G)= 6 (个区域)

2)V(G)=E–N+2=16–12+2=6

其中E为流图中的边数,N为结点数;

3)V(G)=P+1=5+1=6

其中P为谓词结点的个数。在流图中,结点2、3、5、6、9是谓词结点。

步骤3:确定基本路径集合(即独立路径集合)。于是可确定6条独立的路径:

路径1:1-2-9-10-12

路径2:1-2-9-11-12

路径3:1-2-3-9-10-12

路径4:1-2-3-4-5-8-2…

路径5:1-2-3-4-5-6-8-2…

路径6:1-2-3-4-5-6-7-8-2…

步骤4:为每一条独立路径各设计一组测试用例,以便强迫程序沿着该路径至少执行一次。

1)路径1(1-2-9-10-12)的测试用例:

score[k]=有效分数值,当k < i ;

score[i]=–1, 2≤i≤50;

期望结果:根据输入的有效分数算出正确的分数个数n1、总分sum和平均分average。

2)路径2(1-2-9-11-12)的测试用例:

score[ 1 ]= – 1 ;

期望的结果:average = – 1 ,其他量保持初值。

3)路径3(1-2-3-9-10-12)的测试用例:

输入多于50个有效分数,即试图处理51个分数,要求前51个为有效分数;

期望结果:n1=50、且算出正确的总分和平均分。

4)路径4(1-2-3-4-5-8-2…)的测试用例:

score[i]=有效分数,当i

score[k]

期望结果:根据输入的有效分数算出正确的分数个数n1、总分sum和平均分average。

连接权为“1”表示存在一个连接,在图中如果一行有两个或更多的元素“1”,则这行所代表的结点一定是一个判定结点,通过连接矩阵中有两个以上(包括两个)元素为“1”的个数,就可以得到确定该图圈复杂度的另一种算法。


最后:测试资料送上一波

技术行业,一定要提升技术功底,丰富自动化项目实战经验,这对于你未来几年职业规划,以及测试技术掌握的深度非常有帮助。

这份资料整体是围绕着【软件测试】来进行整理的,主体内容包含:python自动化测试专属视频、Python自动化详细资料、全套面试题等知识内容。对于软件测试的的朋友来说应该是最全面和完整的备战仓库了,这个仓库也陪伴我走过了很多坎坷的路,希望也能帮助到你。关注微信公众号:【伤心的辣条】,就可以直接获取了! 交流学习裙:902061117

如果文章对你有帮助,麻烦伸出发财小手点个赞,感谢您的支持,你的点赞是我持续更新的动力。

推荐好文:

包装成1年工作经验的测试工程师,我给他的面试前的建议如下

自动化测试到底要学什么?

为何跳槽不考虑腾讯?聊聊我和鹅厂的一点往事

自动化测试和手动测试哪个更高级?

新手必看:怎么写一个合格的测试用例?

python登录接口测试问题记录与解决 ( 干 货 )

猜你喜欢

转载自blog.csdn.net/weixin_50829653/article/details/114311541
今日推荐