zoukankan      html  css  js  c++  java
  • 白盒测试系列(一) 语句覆盖

    前言

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

    语句覆盖

    一、定义:

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

    二、特点:

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



  • 相关阅读:
    排序算法:冒泡和快排 摘自网络
    C语言内存讲解
    查找算法:折半查找
    SQL 相关知识
    位运算 C++
    设计模式学习3 观察者模式
    实验四——多分支结构及本章总结
    作业3for语句及分支结构elseif
    作业心得
    第二次作业及总结数据类型和运算符
  • 原文地址:https://www.cnblogs.com/snailrunning/p/10981888.html
Copyright © 2011-2022 走看看