การทดสอบใน Python เบื้องต้น

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

Alexander Levin

Data Scientist

ทำไมการทดสอบจึงสำคัญ?

ปัญหาที่พบบ่อย:

  • บักและข้อผิดพลาด
  • ความล้มเหลวของฮาร์ดแวร์
  • พฤติกรรมที่ไม่คาดคิด

ปัญหาเหล่านี้อาจนำไปสู่ค่าใช้จ่ายในการแก้ไขที่สูงขึ้นอย่างมีนัยสำคัญ

การทดสอบช่วยให้:

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

การทดสอบคืออะไร?

  • Testing - กระบวนการประเมินระบบหรือซอฟต์แวร์
  • จำเป็นต้องทดสอบเพื่อให้แน่ใจว่าตรงตามข้อกำหนดที่กำหนดไว้

  • Test - กระบวนการตรวจสอบความถูกต้องของแอปพลิเคชันหรือระบบซอฟต์แวร์

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

ความรู้พื้นฐานที่ต้องมีก่อนเรียน

  • การเขียน Python ขั้นสูง
  • คำสั่ง assert
  • Decorators
  • แนวคิด OOP (คลาส เมธอด การสืบทอด)
Python เบื้องต้นสำหรับการทดสอบโค้ด

การทดสอบในชีวิตจริง

ลองนึกถึงเครื่องบิน:

  • การตรวจสอบด้วยสายตา
  • ตรวจสอบระบบอิเล็กทรอนิกส์และกลไก
  • ตรวจสอบเชื้อเพลิง
  • ตรวจสอบผู้โดยสาร
  • ตรวจสอบสภาพอากาศ
  • รับอนุญาตขึ้นบินจากผู้ควบคุมการจราจรทางอากาศ

ทั้งหมดข้างต้นคือการทดสอบ! และจำเป็นต้องมีเพื่อความปลอดภัย

เครื่องบินก่อนขึ้นบิน

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

Assert ใน Python

  • assert condition - ใช้ทดสอบว่า condition เป็น True หรือไม่
  • หาก condition เป็น False Python จะ raise AssertionError
Python เบื้องต้นสำหรับการทดสอบโค้ด

การทดสอบด้วย pytest - ตัวอย่างเบื้องต้น

pytest - เฟรมเวิร์กสำหรับการทดสอบที่ได้รับความนิยมใน Python ช่วยให้เขียนเทสต์ได้ง่ายขึ้น

ตัวอย่างการทดสอบด้วย "assert" โดยใช้ pytest ใน Python:

import pytest

# A function to test
def squared(number):
    return number * number

# A test function always starts with "test"
def test_squared():
    assert squared(-2) == squared(2)
Python เบื้องต้นสำหรับการทดสอบโค้ด

ทบทวน Context Manager

  • Context manager - ออบเจกต์ Python ที่ใช้งานผ่านคำสั่ง with
  • ใช้ context manager สำหรับตั้งค่าและยกเลิก context ชั่วคราว
# Writing to file example
with open("hello_world.txt", 'w') as hello_file:
    hello_file.write("Hello world \n")
Python เบื้องต้นสำหรับการทดสอบโค้ด

รู้จักกับ pytest.raises

pytest.raises - ใช้เมื่อต้องการทดสอบว่าโค้ด raise Exception ตามที่คาดไว้

import pytest

# A function to test
def division(a, b):
    return a / b

# A test function
def test_raises():
    with pytest.raises(ZeroDivisionError):
        division(a=25, b=0)
Python เบื้องต้นสำหรับการทดสอบโค้ด

สรุป

Testing คือ:

  • กระบวนการตรวจสอบว่าซอฟต์แวร์ทำงานได้ตามที่คาดหวัง
  • สิ่งที่พบได้ในชีวิตประจำวัน
  • สิ่งจำเป็นในการรับมือกับความท้าทายของการพัฒนาซอฟต์แวร์
  • ช่วยให้มั่นใจว่าปัญหาได้รับการแก้ไขอย่างถูกต้อง

การนำ Tests ไปใช้งาน:

  • pytest - เฟรมเวิร์ก Python ที่ทรงพลัง ช่วยให้กระบวนการทดสอบง่ายขึ้น
  • assert - คีย์เวิร์ดของ Python ใช้ใน pytest เพื่อสร้างเทสต์พื้นฐานโดยตรวจสอบเงื่อนไข
  • pytest.raises - context manager ใช้สร้างเทสต์ที่คาดว่าจะเกิด Exception
Python เบื้องต้นสำหรับการทดสอบโค้ด

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

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

Preparing Video For Download...