Art of testing and putting trust

“Art ของการ Testing คือรู้ว่าเราควรจะเชื่อใจอะไร”

มันเป็นเรื่องแปลกอย่างนึงที่ว่า เวลาเราทำ Test เรามักจะพยายาม Test code ของเราเอง แล้วก็เชื่อใจโค้ดของ 3rd-party ที่เราเอามาใช้ (React, Redux, etc.)

จริงๆ แล้วเวลาแอพเราพังเนี่ยเขาไม่ได้สนใจหรอกนะว่ามันมาจากโค้ดของคนอื่นหรือโค้ดของเรา พังก็คือพัง ก็แค่นั้น

แต่ทำไมเราถึงมักจะรู้สึกว่าถ้าโค้ดของเราเราต้องเขียนเทสให้เยอะๆ ไม่ยังงั้นคือมีความผิดหรือมี Guilt อะไรซักอย่าง แต่ทำไมกับโค้ดของคนอื่นเราไม่ต้องเทสล่ะ

มันแปลว่าเราเชื่อใจโค้ดชาวบ้านมากกว่าโค้ดตัวเองเหรอ?

หรือเพราะเราแค่เห็นการเทสเป็นพิธีกรรมที่ควรทำ ไม่ใช่เห็นมันเป็นเรื่องของ Risk assessment

ส่วนตัวผมเองก็เคยเขียนเทสกับ 3rd Party api ที่ผมรู้สึกว่ามันไม่เสถียรเอาซะเลย เลยทำ CRUD กับมันเพื่อ Make sure ว่ามันยังทำงานได้นะ มันไม่ค่อยเสถียร

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

ซักวันนึงผมอยากให้คุยกันว่าเราข้ามเทสหรือไม่ข้ามเทส ไม่ใช่ด้วยเหตุผลที่ว่างานเยอะหรืออันนี้ใครเขียน แต่คุยกันว่าความเสี่ยงและผลกระทบของการมีเทสหรือไม่มีเทสตรงนี้เป็นยังไง เทสก็มี Cost ว่ามันทำให้บางครั้งแอพเราเปลี่ยนแปลงยากขึ้น Cost มัน Outweigth benefit หรือไม่

แต่ที่สำคัญเลยคือก่อนอื่น เราต้องรู้ว่าเทสคือเรื่องของความเชื่อใจ ความมั่นใจ

ถ้าเรามองในแง่นี้ แม้แต่ 3rd-party code บางตัวเราก็ต้องทดสอบ และบางโค้ดของเราเองที่มันไม่มีผลกระทบเมื่อพัง (Experimental feature) เราก็อาจจะข้ามได้ หรือไม่ข้ามก็ได้

มุมมองมันจะไม่ใช่เขียนเพื่อแค่ให้มี ให้ได้ชื่อว่าฉันก็เขียนเทสนะเว้ย ฉันใส่ใจนะ

แต่มันจะเป็นเทสที่มีคุณค่าจริงๆ ครับ

Show your support

Clapping shows how much you appreciated Chris’s story.