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


    前言

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

    语句覆盖

    一、定义:

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

    二、特点:

    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()
    



  • 相关阅读:
    数独高阶技巧入门之六——ALS
    数独高阶技巧入门之七——AIC & Nice Loop
    数独-链的理解顺序
    数独高阶技巧入门之三——Fish
    数独·唯一性技巧(Uniqueness)-2
    游戏剧本从入门到放弃
    Electron和NW.js入门笔记
    Spring boot Access-Control-Allow-Origin 问题解决
    Materialize -- 基于Material Design的主流前端响应式框架
    Ubuntu 安装 nvm
  • 原文地址:https://www.cnblogs.com/snailrunning/p/10981888.html
Copyright © 2020-2023  润新知