การทดสอบการกำหนดค่าคืออะไร? ตัวอย่างกรณีทดสอบ

⚡ สรุปอย่างชาญฉลาด

การทดสอบการกำหนดค่า (Configuration Testing) คือการเรียกใช้แอปพลิเคชันบนซอฟต์แวร์และฮาร์ดแวร์หลายรูปแบบ เพื่อให้ทีมสามารถยืนยันได้ว่าข้อกำหนดด้านฟังก์ชันการทำงานยังคงใช้ได้ในทุกสภาพแวดล้อม และสามารถระบุการกำหนดค่าที่เหมาะสมที่สุดสำหรับการเปิดตัวได้

  • 🧩 ขอบเขต: Operaระบบต่างๆ เช่น เบราว์เซอร์ เวอร์ชันฐานข้อมูล ไดรเวอร์ หน่วยความจำ และอุปกรณ์ต่อพ่วง ล้วนถือเป็นการกำหนดค่าทั้งสิ้น
  • 📐 สองประเภท: การทดสอบการกำหนดค่าซอฟต์แวร์ครอบคลุมแพลตฟอร์มและการอัปเดต ส่วนการทดสอบการกำหนดค่าฮาร์ดแวร์ครอบคลุมอุปกรณ์ที่เชื่อมต่อ
  • 🗂️ เริ่มจากเมทริกซ์ก่อน: สร้างเมทริกซ์การผสมผสาน จากนั้นจัดลำดับความสำคัญ เนื่องจากความคุ้มครองที่ครอบคลุมทุกด้านนั้นมีค่าใช้จ่ายสูงเกินไป
  • 🖥️ เครื่องเสมือน: สแนปช็อตช่วยลดขั้นตอนการติดตั้งและถอนการติดตั้งซ้ำๆ บนเครื่องทดสอบจริง
  • 🏦 ตัวอย่างการทำงาน: แอปพลิเคชันด้านการธนาคารและแบบจำลองเครื่องนับธนบัตรแสดงให้เห็นถึงกรณีทดสอบฮาร์ดแวร์
  • 🚨 ความล้มเหลวโดยเจตนา: การลบข้อกำหนดเบื้องต้นออกโดยเจตนาจะเปิดเผยข้อบกพร่องที่ห้องปฏิบัติการที่มีอุปกรณ์ครบครันซ่อนไว้

การทดสอบการกำหนดค่าในรูปแบบต่างๆ ทั้งซอฟต์แวร์และฮาร์ดแวร์

การทดสอบการกำหนดค่า

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

การกำหนดค่า หมายถึง การรวมกันใดๆ ที่ผลิตภัณฑ์ต้องรองรับ เช่น เวอร์ชันของระบบปฏิบัติการ เบราว์เซอร์ เวอร์ชันของฐานข้อมูล ไดรเวอร์ ขนาดหน่วยความจำ หรืออุปกรณ์ต่อพ่วงที่เชื่อมต่อ ควรแยกส่วนนี้ออกจากกัน การทดสอบความเข้ากันได้ซึ่งเป็นการถามว่าผลิตภัณฑ์นั้นสามารถทำงานร่วมกับซอฟต์แวร์และแพลตฟอร์มอื่นๆ ได้หรือไม่ การทดสอบการกำหนดค่าจะถามคำถามที่แคบกว่า คือ เวอร์ชันเดียวกันยังคงทำงานได้อย่างถูกต้องหรือไม่ เมื่อการตั้งค่าที่รองรับเปลี่ยนแปลงไป

ตัวอย่างการทดสอบการกำหนดค่า

ลองพิจารณาแอปพลิเคชันบนเดสก์ท็อปเป็นตัวอย่าง

แอปพลิเคชันเดสก์ท็อปมักถูกสร้างขึ้นในรูปแบบ 2 ชั้นหรือ 3 ชั้น ลองพิจารณาแอปพลิเคชันเดสก์ท็อปแบบ 3 ชั้นที่พัฒนาขึ้นใน ASP.NETประกอบด้วยไคลเอ็นต์ เซิร์ฟเวอร์ตรรกะทางธุรกิจ และเซิร์ฟเวอร์ฐานข้อมูล โดยแต่ละส่วนประกอบรองรับแพลตฟอร์มที่ระบุไว้ด้านล่าง

  • แพลตฟอร์มลูกค้า – Windows XP, Windows 7, Windows 8 และอื่นๆ
  • แพลตฟอร์มเซิร์ฟเวอร์ – Windows เซิร์ฟเวอร์ 2008 Windows เซิร์ฟเวอร์ 2008 R2 Windows เซิร์ฟเวอร์ 2012 R2
  • ฐานข้อมูล – SQL Server 2008, SQL Server 2008 R2, SQL Server 2012 และอื่นๆ

