白盒测试系列(一) 语句覆盖

前言

最近发现身边测试的同学都不太了解/理解白盒测试,网上的资料又是千篇一律(互抄),不易理解。所以想做一个更容易让测试同学学习的白盒测试教程。

语句覆盖

一、定义:

程序中每一个语句至少能被执行一次

二、特点:

1、程序中每一个语句执行一次
2、对程序执行逻辑的覆盖率低,属于最弱的覆盖方式
3、无需测试程序的分支情况
4、无需测试程序分支判断的输入值以及输入值的组合
5、无需测试程序执行的不同路径

三、程序流程图

程序流程图

四、源代码

demo.py

# encoding:utf-8

A = int(input('请输入A的值:'))
B = int(input('请输入B的值:'))
X = int(input('请输入X的值:'))

if A > 1 and B == 0:
    X = X / A
if A == 2 or X > 1:
    X = X + 1
print('X:', X)
print('结束')

五、语句覆盖 用例设计

用例编号 测试用例 覆盖路径 预期结果
1 A=2,B=0,X=3 a-c-e X=2.5

执行编号1 用例,程序从上往下执行,每一行代码都会运行 —— 语句覆盖
执行结果:X=2.5

六、使用Python Unittest 实现上述用例

test_demo.py

# encoding:utf-8

import unittest


class TestDemo(unittest.TestCase):

    def demo(self, A, B, X):
        if A > 1 and B == 0:
            X = X / A
        if A == 2 or X > 1:
            X = X + 1
        return X

    def test_demo_with_statement_coverage(self):
        '''
        使用语句覆盖测试 方法demo
        输入:A=2,B=0,X=3
        预期结果:X = 2.5
        '''
        X = self.demo(A=2, B=0, X=3)
        self.assertEqual(2.5, X)


if __name__ == '__main__':
    unittest.main()



posted @ 2019-06-10 16:39  深圳-逸遥  阅读(14927)  评论(2编辑  收藏  举报