พื้นฐานการทดสอบใน 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 จะยก 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 เพื่อเตรียมและล้างบริบทชั่วคราว
# Writing to file example
with open("hello_world.txt", 'w') as hello_file:
    hello_file.write("Hello world \n")
Python เบื้องต้นสำหรับการทดสอบโค้ด

รู้จัก pytest: raises

pytest.raises - ใช้เมื่อคาดว่าเทสต์จะยก 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 เบื้องต้นสำหรับการทดสอบโค้ด

สรุป

การทดสอบ คือ:

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

การนำ เทสต์ ไปใช้:

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

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

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

Preparing Video For Download...