คำตอบที่ได้รับเลือกจากเจ้าของกระทู้
ความคิดเห็นที่ 2
ผมไม่แน่ใจว่าคุณสัมภาษณ์งานอะไร แต่ผมอนุมานว่าเป็นโปรแกรมเมอร์ละกัน
test case มันก็คือการทดสอบโปรแกรมที่เราเขียนนั่นแหละครับ ว่ามันทำงานได้ถูกต้องหรือเปล่า เช่นถ้ากรอกค่า x y มันจะคำนวนออกมาถูกมั๊ย ถ้าใส่อาร์กิวเมนต์ผิด มันจะ fall back อย่างไร แต่ทำระดับสูงด้วยก็จะมีไปถึงการทดสอบประสิทธิภาพของโปรแกรม เช่นว่าคำนวน xx ใช้เวลาเท่าไหร่ กินแรมกินซีพียูไปเท่าไหร่ โดยหลักๆก็คือคุณต้องกำหนดสถานการณ์ขึ้นมาอันนึงที่จะได้ใช้โปรแกรมของคุณ เช่นคุณทำระบบบันทึกข้อมูล ก็กำหนดสถานการณ์ขึ้นมาเป็นการบันทึกข้อมูล และสร้างเงื่อนไขต่างๆ ที่อาจจะเกิดขึ้น เช่น ลืมกรอกวันเกิด เพื่อจะดูว่าโปรแกรมที่คุณเขียนมันจะทำงานอย่างไรเมื่อเจอสถานการณ์นี้ (เช่นถ้าวันเกิดเป็นข้อมูลสำคัญ แล้วโปรแกรมดันปล่อยให้ผ่านทั้งที่ไม่กรอก นี่ถือว่า fail ครับ)
ไม่แปลกใจเท่าไหร่ที่โปรแกรมเมอร์จบใหม่จะไม่ชินกับการทำ test แต่ลองศึกษาไว้เถอะครับ โดยเฉพาะพวก Test-Driven Development เวลาทำงานสเกลใหญ่ๆ จะมีประโยชน์มากๆ (ผมเองเขียน PHP มาสี่ห้าปี ก็เพิ่งมาศึกษา TDD จริงๆจังๆเหมือนกัน) เพราะเราจะได้เขียนโค๊ดไปเทสไป ตรงไหนผิดพลาดก็จะได้แก้มันตั้งแต่ตอนนั้น ดีกว่าว่าปล่อยไปไม่รู้ว่าพลาด พอมารู้ว่ามันพลาดก็คือเขียนโค๊ดครอบไปไม่รู้กี่ชั้นแล้ว ทีนี้จะรื้อก็ลำบากแล้วครับ
test case มันก็คือการทดสอบโปรแกรมที่เราเขียนนั่นแหละครับ ว่ามันทำงานได้ถูกต้องหรือเปล่า เช่นถ้ากรอกค่า x y มันจะคำนวนออกมาถูกมั๊ย ถ้าใส่อาร์กิวเมนต์ผิด มันจะ fall back อย่างไร แต่ทำระดับสูงด้วยก็จะมีไปถึงการทดสอบประสิทธิภาพของโปรแกรม เช่นว่าคำนวน xx ใช้เวลาเท่าไหร่ กินแรมกินซีพียูไปเท่าไหร่ โดยหลักๆก็คือคุณต้องกำหนดสถานการณ์ขึ้นมาอันนึงที่จะได้ใช้โปรแกรมของคุณ เช่นคุณทำระบบบันทึกข้อมูล ก็กำหนดสถานการณ์ขึ้นมาเป็นการบันทึกข้อมูล และสร้างเงื่อนไขต่างๆ ที่อาจจะเกิดขึ้น เช่น ลืมกรอกวันเกิด เพื่อจะดูว่าโปรแกรมที่คุณเขียนมันจะทำงานอย่างไรเมื่อเจอสถานการณ์นี้ (เช่นถ้าวันเกิดเป็นข้อมูลสำคัญ แล้วโปรแกรมดันปล่อยให้ผ่านทั้งที่ไม่กรอก นี่ถือว่า fail ครับ)
ไม่แปลกใจเท่าไหร่ที่โปรแกรมเมอร์จบใหม่จะไม่ชินกับการทำ test แต่ลองศึกษาไว้เถอะครับ โดยเฉพาะพวก Test-Driven Development เวลาทำงานสเกลใหญ่ๆ จะมีประโยชน์มากๆ (ผมเองเขียน PHP มาสี่ห้าปี ก็เพิ่งมาศึกษา TDD จริงๆจังๆเหมือนกัน) เพราะเราจะได้เขียนโค๊ดไปเทสไป ตรงไหนผิดพลาดก็จะได้แก้มันตั้งแต่ตอนนั้น ดีกว่าว่าปล่อยไปไม่รู้ว่าพลาด พอมารู้ว่ามันพลาดก็คือเขียนโค๊ดครอบไปไม่รู้กี่ชั้นแล้ว ทีนี้จะรื้อก็ลำบากแล้วครับ
แสดงความคิดเห็น
เทสต์เคสทำยังไงคะ ใครพอรู้บ้าง
ยังไม่ค่อยเข้าใจ ใครที่รู้ช่วยแนะนำหน่อยนะคะ