ผู้ทดสอบจะต้องทดสอบการทำงานของไคลเอ็นต์ เซิร์ฟเวอร์ และฐานข้อมูลร่วมกันบนแพลตฟอร์มและเวอร์ชันฐานข้อมูลต่างๆ เพื่อยืนยันว่าแอปพลิเคชันทำงานได้อย่างถูกต้องและไม่เกิดข้อผิดพลาดในทุกการใช้งานที่รองรับ

การทดสอบการกำหนดค่าไม่ได้จำกัดอยู่เฉพาะซอฟต์แวร์เท่านั้น แต่ยังรวมถึงฮาร์ดแวร์ด้วย ซึ่งเป็นเหตุผลที่ด้านฮาร์ดแวร์เรียกว่าการทดสอบการกำหนดค่าฮาร์ดแวร์ เช่น เครื่องพิมพ์ สแกนเนอร์ เว็บแคม และอุปกรณ์อื่นๆ ที่แอปพลิเคชันที่กำลังทดสอบต้องรองรับ ตารางด้านล่างแสดงให้เห็นว่าการจัดเรียงชุดค่าผสมเหล่านั้นเป็นอย่างไรก่อนเริ่มการทดสอบ

ตารางทดสอบการกำหนดค่าของชุดค่าผสมระหว่างไคลเอ็นต์ เซิร์ฟเวอร์ และฐานข้อมูล

ข้อกำหนดเบื้องต้นสำหรับการทดสอบการกำหนดค่า

ก่อนเริ่มการทดสอบการกำหนดค่าในโครงการใดๆ จะต้องมีข้อกำหนดเบื้องต้นสามประการครบถ้วน

  • การสร้างเมทริกซ์ที่แสดงรายการการกำหนดค่าซอฟต์แวร์และฮาร์ดแวร์แบบต่างๆ
  • ให้ความสำคัญกับการกำหนดค่าเหล่านั้นก่อน เพราะการทดสอบทุกการกำหนดค่าเป็นเรื่องที่ไม่สามารถทำได้จริง
  • ทดสอบการกำหนดค่าแต่ละแบบตามลำดับที่กำหนดโดยลำดับความสำคัญนั้น

วัตถุประสงค์ของการทดสอบการกำหนดค่า

การทดสอบการกำหนดค่ามีจุดมุ่งหมายเพื่อให้บรรลุสิ่งต่อไปนี้

  • ตรวจสอบความถูกต้องของแอปพลิเคชันตามข้อกำหนดด้านการกำหนดค่า
  • จงใจทำให้เกิดความล้มเหลวเพื่อเปิดเผยข้อบกพร่องที่การทดสอบปกติมองข้ามไป ตัวอย่างเช่น โดยการเปลี่ยนการตั้งค่าภูมิภาค เช่น เขตเวลา ภาษา หรือรูปแบบวันที่
  • กำหนดค่าการตั้งค่าที่เหมาะสมที่สุดของแอปพลิเคชันที่กำลังทดสอบ
  • วิเคราะห์ประสิทธิภาพของระบบขณะที่ทรัพยากรฮาร์ดแวร์เปลี่ยนแปลง เช่น การเพิ่มตัวกระจายโหลด การเพิ่มหรือลดหน่วยความจำ หรือการเชื่อมต่อเครื่องพิมพ์รุ่นต่างๆ
  • วิเคราะห์ประสิทธิภาพของระบบเทียบกับการจัดลำดับความสำคัญ โดยพิจารณาว่าการทดสอบใช้ทรัพยากรที่มีอยู่ได้ดีเพียงใดเพื่อให้ได้การกำหนดค่าที่เหมาะสมที่สุด
  • ตรวจสอบระบบในสภาพแวดล้อมที่มีการกระจายตัวทางภูมิศาสตร์ เช่น เซิร์ฟเวอร์อยู่ในที่หนึ่งและไคลเอนต์อยู่ในอีกที่หนึ่ง ซึ่งระบบควรทำงานได้โดยไม่คำนึงถึงการตั้งค่าระบบในแต่ละพื้นที่
  • ตรวจสอบว่าข้อบกพร่องเกิดขึ้นซ้ำได้ง่ายเพียงใดเมื่อมีการเปลี่ยนแปลงการตั้งค่า
  • ตรวจสอบให้แน่ใจว่ารายการในแอปพลิเคชันยังคงอยู่ tracสามารถเข้าถึงได้ผ่านเอกสารที่ถูกต้องและบันทึกเวอร์ชันที่ระบุได้อย่างชัดเจน
  • ตรวจสอบให้แน่ใจว่ารายการแอปพลิเคชันยังคงสามารถจัดการได้ตลอดระยะเวลาการใช้งาน วงจรชีวิตการพัฒนาซอฟต์แวร์

