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()
  • 相关阅读:
    python的特点
    epoll理解(转)
    数据库存储过程、触发器、连接
    Mysql的四种隔离级别
    linux指令
    利用asyncio(支持异步io)和协程实现单线程同步
    ubuntu安装codeblocks
    临界区与互斥量区别
    单链表的简单操作
    hdu 5475 An easy problem(暴力 || 线段树区间单点更新)
  • 原文地址:https://www.cnblogs.com/mmz-tester/p/13201561.html
Copyright © 2011-2022 走看看