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

前言

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

语句覆盖

1、定义:

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

2、特色:

一、程序中每个语句执行一次
二、对程序执行逻辑的覆盖率低,属于最弱的覆盖方式
三、无需测试程序的分支状况
四、无需测试程序分支判断的输入值以及输入值的组合
五、无需测试程序执行的不一样路径测试

3、程序流程图

程序流程图

4、源代码

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('结束')

5、语句覆盖 用例设计

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

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

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

test_demo.pyblog

# 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()
相关文章
相关标签/搜索