วิธีทำการทดสอบการกำหนดค่า

กลยุทธ์จะขึ้นอยู่กับว่าการทดสอบการกำหนดค่าประเภทใดในสองประเภทนั้นอยู่ในขอบเขตของการทดสอบ

  • การทดสอบการกำหนดค่าซอฟต์แวร์
  • การทดสอบการกำหนดค่าฮาร์ดแวร์

การทดสอบการกำหนดค่าซอฟต์แวร์

การทดสอบการกำหนดค่าซอฟต์แวร์คือการเรียกใช้แอปพลิเคชันที่กำลังทดสอบกับระบบปฏิบัติการหลายระบบ การอัปเดตซอฟต์แวร์ และเวอร์ชันของส่วนประกอบต่างๆ กระบวนการนี้ใช้เวลานาน เนื่องจากในแต่ละรอบจะต้องทำการติดตั้งและถอนการติดตั้งซอฟต์แวร์ที่เกี่ยวข้องซ้ำๆ

วิธีทั่วไปในการลดต้นทุนนั้นคือการทดสอบบน เครื่องเสมือนเครื่องเสมือน (Virtual Machine) คือสภาพแวดล้อมที่ติดตั้งในซอฟต์แวร์ซึ่งทำงานเหมือนฮาร์ดแวร์จริง ทำให้ผู้ทดสอบทำงานเสมือนอยู่บนเครื่องจริง ในขณะที่การกำหนดค่าต่างๆ นั้นสามารถเปลี่ยนแปลงได้ เครื่องเสมือนจำลองการกำหนดค่าจริงได้อย่างใกล้เคียงเพียงพอสำหรับการตรวจสอบการทำงานส่วนใหญ่

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

โดยทั่วไปการทดสอบการกำหนดค่าซอฟต์แวร์จะเริ่มได้เมื่อใด

  • ข้อกำหนดด้านความสามารถในการกำหนดค่าที่จะต้องทดสอบนั้นได้ระบุไว้แล้ว
  • การขอ สภาพแวดล้อมการทดสอบ พร้อมแล้ว
  • ทีมทดสอบได้รับการฝึกอบรมด้านการทดสอบการกำหนดค่า
  • เวอร์ชันที่เผยแพร่แล้วผ่านการทดสอบหน่วยและการทดสอบการบูรณาการแล้ว

เรื่องทั่วไป กลยุทธ์การทดสอบ กลยุทธ์แรกคือการรันชุดทดสอบการทำงานกับซอฟต์แวร์แต่ละเวอร์ชัน และตรวจสอบว่าแอปพลิเคชันทำงานได้ตามที่ตั้งใจไว้ โดยไม่มีข้อบกพร่องหรือข้อผิดพลาด กลยุทธ์ที่สองคือการจงใจทำให้กรณีทดสอบล้มเหลว และตรวจสอบว่าระบบรับมือได้อย่างมีประสิทธิภาพเพียงใด

ตัวอย่าง:

ลองพิจารณาแอปพลิเคชันธนาคารที่ต้องได้รับการทดสอบบนเบราว์เซอร์หลายตัว หากอยู่ในสภาพแวดล้อมที่มีข้อกำหนดเบื้องต้นครบถ้วน แอปพลิเคชันนั้นอาจผ่านการทดสอบหน่วยและการทดสอบอื่นๆ ได้เป็นอย่างดี การทดสอบการรวม ในห้องปฏิบัติการทดสอบ

