川石教育
全国咨询热线:136-9172-9932
  1. 首页 > 资讯与干货 > 常见问题

软件测试单元测试环境

作者:川石学院 日期:2021-03-09 16:17:48 点击数:

        单元本身不是一个独立的程序,一个完整的可运行的软件系统并没有构成,所以必须为每个单元测试开发驱动单元和桩单元。一个完整的单元测试环境如图 10-2 所示。

        软件测试单元测试环境(图1)

        单元测试环境 驱动单元(Driver):所测函数的主程序,它接收测试数据,并把数据传送给测试单元,最后 再输出实测结果。当被测试单元能完成相关功能时,也可以不要驱动单元(如顶层函数就可以不使 用驱动单元)。驱动单元具有如下特点: (1)接收测试数据,包含测试用例输入和预期输出。 (2)把测试用例输入传送给要测试的单元。 (3)将被测单元的实际输出和预期输出进行比较,得到测试结果。 (4)将测试结果输出到指定位置。 桩单元(Stub):用来代替所测单元调用的子单元。桩单元具有如下特点:

        (1)桩单元的功能是从测试角度模拟被调用的单元。 (2)桩单元需要针对不同的输入,返回不同的期望值,模拟所替代单元的不同功能。 (3)桩单元返回的期望值根据输入和被模拟单元的详细设计来确定。 【实例】被测试的函数为 FuncTest,调用的子函数为加法函数 add 和减法函数 sub,函数代码 如下:

软件测试单元测试环境(图2)

        由于被测试函数 FuncTest 调用了加法与减法两个函数,所以应该先写加法和减法的桩函数。 但如果加法和减法这两个函数都已经经过了测试,并且是正确的,那么可以不用写桩函数,直接调 用这两个函数即可。写好后的桩函数代码如下:

软件测试单元测试环境(图3)

软件测试单元测试环境(图4)

        接下来写驱动模块,一般驱动程序都为 main 函数,驱动模块的代码如下:

软件测试单元测试环境(图5)

软件测试单元测试环境(图6)

        从上面的实例中可以看出,桩函数主要用于代替被测试函数(FuncTest 函数)所调用的函数(add 函数和 sub 函数),之所以设计桩函数就是为了隔离错误。假设如果不设计桩函数,直接调用 add 函数和 sub 函数,当测试结果失败时就无法确定是被测试函数(FuncTest 函数)还是被调用函数(add 函数和 sub 函数)出错。 那么什么时候需要写桩函数呢?一般以下两种情况需要写桩函数: (1)被调用的函数未经过测试,不能保证其正确性。 (2)被调用的函数虽然已经测试过,但是有一些情况无法模拟,此时也需要写桩函数。 如函数 test:

软件测试单元测试环境(图7)

        假设被测试函数需要调用该函数,test 函数也经过测试且是正确的,但是在实际使用过程中很 难模拟出 a<10 时的值,那么测试过程中就可以通过桩函数人为地模拟这种情况。 测试过程中并不是每次都需要写桩函数,通常以下情况不需要写桩函数: (1)最底层函数,即被测试函数不调用任何的其他函数,此时不需要写桩函数。 (2)被调用的函数已经经过测试,并且是正确的。 测试过程中也并不是每次都需要写驱动函数,对于顶层函数或 main 函数,测试时就不需要写 驱动函数。



相关文章
  • 亚马逊运营成功转行软件测试,薪资13K表示很满意!2021-03-09 16:17:48
  • 西安川石的兰朋友喊你来当他的学弟学妹啦!2021-03-09 16:17:48
  • 国外的月亮也不一定比国内测试猿的年薪美~2021-03-09 16:17:48
  • 建筑工程专业朱同学成功转行为软件测试人!2021-03-09 16:17:48
  • 财务管理专业转行软件测试月薪甩会计几条街!2021-03-09 16:17:48
  • 只有技术沉淀才能成功上岸,深圳就业薪资13K!2021-03-09 16:17:48
  • 薪资11K!实现自我价值,从掌握一门IT技术开始...2021-03-09 16:17:48
  • 文科生转行软件测试照样拿下高薪15K!2021-03-09 16:17:48
  • 恭喜罗同学喜提19.5K,成功入行软件测试!2021-03-09 16:17:48
  • 毕业1年,迷茫的他最终选择转行软件测试2021-03-09 16:17:48