6 วิธี ที่ใช้ทดสอบซอฟต์แวร์

21-มี.ค.-18

คัมภีร์เทพ IT

การทดสอบซอฟต์แวร์ (Software Testing) ถือเป็นขั้นตอนที่มีบทบาทสำคัญ เพื่อช่วยให้ Software นั้นมีความถูกต้องและมีประสิทธิภาพมากขึ้น การใช้วิธีทดสอบซอฟต์แวร์ที่ไม่ดี/ไม่เหมาะสม อาจทำให้ยากต่อการประมาณเวลาที่ใช้ในการพัฒนาซอฟต์แวร์ และมี  Software Testing Life Cycle ที่ไม่แน่นอนอีกด้วย มาดูกันว่า 6 วิธีที่มักใช้กันทั่วไปใช้ในเรื่อง Software Testing มีอะไรบ้าง

1. Unit Tests
Unit Tests ถือเป็นเทคนิคพื้นฐานของ Software Testing ที่ทำโดย Programmer หรือ Developer เป็นหลักซึ่งวิธีการนี้จะเป็นการ Test โดยที่ไม่สนใจปัจจัยภายนอกต่างๆ หรือ Dependency module ใดๆ Unit tests จะเป็นการทดสอบที่มุ่งเน้นไปที่การทำงานของ Module ย่อยๆ เท่านั้น ไม่สนใจในส่วนอื่นๆ ทั้ง Memory, System หรือ Database ก็ตาม เราใช้ Unit tests ในการทดสอบในการตรวจสอบขั้นพื้นฐานในการทำงานของ Code ส่วนย่อย เพื่อจะได้รู้ว่ามันมีข้อบกพร่องตรงไหนบ้าง มันควรทำได้ง่าย รวดเร็ว ยิ่งทำส่วนนี้ได้ดีเท่าไรยิ่งส่งผลต่อภาพรวมของ Software ทั้งหมดด้วย 
2. Integration Tests
Integration Tests เป็นการทดสอบขั้นที่สูงขึ้นกว่า Unit Tests โดยเป็นการทดสอบส่วนอื่นๆ ที่เกี่ยวข้องด้วย เช่น Network, Databases และ Document Frameworks เป็นต้น ซึ่งจุดประสงค์คือเป็นการทดสอบเพื่อตรวจสอบว่า แต่ละ Unit หรือ Module ย่อยทำงานสอดคล้องกันหรือไม่ บ่อยครั้งที่ Unit ย่อยๆ ทำงานร่วมกันแล้วเกิดปัญหา เช่น Unit A อาจจะไม่ให้ข้อมูลที่ถูกต้องกับ Unit B ซึ่งปัญหาลักษณะนี้มักจะเจอในขั้นทดสอบแบบ Integration Tests
3. Functional Tests
หลังจากที่ได้ทำ Integration Tests ไปแล้ว ต่อไปจะเป็นการนำการ Tests เหล่านั้นมาใช้ประโยชน์มากขึ้น โดย Functional Tests ถือเป็นขั้นตอนตรวจสอบคุณภาพ โดยเป็นการทดสอบ Software โดยมุ่งเน้นตรวจสอบความถูกต้องของ Output ที่ได้ว่าผลลัพธ์ออกมาตรงตาม Requirement ที่กำหนดมาแต่แรกหรือไม่ นั่นเอง
4. Smoke Tests
ที่มาของ Smoke Tests เป็นการเปรียบเทียบการทดสอบอุปกรณ์ที่ว่า ถ้ามีปัญหาหรือเกิดความผิดพลาดขึ้นมา ก็อาจเกิดไฟซ๊อตซึ่งทำให้เกิดควันขึ้นมานั่นเอง Smoke Tests มักรู้จักกันในชื่อ “Build Verification Testing” ซึ่งเป็นการ Test ครอบคลุมเฉพาะ Function หลักๆ ไม่ได้ลงลึกอะไรมากมาย ผลของการ Test ขั้นนี้ จะใช้เพื่อตัดสินใจว่าจะดำเนินการ Test ในขั้นต่อไปหรือไม่เท่านั้นเอง เรียกง่ายๆ ว่าถ้า Smoke Tests ผ่าน ก็ไปสู่การ Test อื่นๆ ต่อไปได้เลย แต่ถ้าเจอปัญหาก็ต้องหยุด เพื่อหา Bug ให้เจอว่าสาเหตุเกิดจากอะไร เกิดที่จุดไหน และแก้ไขให้เรียบร้อยเสียก่อน
5. Regression Tests
เมื่อมี Bug ที่ซับซ้อนเกิดขึ้นก็จะต้องถูกแก้ไข ซึ่งโดยทั่วไปมักจะส่งผลต่อ Strategy ของ Software Testing ด้วย สำหรับ Regression Tests เป็นการทดสอบหนึ่งใน Functional Tests ที่ทดสอบในส่วนของ Code หรือ Module ของระบบที่มีการเปลี่ยนแปลงนั่นเอง ซึ่งมักจะทำซ้ำๆ บ่อยๆ เพื่อให้แน่ใจว่ามันจะยังทำงานได้ถูกต้องและไม่ส่งผลกระทบต่อระบบ
6. Acceptance Tests
วิธีการทดสอบนี้ถือว่าเป็น วิธีการทดสอบ Software ในขั้นตอนท้ายๆ แล้ว Components แต่ละตัวจะถูก Test จากมุมมองของลูกค้าหรือ User โดยตรง ซึ่งในการทดสอบและมีการประทับตราเป็นลายลักษณ์อักษรว่าจะยอมรับได้หรือไม่ การ Test นี้เพื่อเป็นการประกันคุณภาพของ Software จากมุมมองของลูกค้า / User ปลายทาง เช่น การค้นหาข้อผิดพลาดต่างๆ ทดสอบโดยละเอียด และที่สำคัญการ Test ในขั้นนี้ควรเป็นสภาพแวดล้อมที่เหมือนหรือใกล้เคียงกับสภาพแวดล้อมของการใช้งานจริงให้มากที่สุด
แต่อันที่จริงในเรื่อง Software Testing นั้นยังมีวิธีต่างๆ อีกมากมายหลายวิธี ซึ่งขึ้นอยู่กับว่าจะใช้ในสถานการณ์ไหน หรือถ้าใครขยันทำการ Test ที่ละเอียดมากขึ้นเท่าไร ยิ่งทำให้ Software นั้นมีประสิทธิภาพมากยิ่งขึ้น

ที่มา:     http://testorigen.com/6-common-software-testing-methodologies/

อ้างอิง: http://softwaretestingfundamentals.com/smoke-testing/ , https://en.wikipedia.org/wiki/Smoke_testing_(software) ,https://en.wikipedia.org/wiki/Functional_testing

 

 

รับตำแหน่งงานไอทีใหม่ๆ ด้วยบริการ IT Job Alert

 

อัพเดทบทความจากคนวงในสายไอทีทาง LINE ก่อนใคร
อย่าลืมแอดไลน์ @techstarth เป็นเพื่อนนะคะ

เพิ่มเพื่อน

 

บทความที่เกี่ยวข้อง