เมื่อติดตั้งแอปพลิเคชันเดียวกันที่ไซต์ของลูกค้า แอปพลิเคชันนั้นอาจล้มเหลวได้ เนื่องจากเครื่องเหล่านั้นขาดการอัปเดตซอฟต์แวร์หรือเวอร์ชันของส่วนประกอบที่แอปพลิเคชันต้องพึ่งพาโดยตรงหรือโดยอ้อม การจงใจทำให้การทดสอบล้มเหลวโดยการลบข้อกำหนดการกำหนดค่าบางอย่างออก แล้วทำการทดสอบอีกครั้ง จะเป็นการเปิดเผยข้อบกพร่องประเภทนี้ก่อนที่ลูกค้าจะพบ ภาพหน้าจอด้านล่างแสดงให้เห็นถึงความล้มเหลวที่ขึ้นอยู่กับการกำหนดค่าดังกล่าวซึ่งถูกจำลองขึ้นในสภาพแวดล้อมที่มีการควบคุม

แอปพลิเคชันธนาคารใช้งานไม่ได้บนเครื่องของลูกค้าเนื่องจากขาดข้อกำหนดเบื้องต้น

การทดสอบการกำหนดค่าฮาร์ดแวร์

โดยทั่วไป การทดสอบการกำหนดค่าฮาร์ดแวร์จะดำเนินการในห้องปฏิบัติการที่มีเครื่องจริงซึ่งติดตั้งฮาร์ดแวร์ที่แตกต่างกัน

ทุกครั้งที่มีการปล่อยเวอร์ชันใหม่ ซอฟต์แวร์จะถูกติดตั้งบนเครื่องทุกเครื่อง และชุดทดสอบจะถูกเรียกใช้บนแต่ละเครื่อง เพื่อยืนยันว่าแอปพลิเคชันทำงานได้กับอุปกรณ์ที่เชื่อมต่ออยู่

งานนั้นต้องใช้ความพยายามอย่างมาก ได้แก่ การติดตั้งซอฟต์แวร์บนเครื่องแต่ละเครื่อง การเชื่อมต่อฮาร์ดแวร์ และจากนั้นจึงเรียกใช้ชุดโปรแกรมด้วยตนเองหรือโดยอัตโนมัติก่อน

นอกจากนี้ยังต้องระบุประเภทของฮาร์ดแวร์ที่จะทดสอบด้วย เนื่องจากฮาร์ดแวร์คอมพิวเตอร์และอุปกรณ์ต่อพ่วงมีหลากหลายมาก การทดสอบทั้งหมดจึงเป็นไปไม่ได้ ดังนั้นผู้ทดสอบจึงวิเคราะห์ว่าผู้ใช้งานส่วนใหญ่ใช้อุปกรณ์ใดเป็นหลัก และทำการทดสอบตามลำดับความสำคัญนั้น

กรณีทดสอบตัวอย่าง

ลองพิจารณาสถานการณ์ในด้านการธนาคารที่ทดสอบความเข้ากันได้ของฮาร์ดแวร์ แอปพลิเคชันด้านการธนาคารที่เชื่อมต่อกับเครื่องนับธนบัตรต้องใช้งานได้กับหลายรุ่น เช่น Rolex, Strob, Maxsell และ StoK

ตัวอย่าง กรณีทดสอบ สำหรับเครื่องนับธนบัตร ต้องมีส่วนประกอบดังต่อไปนี้

  • ตรวจสอบการเชื่อมต่อระหว่างแอปพลิเคชันและนาฬิกา Rolex ในกรณีที่ไม่ได้ติดตั้งสิ่งที่จำเป็นไว้ล่วงหน้า
  • ตรวจสอบการเชื่อมต่อระหว่างแอปพลิเคชันและนาฬิกา Rolex หลังจากติดตั้งสิ่งที่จำเป็นครบถ้วนแล้ว
  • ตรวจสอบว่าระบบนับธนบัตรได้อย่างถูกต้อง
  • ตรวจสอบว่าระบบรายงานการนับผิดพลาดอย่างไร
  • ตรวจสอบวิธีการจัดการกับธนบัตรที่ถูกปลอมแปลง
  • ตรวจสอบเวลาตอบสนอง
  • ตรวจสอบให้แน่ใจว่ามีการตรวจจับธนบัตรปลอม

กรณีเหล่านั้นครอบคลุมเพียงรุ่นเดียว และรุ่นอื่นๆ ที่เหลือในท้องตลาดจะต้องได้รับการติดตั้งในห้องปฏิบัติการทดสอบและทดสอบด้วยวิธีเดียวกัน ซึ่งแทบจะไม่สามารถทำได้จริงภายในองค์กร การว่าจ้างองค์กรภายนอกที่เชี่ยวชาญด้านการทดสอบการกำหนดค่าฮาร์ดแวร์จึงมักเป็นทางเลือกที่สมจริงกว่า

