Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 1997

อย่างน้อยก็ขอให้ทดสอบหน้าแรกก่อนนะ

$
0
0

มีโอกาสไปแบ่งปันเรื่องการทดสอบแบบอัตโนมัติสำหรับ Mobile app ทั้ง iOS และ Android คำถามที่น่าสนใจคือ ทุกวันนี้ Mobile app ที่พัฒนากันนั้น ทดสอบกันอย่างไร ? ทดสอบด้วยคนหรือแบบอัตโนมัติเป็นหลัก ? ถ้าทดสอบด้วยคน คำถามต่อมาคือ ทดสอบทุก ๆ feature ไหม ?

ยกตัวอย่างเช่น

ถ้าปัจจุบัน Mobile app มี feature อยู่ 50 features แล้วทำการเพิ่ม feature ที่ 51 เข้ามา คำถามคือ สิ่งที่ทีมพัฒนาบอกว่าเสร็จคือะไร ? ระหว่าง หนึ่งทดสอบ feature ที่ 51 แล้ว สองทดสอบทั้ง 51 features แล้ว ลองตอบดูนะครับ คำตอบส่วนใหญ่คือ ทดสอบ feature ที่ 51 นะ แต่ที่เหลือก็ทดสอบเท่าที่มีเวลา หรือที่เกี่ยวข้อง หรือที่คิดว่าน่าจะกระทบ หรือ สำคัญ ผลที่ออกมาคือ ?

ดังนั้นคำถามต่อมาคือ

ทั้งทีมพัฒนาและ business มีความหวาดกลัวทุกครั้งที่มีการเพิ่มหรือเปลี่ยนแปลง feature ของ app หรือไม่ ? ว่าสิ่งที่เพิ่มหรือเปลี่ยนแปลงมันจะไปทำให้ส่วนการทำงานอื่น ๆ พังไป หรือทำงานไม่เหมือนเดิม !! ถ้ามีความหวาดกลัวแล้ว ก็ต้องทำการทดสอบ แต่จะทดสอบแบบ manual ก็ได้นะ แต่น่าจะไม่ครบทั้งหมด และ ใช้เวลาเยอะมาก ๆ ดังนั้นมาลงทุนกับการทดสอบแบบอัตโนมัติกันไหม ?

คำถามที่ตามมาคือ แล้วมันยากไหม ?

ตอบเลยว่า ไม่ง่าย แต่ถ้าไม่เริ่ม ก็จะอยู่ในวงจรแย่ ๆ เหมือนเดิม ดังนั้นมาเริ่มกันเถอะ

คำถามต่อมาคือ เริ่มอย่างไรละ ตรงไหนดี ?

ตอบง่าย ๆ เลย คือ เริ่มที่หน้าแรกของ app นั่นแหละ แค่เปิด app ขึ้นมา เมื่อเจอหน้าแรก ก็ตรวจสอบว่า แสดงผลถูกต้องหรือไม่ ? จากนั้นก็ทดสอบด้วย action ต่าง ๆ ตามที่มีให้ใช้งาน เช่นถ้ามีปุ่ม ก็ตรวจสอบว่า กดได้หรือไม่ กดแล้วต้องแสดงอะไร เมื่อทดสอบแบบ manual ได้แล้ว ให้ทำการบันทึกการทดสอบเป็น code หรือชุดการทดสอบแบบอัตโนมัติ โดยชุดการทดสอบนี้ ต้องสามารถทดสอบผ่านบนเครื่องของนักพัฒนา (Development) และ เครื่อง Continuous Integration จากนั้นให้ทำการทดสอบชุดการทดสอบแบบอัตโนมัติ เมื่อมีการเปลี่ยน code และชุดการทดสอบบน Version Control เท่านี้ก็เริ่มต้นได้แล้ว !! และสามารถทดสอบได้ในทุก ๆ environment ด้วยนะ
สิ่งที่เน้นย้ำคือ ต้องสามารถทดสอบได้ในทุก ๆ environment เพื่อให้สามารถรู้ความผิดพลาดได้อย่างรวดเร็ว เพื่อแก้ไขได้อย่างรวดเร็ว

คำถามต่อมาคือ ทำเพียงเท่านี้มันจะไปช่วยอะไร ?

คำตอบคือ เริ่มทำเพียงเท่านี้ให้ได้ก่อน เพราะว่า คุณจะต้องเจอปัญหามากมายแน่นอน ทั้ง dependency ต่าง ๆ ของการทำงานในหน้าแรก คุณจะจัดการมันอย่างไร เพื่อให้สามารถทดสอบซ้ำได้ ๆ ซึ่งมันไม่ง่ายเลย เนื่องจากระบบงานส่วนใหญ่ ไม่ได้ถูกออกแบบหรือวางแผนมาสำหรับการทดสอบแบบอัตโนมัติ บ่อยครั้งที่จะต้องรื้อเพื่อให้สามารถทดสอบได้ง่าย ดังนั้น แนะนำให้เริ่มก้าวเล็ก ๆ ไปทีละก้าว จากนั้นจึงเริ่มไปที่หน้าอื่น ๆ ต่อไป
เมื่อ app ของคุณเริ่มมีชุดการทดสอบแบบอัตโนมัติ ที่น่าเชื่อถือ เน้นว่าน่าเชื่อถือ (ไม่ใช่ทดสอบผ่านบ้าง ไม่ผ่านบ้าง) ประโยชน์ที่ได้รับกลับมาคือ ความมั่นใจในการเพิ่มและแก้ไขนั่นเอง

ที่สำคัญสุด ๆ คือ มันส่งผลต่อประสบการณ์การใช้งานของลูกค้านั่นเอง

ลูกค้าไม่สนใจหรอกว่า บริษัทที่พัฒนา app จะใช้เทคโนโลยีอะไร ถ้า app มันไม่ work หรือทำงานไม่ถูกต้อง ก็ไม่มีคนใช้งาน มันก็เท่านั้นเอง ดังนั้นปรับปรุงการพัฒนาและทดสอบ app กันเถอะนะ

Viewing all articles
Browse latest Browse all 1997

Trending Articles