software-testing-00
จากรายงานเรื่อง World Quality Report 2015-16 นั้น
ทำให้เราเห็นแนวโน้มรวมทั้งคำแนะนำต่าง ๆ ของ Software Testing ในปี 2016
ดังนั้นจึงทำการสรุปไว้นิดหน่อย

ในปี 2015 ที่ผ่านมานั้นพบว่า มีการนำแนวคิด Agile และ DevOps
เข้ามาประยุกต์ใช้ในองค์กรต่าง ๆ สูงมาก
มีเป้าหมายเพื่อเพิ่มคุณภาพและ Time-to-market ของ product ต่าง ๆ
รวมทั้งยังสามารถรับมือต่อการเปลี่ยนแปลง
และทำการ release ระบบงานได้สะดวก รวดเร็วขึ้น

นั่นแสดงว่าในส่วนของการทดสอบ
จำเป็นต้องมี Test Automation หรือ การทดสอบแบบอัตโนมัติ

จากรายงาน World Quality Report 2015-16 สรุปแนวโน้มของ Software Testing ไว้ดังนี้

1. มีการลงทุนสูงขึ้นอย่างต่อเนื่อง !!

software-testing-01

2. แนวคิดและแนวปฏิบัติเรื่อง Agile + DevOps เข้ามามีบทบาทสูงขึ้นมาก

นั่นหมายถึง delivery time หรือเวลาในการส่งมอบ product จะสั้นหรือเร็วมากขึ้น
และ product ยังต้องมีคุณภาพในระดับสูง
ดังนั้นจำเป็นต้องนำการทดสอบในระดับต่าง ๆ มาไว้ในกระบวนการเสมอ
ทั้ง Developer testing และ Customer testing

นั่นหมายความว่า Agile + Agile Testing + DevOps เป็นสิ่งที่ต้องอยู่ร่วมกัน
หรือถูกหล่อหลอมให้เป็นเรื่องเดียวกัน และ มีเป้าหมายเดียวกัน
นั่นคือ ส่งมอบงานที่มีคุณภาพได้อย่างรวดเร็ว และ บ่อย ๆ
เพื่อให้สามารถแข่งขันในตลาดได้

software-testing-02

3. Security testing เป็นเรื่องที่ขาดไปไม่ได้เลย

ในปัจจุบันข้อมูลต่าง ๆ เกิดขึ้นเยอะ และ เร็วมาก ๆ
รวมทั้งคนเราบริโภค หรือ เสพข้อมูลกันเยอะและง่ายมาก ๆ
ดังนั้นเรื่อง Security Testing หรือ การทดสอบความปลอดภัยจึงมีความสำคัญอย่างมาก
เพื่อทำการควบคุมและตรวจสอบข้อมูล
รวมทั้งดูว่าข้อมูลเหล่านั้นทำให้เกิดความเสี่ยง
หรืออาจจะส่งผลร้ายต่อระบบหรือไม่ ?
หรืออาจจะถูกโจมตีจากภายนอกได้หรือไม่ ?

ตัวอย่างเช่น
การ review code ด้วยเครื่องมือวิเคราะห์ source code
รวมทั้งการทำ penetrating testing อีกด้วย

software-testing-03

4. Mobile Testing มันจำเป็นมาก ๆ และ ต้องเน้นเป็นพิเศษ

Mobile ได้กลายมาเป็นส่วนหลักของตลาดไปแล้ว
ดูได้จากจำนวนผู้ใช้งาน
ดูได้จากจำนวน App ที่มีให้ download
ดูได้จาก roadmap ต่าง ๆ ของแต่ละองค์กร
หลาย ๆ องค์กรมีนโยบาย Mobile First ไปแล้ว
ดูได้จากความต้องการ Mobile developer ทั้ง Android และ iOS

software-testing-04

แต่การทดสอบระบบบน Mobile กลับยังไม่ดีเท่าที่ควร
หรือบางที่ยังทำการทดสอบแบบ manual เป็นหลัก !!
ซึ่งขัดแย้งต่อ Time-to-maket อย่างมาก
รวมทั้ง Mobile app จะต้องทำการ release บ่อยกว่า web application เยอะมาก
ดังนั้นมันจึงเป็นความท้าทายอย่างมาก
ว่าเราจะทดสอบ Mobile Testing กันอย่างไร ?
เพื่อตอบสนองความต้องการทั้งเรื่องของคุณภาพและ Time-to-market !!
รวมไปถึงเรื่อง Security Testing สำหรับ mobile ด้วย

การทดสอบ Mobile App มีเยอะมาก ๆ
ทั้ง Unit testing
ทั้ง Integration testing
ทั้ง UI testing
ทั้ง Regression testing
ทั้ง Security testing
ทั้ง Performance testing

5. Test Automation หรือ การทดสอบแบบอัตโนมัติ

การทดสอบระบบงานแบบอัตโนมัติเป็นหัวใจของ Continuous Delivery
เนื่องจากขั้นตอนการทำงานมันเปลี่ยนไป

  • ตอบรับต่อการเปลี่ยนแปลงได้เร็วไหม ?
  • ทำงานเป็นรอบสั้น !!
  • ต้องค้นหาและดักจับข้อผิดพลาดต่าง ๆ ได้อย่างรวดเร็ว

ดังนั้นการทดสอบแบบอัตโนมัติจึงมีความสำคัญอย่างมาก
และกลายเป็นสิ่งที่แต่ละองค์กร
ต้องพยายามสร้างคนและขั้นตอนการทำงานที่มีประสิทธิภาพขึ้นมา

แต่เรากลับพบว่า มีผู้เชี่ยวชาญเรื่องนี้น้อยมาก ๆ
ทั้ง Developer, Tester !!
มันจึงเป็นความท้าทายในปี 2016 อย่างมาก

โดยสรุปแล้วเราควรเน้นในเรื่องต่าง ๆ ดังนี้

  • Security testing เป็นสิ่งที่จำเป็นต้องมีและต้องทำงานแบบอัตโนมัติ
  • เน้นในเรื่องคุณภาพที่ส่งผลต่อลูกค้าเป็นหลัก เนื่องจากไม่ค่อยให้ความสำคัญกันมากนัก
  • ปรับเปลี่ยนขั้นตอนการทำงานใหม่ นั่นคือนำแนวคิด Agile และ DevOps มาประยุกต์ใช้กันมากขึ้น
  • ปรับปรุงการทดสอบ เพื่อให้มีคุณภาพและ Time-to-market
  • การทดสอบต้องเป็นแบบ Continuous Testing นั่นคือต้องทดสอบกันอยู่ตลอดเวลา
  • ต้องทำการปรับปรุงความสามารถของคน ทั้งการทดสอบ การพัฒนา และ release เพื่อทำให้เกิด Test Automation ขึ้นมา