• Baifern

Dev Talk - Unit Testing


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

หัวข้อที่เราจะยกมาคุยในคอลัมน์ DevTalk นี้ก็คือ " Unit Testing " โดย ใบเฟิร์น แม่บ้านโค้ดดิ้งประจำ H LAB



รับฟังเสียงผู้ป่วยด้วย Patient Journey Analysis เพื่อการออกแบบบริการสุขภาพที่ยั่งยืน

 

อ่านตามหัวข้อ

 

Why Unit Testing

  • HLAB พัฒนาระบบ CORTEX ต่างๆ มานาน จนเกิดหลาย module หลาย application ย่อยๆ เช่น CORTEX-ER, Venti, OPD, Staff-Scheduling

  • เมื่อ application มีขนาดใหญ่ขึ้น code ที่เขียนๆกันมาก็เริ่มเยอะขึ้น

  • มีการแก้ไข application ทั้งแก้ application เก่า (fix bugs, enhancement) และสร้าง application ใหม่

  • มีการขยายทีม software development ทำให้มีคนมีส่วนร่วมในการแก้ไข code มากขึ้น

  • การแก้ไข code จุดๆหนึ่งอาจจะเกิดผลกระทบกับส่วนอื่นๆโดยที่เราไม่รู้ตัว หรืออาจจะ ทำให้ feature เดิมของ application ทำงานผิดไปจากเดิมได้

  • เราสามารถป้องกันเหตุการณ์นี้ได้ด้วยการทำ “unit testing”

  • เดิมเวลาแก้ไข application ทีม developer จะแจ้งทีม tester ว่ากระทบอะไรบ้าง เพื่อให้ ทางเทสเตอร์ได้ทำการทดสอบก่อนที่จะ deployment แต่ก็อาจจะสิ้นเปลืองทั้งเวลาและ effort ในการทดสอบ และอาจจะไม่การันตีว่า developer จะประเมินผลกระทบได้ครบถ้วน จริงๆ เนื่องจากปัจจุบัน application ของเราใหญ่และมีความซับซ้อนมาก

 

Unit Testing for Front-end


Web component

Web component คือ UI component ที่พัฒนาขึ้นมา (เช่น ปุ่มสวยๆ ใน CORTEX ที่มีใช้ซ้ำๆหลายๆที่ เพื่ออำนวยความสะดวกให้ developer สามารถเอาไป ใช้ได้เลย ไม่ต้องใช้เวลาเขียนใหม่)


การทำ unit testing สำหรับ web component จะเน้นที่

  • Component สามารถใช้งานได้ทั้งบน application ที่พัฒนาด้วย Angular และ พัฒนาด้วย React

  • แก้ไขแล้ว Component สามารถทำงานได้ถูกต้อง ถ้ามีการเปลี่ยนแปลง ส่วนที่ เปลี่ยนแปลงก็ต้องเป็นไปตามที่คาดไว้ โดยจะใช้ snapshot testing ช่วยดูว่าก่อนแก้ component กับหลังแก้ component มีเปลี่ยนแปลงตรงไหนบ้าง กระทบ component อื่นๆ หรือไม่


Application ที่พัฒนาด้วย React

เดิม HLAB ใช้ Angular ในการพัฒนา application ฝั่งที่เป็น front-end แต่ปัจจุบันเริ่มมีการพัฒนา application ใหม่ๆ ด้วย React

การทำ Unit Testing บน application ที่พัฒนาด้วย React จะเน้น 2 ส่วนคือ

  • การทดสอบ business logic ที่เขียนไว้บน front-end เช่น การคำนวณสรุปการควบ เวร ควงเวรใน staff-scheduling

  • UI Component บน React application ที่เอาไว้ใช้ซ้ำๆกัน หลายๆที่ เนื่องจาก ถ้าแก้ไปแล้ว อาจจะกระทบหลายๆ feature จึงควรมี unit test ไว้

 

Unit Testing for Back-end


HLAB พัฒนา application ฝั่ง backend ด้วย NestJS

  • Backend จะถูกพัฒนาแยกออกเป็นส่วนๆ เรียกว่า microservice แต่ละ microservice จะ แยกตาม function การใช้งาน เช่น Auth managment service ดูแลเรื่องการยืนยันตัวตน และสิทธิในการใช้งานระบบ, Patient service ดูแลเรื่องการจัดการข้อมูลของผู้ป่วย

  • สำหรับฝั่ง back-end นำเสนอการใช้ integration testing แทน unit test เพื่อให้การ ทดสอบแต่ละ function ครอบคลุมทุก module ที่เกี่ยวข้อง รวมทั้งทดสอบการเชื่อมต่อ แต่ละ module ว่าสามารถทำงานด้วยกันได้ถูกต้อง


 


H LAB เป็นผู้เชี่ยวชาญในการให้คำปรึกษา และพัฒนา Modern Cloud-Based Healthcare Platform สำหรับการบริหารจัดการในโรงพยาบาล พวกเรามีความตั้งใจในการพัฒนาระบบสุขภาพแบบมุ่งเน้นคุณค่า เพื่อเพิ่มศักยภาพในการให้บริการของโรงพยาบาล โดยมีเป้าหมายในการยกระดับคุณภาพการรักษาและการเข้าถึงระบบสาธารณสุขของประชาชนที่ทั่วถึงมากยิ่งขึ้น

116 views