May 24, 2016

Monkey Test in iOS Project ให้ลิงลองเล่นแอพเราดูหน่อยซิ

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

มีการทดสอบแบบหนึ่ง ที่ไม่ได้มีจุดประสงค์หลักในการทดสอบเชิงฟังก์ชัน แต่เน้นไปที่การดูว่าถ้าซอฟท์แวร์เราถูกใช้ไปนานๆ หรือใช้ในรูปแบบแปลกๆ ไม่เจาะจง จะทำให้แอพพังหรือไม่ นั่นก็คือการทดสอบที่เราเรียกมันว่า Stress Test

ปกติการทดสอบแบบนี้เรามักใช้คนมากดแอพเรามั่วๆ กดอะไรก็ได้เรื่อยๆ กดไปนานๆ เผื่อเจอจุดผิดในแอพ กดไปเลยนานๆ เล่นไปเลยเรื่อยๆ เผื่อแอพจะพังเข้าสักวันเพราะสาเหตุอะไรก็ว่าไป การกดแบบไม่คิดและมีรูปแบบมั่วๆ เหล่านี้เรามักเรียกเปรียบว่าเอาแอพให้ลิงลองกดเล่นดู หรือการกดแบบลิง

ในฝั่ง Android นั้นมี ลิง ของตัวเองสำหรับทำ stress test มาให้แล้ว แล้วในฝั่ง iOS ล่ะ ? อันที่จริง Instruments ที่ติดมากับ Xcode นั้นสามมารถทำ stress test ได้ แต่มันไม่ได้ถูกออกแบบมาให้เราใช้งานได้อย่างตรงไปตรงมาสำเร็จรูปแบบเดียวกับที่ Android มีสักทีเดียว

วิธีที่เราจะใช้ทำ stress test กับ iOS แอพของเราก็คือการเขียนโค้ด javascript แล้วสั่งมันสุ่มวนทำ Interaction ต่างๆ บนหน้าจอไปเรื่อยๆ เท่านั้นเอง

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

โชคดีที่โลกนี้ยังไม่สิ้นหวังไปซะทั้งหมด เพราะนาย Jonathan Penn ได้เขียน Javascript ชุดนี้ให้เรานำมาใช้ใน Instruments ได้เลย ... เอาล่ะ มาลองใช้กันสักหน่อยว่าเป็นยังไง

May 05, 2016

ซ่อน API ที่ซับซ้อนด้วย Builder Pattern

สำหรับตอนนี้ เป็นการเอาเหล้าเก่าในขวดใหม่มาเล่าต่อ สำหรับใครที่เคยเขียนภาษา​ Java หรือ Groovy มาก่อน ก็จะคุ้ยเคยกับคลาสที่ลงท้ายด้วยคำว่า Builder กัน รวมถึงวิธีใช้งานคลาสเหล่านี้ด้วย

ทีนี้ถึงคราวของ Swift บ้าง เรามาลองออกแบบ Builder Class ด้วย Swift อย่างง่ายๆ กัน

บน iOS ก็มี API บางตัวเวลาเราจะใช้งานมันได้ ก็ต้องสร้างนั่นสร้างนี่ 2-3 ขั้นตอน กว่าเราจะรวมร่างให้มันกลายเป็นสิ่งที่เราต้องการได้ ยกตัวอย่างเช่น การแสดง Alert ขึ้นมาบนหน้าจอ ที่เวลาเราจะสร้าง Alert ขึ้นมาสักอัน เราจำเป็นต้องรู้ก่อน ว่าเราจะใช้ UIAlertController สำหรับกำหนด title, message และใช้ UIAlertAction สำหรับสร้างปุ่มบน Alert และ action ที่จะเกิดขึ้นตามมาหลังจากกดปุ่มนั้น พอสร้างเสร็จก็เพิ่มลงไปใน UIAlertController และสุดท้าย ก็สั่งให้ UIViewController แสดง UIAlertController ที่กำหนดค่าเรียบร้อยแล้วขึ้นมาบนหน้าจอให้ User เชยชม

จะเห็นว่าเราต้องรู้จักขั้นตอนต่างๆ เพื่อที่เราจะสร้าง Alert ง่ายๆ ขึ้นมาสักอันหนึ่งตามที่ได้อธิบายไป และในคราวนี้ผมจะยกตัวอย่างการประยุกต์ใช้ Builder Pattern กับการสร้าง Alert ให้ดูกัน