หลักสูตรนี้เป็นบทแนะนำและการสำรวจการทดสอบสำหรับเว็บ
ในหลักสูตรนี้ คุณจะได้เรียนรู้เกี่ยวกับสิ่งต่างๆ ต่อไปนี้
- พื้นฐานการทดสอบ
- การทดสอบอัตโนมัติกับการทดสอบด้วยตนเอง
- วิธีทำการทดสอบที่ไหนและอย่างไร
- แนวทางปฏิบัติแนะนำ
- ปรัชญาการทดสอบซึ่งรวมถึงสิ่งที่จะให้ทดสอบ ใครเป็นผู้รับผิดชอบ และวิธี พิจารณาการทดสอบเพื่อหาทางสิ้นสุด ไม่ใช่เป็นวัตถุประสงค์
หลักสูตรนี้ยังมีโค้ดตัวอย่างที่กระชับและนำไปใช้ได้จริงให้ได้เรียนรู้
ขอบเขตของหลักสูตรประกอบด้วย JavaScript และโมเดลเอกสารบนฟรอนท์เอนด์ ตลอดจนการทดสอบไลบรารีในแบ็กเอนด์ ซึ่งเรียกใช้ในสภาพแวดล้อมอย่างเช่น Node.js ในตัวอย่างนี้ไม่มีพื้นฐานมาจากการทดสอบ แต่คุณจำเป็นต้องมีพื้นฐานใน JavaScript และมีประสบการณ์เกี่ยวกับ Node.js หรือที่คล้ายกัน เหมาะสำหรับนักพัฒนาแอปมือใหม่และ ผู้มีประสบการณ์
เนื่องจากเฟรมเวิร์กและเครื่องมือการทดสอบส่วนใหญ่ใช้ภาษาเดียวกัน การทดสอบ Learn Testing จึงใช้แนวทางทั่วไปในการทดสอบ ในกรณีที่ต้องกำหนดความเฉพาะเจาะจง เราจะใช้ Vitest ซึ่งเป็นเฟรมเวิร์กการทดสอบที่กำลังเพิ่มความนิยม และสาธิตวิธีทดสอบคอมโพเนนต์สำหรับเว็บที่เขียนโดยใช้ React หรือ Lit หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับตัวเลือกนี้ โปรดดูภาคผนวก
คุณอาจเรียนรู้หลักสูตรนี้ตั้งแต่ต้นจนจบ แต่ก็ใช้เป็นข้อมูลอ้างอิงสำหรับหัวข้อที่ต้องการได้ หลักสูตรจะลิงก์ไปยังแหล่งข้อมูลต่างๆ หากเกี่ยวข้อง
สิ่งที่คุณจะได้เรียนรู้มีดังนี้
เริ่มต้นการทดสอบ
การทดสอบคืออะไร
นี่เป็นการแนะนำการทดสอบในระดับสูง รวมถึงตัวอย่างการทดสอบใน JavaScript ที่นำไปปฏิบัติได้จริง นอกจากนี้ยังมีการข้อมูลเบื้องต้นเกี่ยวกับขนาดของการทดสอบแต่ละครั้งด้วย
ตำแหน่งที่ทำการทดสอบ
การทดสอบช่วยให้คุณเขียนซอฟต์แวร์ทำงานได้อย่างมีประสิทธิภาพ และถึงแม้ว่าจะเรียกใช้ด้วยตนเองโดยใช้บรรทัดคำสั่งได้ แต่คุณก็เรียกใช้โดยเป็นส่วนหนึ่งของกระบวนการอัตโนมัติหรือระบบบิลด์ได้ด้วย
สภาพแวดล้อมการทดสอบ
เครื่องมือรันไทม์ เช่น โหนด มีไว้ใช้กับโค้ดอเนกประสงค์ และโค้ดการทดสอบสำหรับเบราว์เซอร์นั้นอาจเรียกใช้ในสภาพแวดล้อมที่จำลองขึ้น หรือใช้เฟรมเวิร์กที่ออกแบบมาเพื่อการทดสอบเบราว์เซอร์
ประเภทการทดสอบอัตโนมัติ
เรียนรู้เกี่ยวกับการจัดหมวดหมู่ทั่วไปของประเภทการทดสอบ ซึ่งส่วนใหญ่จะสอดคล้องกับขนาด ที่สำคัญ ประเภทการทดสอบไม่มีคำจำกัดความที่เคร่งครัดและจะเปลี่ยนแปลงไปตามความต้องการของคุณ
สิ่งที่ควรทดสอบและแนวทางของคุณ
การระบุส่วนที่สำคัญที่สุดของโค้ดเบสที่จะใช้การทดสอบที่เข้มงวดอาจเป็นการตัดสินใจที่ยากลำบาก โมดูลนี้จะแนะนำแนวคิดของการทดสอบในช่วงท้าย และวิธีประเมินโค้ดเพื่อทำการทดสอบ
การทดสอบคอมโพเนนต์ในทางปฏิบัติ
ในโมดูลที่นำไปใช้ได้จริงนี้ คุณจะได้เรียนรู้วิธีทดสอบคอมโพเนนต์ React ที่ไม่เหมาะเท่าไหร่ ซึ่งจะใช้ Vitest ผ่านตัวอย่าง 3 ตัวอย่างที่แตกต่างกัน ได้แก่ การสกัดกั้นการจราจรของข้อมูลในเครือข่ายที่ดำเนินการด้วย fetch()
, การจำลอง Dependency ภายนอก และการใช้
Context
ของ React เพื่อระบุบิตโค้ดที่กำหนดเองสำหรับการทดสอบเท่านั้น
การวิเคราะห์แบบคงที่
การใช้เครื่องมือ เช่น TypeScript และ ESLint แม้ว่าจะยังไม่มีแนวทางในการทดสอบ ก็สามารถให้บริการการตรวจสอบแบบอัตโนมัติได้ โมดูลนี้จะพูดถึงเครื่องมือ ทางเลือกเหล่านี้
คำยืนยันและค่าดั้งเดิมอื่นๆ
เครื่องมือสำหรับการเทรด
เรียนรู้เกี่ยวกับพื้นฐานทั่วไปในไลบรารีหรือเฟรมเวิร์กการทดสอบส่วนใหญ่ ซึ่งรวมถึง test()
และ assert
ซึ่งเป็นหัวใจสำคัญของการทดสอบทั้งหมดที่คุณเขียนใน JavaScript
เร็วๆ นี้
- หลีกเลี่ยงข้อผิดพลาดที่พบบ่อยในการทดสอบ
- การทดสอบคู่ผสม
- ไลบรารีทดสอบและยูทิลิตี
- ตัดสินใจเกี่ยวกับกรอบการทดสอบ
ส่วนที่เหลือของส่วนนี้จะมีหน้าต่างๆ เพิ่มเติมเกี่ยวกับเฟรมเวิร์กการทดสอบและไลบรารี วิธีใช้งาน และวิธีตัดสินใจว่าจะใช้เครื่องมือใดและใช้เครื่องมือใดอีกบ้าง
พร้อมใช้งานเร็วๆ นี้: การทดสอบที่เกิดจากปัญหา
คุณจะได้เรียนรู้รูปแบบวิธีการรับมือกับความท้าทายต่างๆ ที่พบได้บ่อยในการทดสอบเว็บ
การทดสอบอัตโนมัติในการใช้งานจริงเร็วๆ นี้
ส่วนนี้เป็นส่วนที่ใช้ได้จริงซึ่งแสดงวิธีทดสอบเว็บไซต์อีคอมเมิร์ซที่สร้างด้วย Next.js รวมถึงโค้ดที่คุณนำไปตรวจสอบและเรียนรู้ด้วยตนเองได้ คุณจะได้เรียนรู้วิธีทดสอบคอมโพเนนต์ วิธีทำงานกับบริการภายนอก ซึ่งรวมถึงการชำระเงิน สำหรับการทดสอบ และวิธีสร้างการทดสอบแบบครบวงจรสำหรับเว็บไซต์ที่มีหน้าเข้าสู่ระบบแบบไม่บังคับ
เร็วๆ นี้: ปรัชญาในการทดสอบ
การทดสอบอาจเป็นความท้าทายทางวิศวกรรม แต่การรู้ว่าจะต้องทดสอบอะไร ใครมีความรับผิดชอบ และแนวทางปฏิบัติแนะนำก็ถือเป็นความท้าทายสำหรับทีมพัฒนาเช่นกัน
พร้อมใช้งานเร็วๆ นี้: การเขียนโค้ดที่ทดสอบได้
หลักสูตรนี้มีคำแนะนำเกี่ยวกับการทดสอบโค้ดตามที่มีอยู่ แต่ทีมของคุณสามารถใช้รูปแบบต่างๆ เพื่อให้ทดสอบโค้ดได้ง่ายขึ้น ส่วนนี้จะครอบคลุม วิธีการบางอย่าง