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


    前言

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

    语句覆盖

    一、定义:

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

    二、特点:

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



  • 相关阅读:
    内存泄露了么: Handlers & Inner Classes
    SVN update: 'skipped' message
    Eclipse Java注释模板设置详解
    Classpath entry org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER will not be exported
    简单的SocketExample
    Struts2+JSON+JQUERY DEMO
    Checked&Unchecked Exception
    js垃圾回收机制
    Vue中路由守卫
    Vue中Watch和Computed的差异
  • 原文地址:https://www.cnblogs.com/snailrunning/p/10981888.html
Copyright © 2020-2023  润新知