刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。(20分)

 

【说明】微内核架构的软件内核相对较小,主要功能和业务逻辑都通过插件实现。某国产通信芯片操作系统使用了微内核架构,其插件与核心系统通过命令方式实现通信。

其通信功能中,获取命令函数主要完成命令获取及通过校验和判断是否为合法命令,如果为合法命令,则函数返回命令字前4字节,否则返回错误码。命令最大长度为16个字节,命令格式为:

具体函数实现如图所示:

请补充表5-2中空白部分,指出对上述算法达到100%语句测试覆盖项、100%分支测试覆盖项和100%修正条件判定测试覆盖项所需的最少测试用例数目。

使用微信搜索喵呜刷题,轻松应对考试!

答案:

• (1)3    (2)3     (3)4

解析:

本题主要考察软件结构测试覆盖的相关知识。在软件基于结构测试过程中,语句测试覆盖项、分支测试覆盖项和修正条件判定测试覆盖项是测试是否充分的度量指标。

对于获取命令函数的部分代码,我们可以根据控制结构图来设计测试用例。根据参考答案的描述,我们可以知道:

(1)语句测试覆盖需要3个测试用例,分别覆盖return-1的路径、return (*(cmdBuf + 1))的路径、return-2的路径。这样,函数中的每一条语句都能被执行到,达到了100%语句测试覆盖。

(2)分支测试覆盖需要考虑if条件语句的真假情况。根据参考答案,我们需要3个测试用例来覆盖所有的分支情况,包括if((cmdLen ==0 ) || (cmdLen > MAXCMD ))为真的分支、为假的分支,同时考虑if(chkSum == ((UINT32)(pcibarAddr + BASEADDR_ECHO +icnt))的真假情况。

(3)修正条件判定测试覆盖需要考虑所有的判定情况。在这个函数中,主要的判定是if((cmdLen ==0 ) || (cmdLen > MAXCMD ))和if(chkSum == ((UINT32)(pcibarAddr + BASEADDR_ECHO +icnt))。我们需要4个测试用例来覆盖这两个判定的所有可能情况,即达到了100%修正条件判定测试覆盖。

创作类型:
原创

本文链接:请补充表5-2中空白部分,指出对上述算法达到100%语句测试覆盖项、100%分支测试覆盖项和100%

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share