คำถามที่พบบ่อย

การทดสอบการกำหนดค่าจะเปลี่ยนแปลงการตั้งค่าที่ผลิตภัณฑ์รองรับ เช่น ระบบปฏิบัติการ เวอร์ชันฐานข้อมูล อุปกรณ์ที่เชื่อมต่อ แล้วเรียกใช้ชุดทดสอบอีกครั้ง การทดสอบความเข้ากันได้จะตรวจสอบว่าผลิตภัณฑ์สามารถทำงานร่วมกับซอฟต์แวร์ภายนอก แพลตฟอร์ม และเบราว์เซอร์ที่ต้องใช้งานร่วมกันได้หรือไม่

จำนวนที่เหมาะสมกับความเสี่ยง การวิเคราะห์การใช้งานจะเป็นตัวกำหนดลำดับ โดยจะครอบคลุมแพลตฟอร์ม เบราว์เซอร์ และอุปกรณ์ที่ผู้ใช้ส่วนใหญ่ใช้ก่อน ตามด้วยข้อกำหนดขั้นต่ำที่รองรับ

โดยปกติแล้ว ทีม QA จะเป็นผู้รับผิดชอบ โดยได้รับการสนับสนุนจากผู้ดูแลระบบที่ทำหน้าที่จัดเตรียมสภาพแวดล้อม สำหรับผลิตภัณฑ์ที่มีฮาร์ดแวร์จำนวนมาก ทีมงานห้องปฏิบัติการเฉพาะ หรือผู้เชี่ยวชาญจากภายนอก จะเป็นผู้รับผิดชอบการดูแลอุปกรณ์จริง

แพลตฟอร์มเครื่องเสมือนและคอนเทนเนอร์สำหรับการติดตั้งซอฟต์แวร์ ห้องปฏิบัติการอุปกรณ์ หรือฟาร์มอุปกรณ์บนคลาวด์สำหรับฮาร์ดแวร์และเบราว์เซอร์ และอื่นๆ ทดสอบระบบอัตโนมัติ เฟรมเวิร์กสำหรับเล่นชุดทดสอบเดียวกันซ้ำในทุกการตั้งค่า

ปัญหาต่างๆ เช่น การระเบิดของจำนวนการรวมกัน ค่าใช้จ่ายของใบอนุญาตและอุปกรณ์ทางกายภาพ การจัดเตรียมสภาพแวดล้อมที่ล่าช้า และข้อบกพร่องที่เกิดขึ้นเฉพาะในรูปแบบการกำหนดค่าเดียวเท่านั้น การจัดลำดับความสำคัญและการจำลองเสมือนสามารถแก้ไขปัญหาเหล่านี้ได้ส่วนใหญ่

หลังจากผ่านการทดสอบหน่วยและการทดสอบการบูรณาการแล้ว โดยปกติจะทำควบคู่ไปกับการทดสอบระบบ และจะทำซ้ำก่อนการออกเวอร์ชันหลักทุกครั้ง เนื่องจากระบบปฏิบัติการหรือไดรเวอร์เวอร์ชันใหม่สามารถทำให้ผลการทดสอบก่อนหน้านี้ไม่ถูกต้อง

แบบจำลองจะจัดอันดับชุดค่าผสมตามการใช้งานจริงและข้อมูลข้อบกพร่องในอดีต ดังนั้นเมทริกซ์จึงถูกตัดให้เหลือเฉพาะแถวที่มีความเสี่ยงสูงสุด นอกจากนี้ยังจัดกลุ่มความล้มเหลวเพื่อแสดงให้เห็นว่าความล้มเหลวใดบ้างที่มีสาเหตุมาจากค่าผสมเดียวกัน

ใช่แล้ว มันจะร่างโครงสร้างการทดสอบแบบพารามิเตอร์ สคริปต์การจัดเตรียมสภาพแวดล้อม และคำจำกัดความงาน CI ที่เรียกใช้ชุดทดสอบชุดเดียวกับหลายๆ การกำหนดค่า ส่วนเมทริกซ์นั้นจะต้องมาจากรายการแพลตฟอร์มที่รองรับอยู่ดี

สรุปโพสต์นี้ด้วย: