มีโอกาสได้เปิดวิชา Embedded Software Testing เลยต้องลองกลับไปเขียนภาษา C และ หาไลบรารีสำหรับทดสอบโปรแกรมภาษาซีมาใช้ มีให้เด็กๆ เลือกเล่นหลายๆ ตัวทั้ง Unity (ไม่ไช้โปรแกรมสร้างเกมส์นะครับ :D) CppUTest แต่มาลงตัวที่ CMocka เพราะสามารถใช้ทำ Stubs และ Mock ได้ด้วย โดยส่วนตัวแล้ว Unity ออกแบบมาค่อนข้างดีสำหรับการทดสอบ embedded แค่เวลาคอมไพล์ยังต้องคอมไพล์ไฟล์ภาษาซีของ Unity เข้าไปร่วมด้วยเลยอาจจะใช้งานยากหน่อย ส่วน CppUTest ก็ออกแนว C++ ไป ถึงแม้ว่าจะใช้ทดสอบโคดภาษาซีได้แต่ก็ไม่ได้เพียวซีจริงๆ CMocka ไม่ได้ออกแบบมาทดสอบ embedded โดยตรงแต่เป็น C ล้วน ใช้การคอมไพล์ช่วยในการสร้าง strub ถึงแม้ว่าเข้าใจยากนิดหน่อย แต่ใช้งานได้ดีทีเดียว เราจะทดลองสร้าง ฟังก์ชัน calculate โดยรับพรารามิเตอร์ 3 ค่า คือ operator, operand1 และ operand2 แล้วลองเรียก ฟังก์ชัน add แต่ ฟังก์ชัน add เป็น ฟังก์ชันที่เราสร้างขึ้มาเองแล้วถูกเรียกใช้ เราต้อง stub ฟังก์ชัน add เพื่อจะได้ทดสอบเฉพาะการทำงานของฟังก์ชัน calculate เท่านั้น โดยการสร้างฟังก์ชัน __wrap_add ขึ้นมา โดยที่ มี return type และ รับพารามิเตอร์เห
หลังจากจบงานก็ควรเขียน blog เป็นที่ระลึกตามธรรมเนียม สำหรับงานครั้งนี้ก็เป็นคนร่วมงานเหมือนครั้งที่แล้ว น้องๆ ที่ภาควิชาและพี่เอ้จาก Tuber เป็นคนจัดงาน โดยรวมแล้วงานออกมาดี ปีนี้มีเบียร์แคมป์ด้วย ถือเป็นครั้งแรกของงานเลย แต่เสียดายหัวข้อน้อยไปหน่อย พูดอะไรในงาน Barcamp Songkhla IV ปีนี้เตรียมหัวข้อไปเรื่องเดียวคือ MQTT เป็น Message Passing ตัวนึงที่น่าสนใจมาก เหมาะแก่การนำมาขยายระบบ และประยุกต์ใช้กับ IoT โดยคร่าวๆ แล้วสรุปได้ประมาณนี้ พัฒนาโดย IBM และ Arcom เวอร์ชันปัจจุบันเป็นได้รับการรับรองมาตฐานจาก OASIS โปรโตคอลเล็กมากมี header ไม่เกิน 2 byte ทำงานอยู่บน TCP/IP มีลักษณะเป็น Publish/Subscribe จะมีส่วนที่ส่งข้อความออก และรับข้อความเข้าผ่านทาง Message Broker ใช้วิธีการ Topic Maching สำหรับการส่งข้อมูลจาก Publisher ไปยัง Subscriber เนื่องจากโปรโตคอลมีขนาดเล็กจึงสามารถใช้งานได้ดีบน node ที่มีขนาดเล็ก มีพลังในการประมวลผลน้อย จึงเหมาะกับอุปกรณ์ต่างๆ ใน IoT ด้วย นอกจากนี้ยังมีประเด็นปลีย่อยต่างๆ สามารถดูได้จาก slide หัวข้อที่น่าสนใจ TDD เปลี่ยนชีวิตคนนี้ยังไง By iBot.o