การทดสอบฟีเชอร์ด้วย pytest

Python เบื้องต้นสำหรับการทดสอบโค้ด

Alexander Levin

Data Scientist

Feature test คืออะไร

ฟีเชอร์ (Feature)

  • ฟังก์ชันการทำงานของซอฟต์แวร์
  • ตอบสนองความต้องการของผู้ใช้

ฟีเชอร์

  • มีขอบเขตกว้างกว่า unit
  • ผู้ใช้งานปลายทางใช้ฟีเชอร์โดยตรง

Feature testing

  • วิธีทดสอบซอฟต์แวร์
  • ตรวจสอบพฤติกรรมของฟีเชอร์เฉพาะ
  • ตัวอย่าง:
    • การตรวจสอบการกระจายของข้อมูล
    • การจัดทำรายงาน
Python เบื้องต้นสำหรับการทดสอบโค้ด

Units vs. Features: คอมพิวเตอร์ส่วนบุคคล

Units:

  • ปุ่มแต่ละปุ่ม
  • พิกเซลบนหน้าจอ
  • ไดโอด LED
  • บล็อกบนดิสก์

Features:

  • แป้นพิมพ์
  • หน้าจอ
  • ระบบไฟแสงสว่าง
  • ระบบไฟล์
Python เบื้องต้นสำหรับการทดสอบโค้ด

ทำไมต้องใช้ feature tests

Feature testing ช่วยให้:

  • ทดสอบในขอบเขตที่ผู้ใช้งานโต้ตอบกับระบบ

ขอบเขตกว้างกว่า unit:

  • unit ทำงานผิดพลาด — ไม่ได้หมายความว่าฟีเชอร์ผิดพลาดด้วย

ในทางกลับกัน:

  • unit ทุกตัวทำงานปกติ — ไม่ได้หมายความว่าฟีเชอร์ทำงานได้ถูกต้อง
Python เบื้องต้นสำหรับการทดสอบโค้ด

ตัวอย่าง feature test: การตั้งค่า

การตั้งค่าและกำหนดโค้ดฟีเชอร์:

# Setup
import pandas as pd
import pytest

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

# Filter feature
def filter_data_by_manuf(df, manufacturer_name):
    filtered_df = df\
        [df["Manufacturer"] == manufacturer_name]
    return filtered_df
Python เบื้องต้นสำหรับการทดสอบโค้ด

ตัวอย่าง feature test: การทดสอบ

โค้ดทดสอบ:

# Feature test function
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 เบื้องต้นสำหรับการทดสอบโค้ด

สรุป

Feature testing — วิธีทดสอบซอฟต์แวร์เพื่อตรวจสอบพฤติกรรมของฟีเชอร์เฉพาะ

Features มีขอบเขตกว้างกว่า units:

  • ถ้าปุ่มคือ unit แป้นพิมพ์ก็คือ feature

Feature testing ช่วยให้ ผู้ใช้ได้รับสิ่งที่คาดหวังอย่างแท้จริง

การสร้าง feature tests ต้องออกแบบ test case ก่อน

กุญแจสำคัญในการออกแบบ feature tests — ต้องเข้าใจว่าฟีเชอร์ในระบบนั้นคืออะไร

Python เบื้องต้นสำหรับการทดสอบโค้ด

มาฝึกกันเถอะ!

Python เบื้องต้นสำหรับการทดสอบโค้ด

Preparing Video For Download...