使用 pytest 进行功能测试

Python 测试入门

Alexander Levin

Data Scientist

什么是功能测试

功能(Feature)

  • 软件系统的某项功能。
  • 满足特定用户需求。

功能(Features)

  • 单元(Units)更广。
  • 终端用户可直接使用。

功能测试(Feature testing)

  • 一种软件测试方法。
  • 用于验证特定功能的行为。
  • 示例
    • 数据分布检查
    • 报表生成
Python 测试入门

单元 vs. 功能:个人电脑

单元:

  • 每个单独的按钮
  • 屏幕上的像素
  • LED 二极管
  • 磁盘上的块

功能:

  • 键盘
  • 屏幕
  • 背光/照明
  • 文件系统
Python 测试入门

为何使用功能测试

功能测试有助于

  • 在用户与系统交互的范围内进行测试。

范围比单元更广:

  • 某个单元失效,并不意味着功能一定不正常。

反之亦然:

  • 所有单元都正常,也不代表功能一定正常。
Python 测试入门

功能测试示例:设置

设置并定义功能代码:

# 设置
import pandas as pd
import pytest

df = pd.read_csv('laptops.csv')

# 过滤功能
def filter_data_by_manuf(df, manufacturer_name):
    filtered_df = df\
        [df["Manufacturer"] == manufacturer_name]
    return filtered_df
Python 测试入门

功能测试示例:测试

测试代码:

# 功能测试函数
def test_unique():
    manuf_name = 'Apple'
    filtered = filter_data_by_manuf(df, manuf_name)
    assert filtered\
        ['Manufacturer'].nunique() == 1
    assert filtered\
        ['Manufacturer'].unique() == [manuf_name]
Python 测试入门

总结

功能测试:一种软件测试方法,用于验证特定功能的行为。

功能单元更广:

  • 按钮是单元,键盘是功能。

功能测试有助于确保用户获得期望的结果。

创建功能测试需要先定义测试用例。

设计功能测试的关键是理解系统中的功能是什么。

Python 测试入门

Passons à la pratique !

Python 测试入门

Preparing Video For Download...