การทดสอบ SOA คืออะไร? บทช่วยสอนพร้อมตัวอย่าง
⚡ สรุปอย่างชาญฉลาด
การทดสอบ SOA ยืนยันว่าสถาปัตยกรรมแบบ Service Oriented Architecture (SOA) นั้นมีประสิทธิภาพ Archiสถาปัตยกรรมที่บริการต่างๆ ที่เชื่อมต่อกันอย่างหลวมๆ แลกเปลี่ยนข้อความผ่านเครือข่าย โดยตรวจสอบแต่ละบริการแยกกัน การบูรณาการระหว่างบริการเหล่านั้น และกระบวนการทางธุรกิจทั้งหมดตั้งแต่ต้นจนจบ
การทดสอบ SOA คืออะไร?
SOA (เน้นการบริการ Archiการทดสอบ (สถาปัตยกรรม) คือการทดสอบสถาปัตยกรรมแบบ SOA ซึ่งส่วนประกอบของแอปพลิเคชันได้รับการออกแบบให้สื่อสารกันผ่านโปรโตคอลการสื่อสาร โดยทั่วไปผ่านทางเครือข่าย
SOA คืออะไร?
SOA คือวิธีการรวมแอปพลิเคชันและกระบวนการทางธุรกิจเข้าด้วยกันเพื่อตอบสนองความต้องการทางธุรกิจ
In วิศวกรรมซอฟต์แวร์SOA มอบความคล่องตัวและความยืดหยุ่นให้กับกระบวนการทางธุรกิจ การเปลี่ยนแปลงกระบวนการหรือแอปพลิเคชันสามารถมุ่งเน้นไปที่ส่วนประกอบใดส่วนประกอบหนึ่งโดยไม่ส่งผลกระทบต่อระบบทั้งหมด
นักพัฒนาซอฟต์แวร์ที่ทำงานในด้าน SOA จะพัฒนาหรือซื้อโปรแกรมสำเร็จรูปที่เรียกว่า SOA บริการ.
บริการคืออะไร?
แผนภาพด้านล่างแสดงเกตเวย์การชำระเงินที่เผยแพร่เป็นบริการ ซึ่งเว็บไซต์อีคอมเมิร์ซหลายแห่งสามารถเรียกใช้งานได้
- บริการอาจเป็นหน่วยการทำงานของแอปพลิเคชันหรือกระบวนการทางธุรกิจ ซึ่งสามารถนำกลับมาใช้ซ้ำหรือทำซ้ำได้โดยแอปพลิเคชันหรือกระบวนการอื่น ๆ (ตัวอย่างเช่น ในภาพด้านบน ระบบชำระเงินออนไลน์ (Payment Gateway) เป็นบริการที่เว็บไซต์อีคอมเมิร์ซใด ๆ ก็สามารถนำกลับมาใช้ซ้ำได้ เมื่อใดก็ตามที่ต้องการชำระเงิน เว็บไซต์อีคอมเมิร์ซจะเรียกหรือขอใช้บริการระบบชำระเงินออนไลน์ หลังจากที่การชำระเงินเสร็จสมบูรณ์บนระบบแล้ว ระบบจะส่งการตอบกลับไปยังเว็บไซต์อีคอมเมิร์ซ)
- บริการต่างๆ ง่ายต่อการประกอบและกำหนดค่าส่วนประกอบใหม่ได้ง่าย
- บริการเปรียบเสมือนตัวต่อ พวกมันสามารถนำมาประกอบเป็นแอปพลิเคชันใดๆ ก็ได้ตามต้องการ และการเพิ่มหรือลบออกจากแอปพลิเคชันหรือกระบวนการทางธุรกิจก็ทำได้ง่าย
- โดยทั่วไปแล้ว บริการต่างๆ จะถูกกำหนดด้วยหน้าที่ทางธุรกิจที่บริการเหล่านั้นดำเนินการ มากกว่าที่จะถูกกำหนดด้วยส่วนของโค้ด
บริการเว็บ
บริการ SOA ส่วนใหญ่จะถูกเปิดเผยในรูปแบบของเว็บเซอร์วิส ดังนั้นกลไกการเรียกใช้เว็บเซอร์วิสจึงควรได้รับการอธิบายให้เข้าใจก่อนที่จะเริ่มทำการทดสอบ
บริการเว็บ เป็นส่วนประกอบแอปพลิเคชันอิสระที่สามารถใช้งานได้ผ่านทางเว็บ
ข้อมูลเหล่านี้สามารถเผยแพร่ ค้นหา และใช้งานได้บนเว็บ และสื่อสารกันผ่านทางอินเทอร์เน็ต ลำดับด้านล่างแสดงให้เห็นถึงวิธีการที่ผู้ให้บริการ หน่วยงานจดทะเบียน และผู้บริโภคมีปฏิสัมพันธ์กัน
- ผู้ให้บริการเผยแพร่บริการทางอินเทอร์เน็ต
- ไคลเอนต์ค้นหาบริการเว็บที่ต้องการในฐานข้อมูลบริการเว็บ
- A URL และ wsdl สำหรับบริการเว็บที่ต้องการจะถูกส่งคืน โดยใช้ WSDL และ URLการสื่อสารระหว่างผู้ให้บริการและผู้ร้องขอเกิดขึ้นผ่านข้อความ SOAP
- เมื่อผู้บริโภคเรียกใช้บริการเว็บ ระบบจะสร้างการเชื่อมต่อ HTTP กับผู้ให้บริการ
- มีการสร้างข้อความ SOAP เพื่อสั่งการให้ผู้ให้บริการเรียกใช้ตรรกะของเว็บเซอร์วิสที่ต้องการ
- การตอบกลับที่ได้รับจากผู้ให้บริการคือข้อความ SOAP ซึ่งฝังอยู่ในข้อความตอบกลับ HTTP ข้อความตอบกลับ HTTP นี้คือรูปแบบข้อมูลที่แอปพลิเคชันของผู้ใช้งานเข้าใจได้
ตัวอย่าง
ภาพหน้าจอข้างล่างแสดงรายงานสภาพอากาศที่มาจากบริการภายนอกและฝังอยู่ในหน้าแรกของเครื่องมือค้นหา
หน้าแรกของเว็บไซต์และเครื่องมือค้นหาจะแสดงรายงานสภาพอากาศประจำวัน แทนที่จะเขียนโค้ดส่วนรายงานสภาพอากาศเองทั้งหมด เราสามารถซื้อบริการรายงานสภาพอากาศจากผู้ให้บริการและนำมาผสานรวมเข้ากับหน้าเว็บได้
เลเยอร์การทดสอบ SOA
SOA ประกอบด้วยเทคโนโลยีต่างๆ และแอปพลิเคชันที่สร้างโดยใช้ SOA มีบริการต่างๆ ที่เชื่อมโยงกันอย่างหลวมๆ แผนภาพด้านล่างแสดงให้เห็นถึงสามชั้นที่แผนการทดสอบต้องครอบคลุม
การทดสอบ SOA ควรเน้นที่ 3 ชั้นของระบบ
ชั้นบริการ
ชั้นนี้ประกอบด้วยบริการต่างๆ ที่ระบบเปิดเผยออกมา ซึ่งได้มาจากฟังก์ชันทางธุรกิจ
ตัวอย่างเช่น ลองพิจารณาเว็บไซต์ด้านสุขภาพที่ประกอบด้วย:
- น้ำหนัก Tracเคอร์
- น้ำตาลในเลือด Tracเคอร์
- ความดันโลหิต Tracเคอร์
Trackers จะแสดงข้อมูลที่เกี่ยวข้องและวันที่ที่ป้อนข้อมูลนั้น เลเยอร์บริการประกอบด้วยบริการต่างๆ ที่ดึงข้อมูลที่เกี่ยวข้องจากฐานข้อมูล:
- น้ำหนัก Tracบริการเคอร์
- น้ำตาลในเลือด Tracบริการเคอร์
- ความดันโลหิต Tracบริการเคอร์
- บริการเข้าสู่ระบบ
เลเยอร์กระบวนการ
ชั้นกระบวนการประกอบด้วยกระบวนการต่างๆ ซึ่งเป็นกลุ่มของบริการที่เป็นส่วนหนึ่งของฟังก์ชันการทำงานเดียว
กระบวนการเหล่านี้อาจเป็นส่วนหนึ่งของส่วนติดต่อผู้ใช้ (เช่น เครื่องมือค้นหา) หรือเป็นส่วนหนึ่งของเครื่องมือ ETL ที่ดึงข้อมูลจากฐานข้อมูล
ส่วนสำคัญในชั้นนี้คือส่วนติดต่อผู้ใช้และกระบวนการทำงาน ส่วนติดต่อผู้ใช้ของน้ำหนัก tracker และการบูรณาการเข้ากับฐานข้อมูลเป็นจุดสนใจหลัก
ฟังก์ชันต่อไปนี้เป็นสิ่งที่ควรพิจารณา:
- การเพิ่มข้อมูลใหม่
- การแก้ไขข้อมูลที่มีอยู่
- การสร้างไฟล์ tracเคอร์
- กำลังลบข้อมูล
ชั้นผู้บริโภค
ชั้นนี้ส่วนใหญ่ประกอบด้วยส่วนติดต่อผู้ใช้ ดังแสดงในภาพด้านล่าง
โดยอิงตามเลเยอร์เหล่านี้ การทดสอบแอปพลิเคชัน SOA จึงถูกแบ่งออกเป็นสามระดับ:
- ระดับการบริการ
- ระดับอินเตอร์เฟซ
- ระดับต้นจนจบ
ทิศทางการเดินทางทั้งสองแตกต่างกัน: วิธีการออกแบบการทดสอบใช้แนวทางจากบนลงล่าง ในขณะที่วิธีการดำเนินการทดสอบใช้แนวทางจากล่างขึ้นบน
กลยุทธ์สำหรับการทดสอบ SOA
แนวทางการวางแผนการทดสอบ
- ผู้ทดสอบ SOA ควรเข้าใจสถาปัตยกรรมโดยรวมของแอปพลิเคชันอย่างถ่องแท้
- แอปพลิเคชันจำเป็นต้องถูกแบ่งออกเป็นบริการอิสระ (แต่ละบริการมีโครงสร้างการร้องขอและการตอบสนองของตนเอง และไม่ขึ้นอยู่กับบริการอื่นใดในการสร้างการตอบสนอง)
- โครงสร้างของแอปพลิเคชันจำเป็นต้องได้รับการจัดระเบียบใหม่เป็นสามส่วน ได้แก่ ข้อมูล บริการ และแอปพลิเคชันส่วนหน้า
- ส่วนประกอบทั้งหมดจำเป็นต้องได้รับการวิเคราะห์อย่างละเอียด และควรมีการวางแผนสถานการณ์ทางธุรกิจอย่างรอบคอบ
- ควรจำแนกสถานการณ์ทางธุรกิจออกเป็นสถานการณ์ทั่วไปและสถานการณ์เฉพาะแอปพลิเคชัน
- A Tracเมทริกซ์ความสามารถ ควรเตรียมการ และควรเตรียมกรณีทดสอบทั้งหมด tracปรับให้เข้ากับสถานการณ์ทางธุรกิจ
แนวทางการดำเนินการทดสอบ
- ควรทดสอบส่วนประกอบบริการแต่ละส่วน
- การทดสอบการผสานรวม ของส่วนประกอบบริการควรทำเพื่อตรวจสอบการไหลของข้อมูลผ่านบริการและความสมบูรณ์ของข้อมูล
- การทดสอบระบบ ควรทำการตรวจสอบแบบจำลองทั้งหมดเพื่อตรวจสอบความถูกต้องของการไหลของข้อมูลระหว่างแอปพลิเคชันส่วนหน้าและฐานข้อมูล
- การทดสอบประสิทธิภาพ ควรทำเพื่อการปรับแต่งอย่างละเอียดและประสิทธิภาพสูงสุด
วิธีการทดสอบ SOA
1) การทดสอบโดยใช้ข้อมูลเป็นพื้นฐานโดยพิจารณาจากสถานการณ์ทางธุรกิจ
- ควรวิเคราะห์แง่มุมทางธุรกิจต่างๆ ที่เกี่ยวข้องกับระบบนี้
- ควรพัฒนาสถานการณ์จำลองโดยพิจารณาจากการบูรณาการบริการเว็บต่างๆ ของแอปพลิเคชัน และการบูรณาการบริการเว็บกับแอปพลิเคชัน
- การตั้งค่าข้อมูลควรดำเนินการโดยอิงตามสถานการณ์ข้างต้น
- การตั้งค่าข้อมูลควรครอบคลุมสถานการณ์แบบครบวงจรตั้งแต่ต้นจนจบด้วย
2) ต้นขั้ว
- มีการสร้างอินเทอร์เฟซจำลองขึ้นเพื่อทดสอบบริการ
- สามารถจัดเตรียมอินพุตต่างๆ ผ่านทางอินเทอร์เฟซเหล่านี้ และสามารถตรวจสอบเอาต์พุตได้
- เมื่อแอปพลิเคชันใช้ส่วนต่อประสานกับบริการภายนอกที่ไม่ได้อยู่ภายใต้การทดสอบ (บริการของบุคคลที่สาม) สามารถสร้าง stub ได้ในระหว่างการทดสอบการบูรณาการ
3) การทดสอบการถดถอย
- การทดสอบการถดถอย การอัปเดตแอปพลิเคชันควรทำเมื่อมีการออกเวอร์ชันใหม่หลายเวอร์ชัน เพื่อให้มั่นใจถึงเสถียรภาพและความพร้อมใช้งานของระบบ
- ชุดทดสอบการถดถอยที่ครอบคลุมจะถูกสร้างขึ้นโดยครอบคลุมบริการต่างๆ ซึ่งเป็นส่วนสำคัญของแอปพลิเคชัน
- ชุดทดสอบนี้สามารถนำกลับมาใช้ซ้ำได้ในหลายๆ เวอร์ชันของโครงการ
4) การทดสอบระดับการให้บริการ
การทดสอบระดับการให้บริการประกอบด้วยการทดสอบส่วนประกอบในด้านการทำงาน ความปลอดภัย ประสิทธิภาพ และความสามารถในการทำงานร่วมกัน บริการแต่ละอย่างจะต้องได้รับการทดสอบอย่างอิสระก่อน
5) การทดสอบการทำงาน
การทดสอบสมรรถนะ ควรดำเนินการนี้ในทุกบริการเพื่อ:
- ตรวจสอบให้แน่ใจว่าบริการดังกล่าวตอบสนองต่อคำขอแต่ละรายการได้อย่างถูกต้อง
- ตรวจสอบให้แน่ใจว่าได้รับข้อผิดพลาดที่ถูกต้องสำหรับคำขอที่มีข้อมูลไม่ถูกต้องหรือผิดพลาด
- ตรวจสอบคำขอและคำตอบทุกรายการสำหรับทุกการดำเนินการที่บริการต้องดำเนินการในระหว่างการทำงาน
- ตรวจสอบความถูกต้องของข้อความแสดงข้อผิดพลาดเมื่อเกิดข้อผิดพลาดในระดับเซิร์ฟเวอร์ ไคลเอ็นต์ หรือเครือข่าย
- ตรวจสอบว่าคำตอบที่ได้รับอยู่ในรูปแบบที่ถูกต้อง
- ตรวจสอบว่าข้อมูลที่ได้รับในคำตอบตรงกับข้อมูลที่ร้องขอหรือไม่
6) การทดสอบความปลอดภัย
การทดสอบความปลอดภัยของเว็บเซอร์วิสเป็นสิ่งสำคัญอย่างยิ่งในระหว่างการทดสอบระดับบริการของแอปพลิเคชัน SOA เนื่องจากเป็นการรับประกันความปลอดภัยของแอปพลิเคชัน
ปัจจัยต่อไปนี้จำเป็นต้องได้รับการครอบคลุมระหว่างการทดสอบ:
- เว็บเซอร์วิสต้องปฏิบัติตามมาตรฐานอุตสาหกรรมที่กำหนดโดย WS-Security
- มาตรการรักษาความปลอดภัยควรทำงานได้อย่างไม่มีที่ติ
- การเข้ารหัสข้อมูลและลายเซ็นดิจิทัลบนเอกสาร
- การตรวจสอบสิทธิ์และการอนุญาต
- จะมีการทดสอบช่องโหว่ต่างๆ เช่น SQL injection, มัลแวร์, XSS, CSRF และช่องโหว่อื่นๆ บนระบบ XML.
- การปฏิเสธการโจมตีบริการ
7) การทดสอบประสิทธิภาพ
จำเป็นต้องทำการทดสอบประสิทธิภาพของบริการ เนื่องจากบริการสามารถนำกลับมาใช้ซ้ำได้ และอาจมีแอปพลิเคชันหลายตัวที่ใช้บริการเดียวกัน
ปัจจัยต่อไปนี้จะถูกพิจารณาระหว่างการทดสอบ:
- ประสิทธิภาพและฟังก์ชันการทำงานของบริการจำเป็นต้องได้รับการทดสอบภายใต้ภาระงานหนัก
- จำเป็นต้องเปรียบเทียบประสิทธิภาพของบริการเมื่อใช้งานแบบแยกเดี่ยวและเมื่อใช้งานร่วมกับแอปพลิเคชันอื่น
- โหลดการทดสอบ ควรทำการตรวจสอบประสิทธิภาพของบริการ เพื่อตรวจสอบเวลาตอบสนอง ตรวจสอบปัญหาคอขวด ตรวจสอบการใช้งาน CPU และหน่วยความจำ และคาดการณ์ความสามารถในการขยายขนาด
8) การทดสอบระดับบูรณาการ
- การทดสอบระดับการให้บริการช่วยให้มั่นใจได้ว่าแต่ละบริการทำงานได้อย่างถูกต้อง แต่ไม่รับประกันว่าส่วนประกอบที่เชื่อมต่อกันจะทำงานได้อย่างสมบูรณ์
- การทดสอบการบูรณาการนั้นดำเนินการโดยเน้นที่ประเด็นหลักๆ ดังนี้ อินเตอร์เฟซ.
- ระยะนี้ครอบคลุมสถานการณ์ทางธุรกิจที่เป็นไปได้ทั้งหมด
- ในขั้นตอนนี้ ควรทำการทดสอบที่ไม่เกี่ยวข้องกับการทำงานของแอปพลิเคชันอีกครั้ง การทดสอบด้านความปลอดภัย การปฏิบัติตามข้อกำหนด และประสิทธิภาพ จะช่วยให้มั่นใจได้ถึงความพร้อมใช้งานและความเสถียรของระบบในทุกด้าน
- โปรโตคอลการสื่อสารและเครือข่ายควรได้รับการทดสอบเพื่อตรวจสอบความสอดคล้องของการสื่อสารข้อมูลระหว่างบริการ
9) การทดสอบตั้งแต่ต้นจนจบ
ขั้นตอนนี้นจะช่วยให้มั่นใจได้ว่าแอปพลิเคชันนั้นสอดคล้องกับข้อกำหนดทางธุรกิจทั้งในด้านฟังก์ชันการทำงานและด้านอื่นๆ
รายการด้านล่างนี้จะได้รับการตรวจสอบระหว่างการทดสอบ การทดสอบแบบ end-to-end:
- บริการทั้งหมดทำงานตามที่คาดไว้หลังจากการรวมระบบ
- การจัดการข้อยกเว้น
- ส่วนติดต่อผู้ใช้ของแอปพลิเคชัน
- ข้อมูลที่เหมาะสมไหลผ่านส่วนประกอบทั้งหมด
- กระบวนการทางธุรกิจ
ความท้าทายในการทดสอบ SOA
การนำวิธีการเหล่านั้นไปใช้ไม่ใช่เรื่องง่ายเสมอไป และปัญหาต่างๆ ดังต่อไปนี้มักเกิดขึ้นซ้ำๆ ในโครงการ SOA เกือบทุกโครงการ
- ขาดอินเทอร์เฟซสำหรับบริการต่างๆ
- กระบวนการทดสอบครอบคลุมหลายระบบ ซึ่งก่อให้เกิดความต้องการข้อมูลที่ซับซ้อน
- แอปพลิเคชันนี้ประกอบด้วยส่วนประกอบต่างๆ มากมาย ซึ่งมีแนวโน้มที่จะเปลี่ยนแปลง ดังนั้นจึงจำเป็นต้องทำการทดสอบการถดถอย (Regression Testing) บ่อยครั้ง
- เนื่องจากโครงสร้างแบบหลายชั้น จึงทำให้ยากต่อการแยกข้อบกพร่องออกจากกัน
- เนื่องจากบริการหนึ่งๆ ถูกใช้งานโดยอินเทอร์เฟซที่หลากหลาย การคาดการณ์ปริมาณการใช้งานจึงทำได้ยาก ซึ่งทำให้การวางแผนการทดสอบประสิทธิภาพเป็นเรื่องยุ่งยาก
- SOA คือชุดของเทคโนโลยีที่หลากหลาย การทดสอบแอปพลิเคชัน SOA จำเป็นต้องใช้บุคลากรที่มีทักษะแตกต่างกัน ซึ่งส่งผลให้ต้นทุนในการวางแผนและดำเนินการเพิ่มสูงขึ้น
- เนื่องจากแอปพลิเคชันนี้ผสานรวมบริการหลายอย่าง การทดสอบความปลอดภัยจึงมีปัญหาอยู่ไม่น้อย การตรวจสอบความถูกต้องของการรับรองตัวตนและการอนุญาตนั้นทำได้ยาก
เครื่องมือทดสอบ SOA
มีเครื่องมือทดสอบ SOA มากมายในตลาดที่ช่วยให้ผู้ทดสอบสามารถทดสอบแอปพลิเคชัน SOA ได้ ต่อไปนี้คือเครื่องมือทดสอบ SOA ยอดนิยมบางส่วน
1) SoapUI
SoapUI เป็นเครื่องมือทดสอบการทำงานแบบโอเพนซอร์สสำหรับบริการและ การทดสอบ API.
- แอปพลิเคชั่นเดสก์ท็อป
- รองรับหลายโปรโตคอล ได้แก่ SOAP, REST, HTTP, JMS, AMF และ JDBC
- เว็บเซอร์วิสสามารถพัฒนา ตรวจสอบ และเรียกใช้งานได้
- สามารถใช้สำหรับการทดสอบการรับน้ำหนักได้เช่นกัน การทดสอบระบบอัตโนมัติและการทดสอบความปลอดภัย
- MockServices สามารถสร้าง Stub ได้
- สามารถสร้างคำขอและทดสอบบริการเว็บได้โดยอัตโนมัติผ่านทางไคลเอนต์บริการเว็บ
- มีเครื่องมือสร้างรายงานในตัว
- พัฒนาโดย SmartBear ซึ่งเป็นผู้จัดส่งทั้งสองผลิตภัณฑ์ โอเพนซอร์ส SoapUI การจัดจำหน่ายและเชิงพาณิชย์ ReadyAPI ฉบับ
2) Broadcom Service Virtualization (เดิมชื่อ iTKO LISA)
LISA เป็นชุดผลิตภัณฑ์ที่ให้บริการโซลูชันการทดสอบการทำงานสำหรับระบบแบบกระจาย เช่น SOA ผลิตภัณฑ์นี้ได้ถูกส่งต่อจาก iTKO ไปยัง CA Technologies และปัจจุบันวางจำหน่ายในชื่อ Broadcom Service Virtualization
- สามารถใช้สำหรับการทดสอบการถดถอย การบูรณาการ การโหลด และประสิทธิภาพได้เช่นกัน
- สามารถใช้ในการออกแบบและดำเนินการทดสอบได้
3) UFT หนึ่ง (เดิมชื่อ HP Service Test)
Service Test เป็นเครื่องมือทดสอบการทำงานที่รองรับทั้งการทดสอบ UI และบริการที่ใช้ร่วมกัน ความสามารถในการทดสอบ API ของเครื่องมือนี้ได้ถูกรวมเข้ากับ Unified Functional Testing ซึ่งปัจจุบันจำหน่ายโดย OpenText as UFT หนึ่ง
- การทดสอบทั้งด้านการทำงานและประสิทธิภาพของบริการสามารถทำได้ด้วยสคริปต์เดียว
- ผสานรวมเข้ากับ Quality Center แล้ว และวางจำหน่ายในชื่อ... OpenText ALM / ศูนย์คุณภาพ
- สามารถจัดการบริการและข้อมูลจำนวนมหาศาลได้
- รองรับการทดสอบการทำงานร่วมกันโดยจำลองสภาพแวดล้อมไคลเอนต์ JEE, AXIS และ DotNet
4) Parasoft SOAtest
Parasoft SOAtest เป็นชุดเครื่องมือทดสอบและวิเคราะห์ที่พัฒนาขึ้นสำหรับการทดสอบ API และแอปพลิเคชันที่ขับเคลื่อนด้วย API
- รองรับเทคโนโลยีเว็บเซอร์วิส, REST, JSON, MQ, JMS, TIBCO, HTTP และ XML
- การทดสอบการทำงาน การทดสอบหน่วย การทดสอบการบูรณาการ การทดสอบการถดถอย การทดสอบความปลอดภัย การทดสอบการทำงานร่วมกัน การทดสอบการปฏิบัติตามข้อกำหนด และการทดสอบประสิทธิภาพ สามารถทำได้
- สามารถสร้างเอกสารย่อได้โดยใช้ พาราซอฟท์ เวอร์ชวลไลซ์ซึ่งมีความสามารถมากกว่า SoapUI บริการจำลอง (MockServices)
กรณีการใช้งานการทดสอบ SOA
ตัวอย่างที่แสดงด้านล่างนี้ นำกลยุทธ์ วิธีการ และเครื่องมือข้างต้นไปใช้กับเว็บไซต์อีคอมเมิร์ซแห่งเดียวทีละขั้นตอน
ลองพิจารณาเว็บไซต์อีคอมเมิร์ซที่มีฟังก์ชันและฟังก์ชันย่อยดังต่อไปนี้
ประมวลผลคำสั่งซื้อ
แผนภูมิด้านล่างแสดงการแบ่งกระบวนการสั่งซื้อออกเป็นฟังก์ชันย่อยซึ่งกลายเป็นบริการต่างๆ
PHASE 1
ในขั้นตอนแรกของการทดสอบ SOA ซึ่งเป็นขั้นตอนการวางกลยุทธ์การทดสอบ แอปพลิเคชันจะถูกแบ่งออกเป็นบริการและฟังก์ชันทางธุรกิจ
เรามาพิจารณาบริการต่างๆ ด้านล่างนี้ในแอปพลิเคชันกันเถอะ
- สร้างคำสั่งซื้อ
- ตรวจสอบสถานะลูกค้า
- เปลี่ยนสถานะการสั่งซื้อ
- ตรวจสอบสถานะคำสั่งซื้อ
- ตรวจสอบสินค้าคงคลัง
ฟังก์ชันทางธุรกิจนั้นเหมือนกับฟังก์ชันของเว็บไซต์
หมายเหตุ: เอกสารกลยุทธ์การทดสอบจะประกอบด้วยรายชื่อบริการและฟังก์ชันที่ต้องได้รับการทดสอบ
PHASE 2
นี่คือขั้นตอนการวางแผนการทดสอบ กรณีทดสอบ มีการเขียนไว้สำหรับแต่ละระดับ
ระดับครบวงจร มีการเขียนกรณีทดสอบสำหรับแต่ละกรณีการใช้งานทางธุรกิจและขั้นตอนการทำงาน ตัวอย่างกรณีทดสอบมีดังต่อไปนี้
- สร้างคำสั่งซื้อกับผู้ใช้ที่ใช้งานอยู่
- สร้างคำสั่งซื้อกับผู้ใช้ที่ไม่ได้ใช้งาน
- สร้างคำสั่งซื้อสำหรับสินค้าที่มีอยู่ โดยกำหนดปริมาณการสั่งซื้อน้อยกว่าปริมาณสินค้าที่มีอยู่
- สร้างคำสั่งซื้อสำหรับสินค้าที่มีอยู่ โดยกำหนดปริมาณการสั่งซื้อ > ปริมาณที่มีอยู่
- สร้างใบสั่งซื้อสินค้าที่มีหลายรายการ
- ยกเลิกคำสั่งซื้ออย่างสมบูรณ์
- ยกเลิกคำสั่งซื้อบางส่วน
ระดับการบูรณาการ มีการเขียนกรณีทดสอบสำหรับการทำงานร่วมกันระหว่างฐานข้อมูลและส่วนติดต่อผู้ใช้ ตัวอย่างกรณีทดสอบมีดังต่อไปนี้
- สร้างคำสั่งซื้อใหม่ด้วยสินค้ารายการเดียว ตรวจสอบว่ามีการสร้างคำสั่งซื้อบนฐานข้อมูล
- สร้างคำสั่งซื้อใหม่ด้วยสินค้ารายการเดียว ตรวจสอบว่าราคาที่คำนวณสำหรับคำสั่งซื้อนั้นถูกต้อง
- สร้างคำสั่งซื้อใหม่โดยเพิ่มสินค้าเพียงชิ้นเดียว ตรวจสอบให้แน่ใจว่าปริมาณสินค้าที่มีอยู่ลดลงตามจำนวนเงินที่สั่งซื้อ
- ตรวจสอบว่าสถานะคำสั่งซื้อที่แสดงบนอินเทอร์เฟซผู้ใช้ตรงกับสถานะในฐานข้อมูล
- ยกเลิกคำสั่งซื้อและตรวจสอบว่าสถานะของคำสั่งซื้อได้รับการแก้ไขในฐานข้อมูลแล้ว
- สำหรับการชำระเงินครั้งแรก โปรดตรวจสอบให้แน่ใจว่ารายละเอียดการชำระเงินที่ป้อนในส่วนติดต่อผู้ใช้ได้รับการบันทึกในฐานข้อมูลแล้ว
- สำหรับการคืนเงินการชำระเงิน ตรวจสอบว่ารายละเอียดการชำระเงินในฐานข้อมูลจะปรากฏบน UI หรือไม่
ระดับการให้บริการ บริการแต่ละอย่างจะได้รับการทดสอบภายใต้เงื่อนไขข้อมูลทั้งหมด ตัวอย่างบางส่วนมีดังต่อไปนี้
| ลำดับ | รายละเอียดการสั่งซื้อ | เงื่อนไขการสั่งซื้อ |
|---|---|---|
| 1 | สร้างคำสั่งซื้อ จำนวนรายการ = 1 | ปริมาณในการสั่งซื้อ < ปริมาณในฐานข้อมูล |
| 2 | สร้างคำสั่งซื้อ จำนวนรายการ > 1 | จำนวนสินค้าที่สั่งซื้อ < จำนวนสินค้าในฐานข้อมูล |
| 3 | สร้างคำสั่งซื้อ จำนวนรายการ = 1 | ปริมาณในการสั่งซื้อ > ปริมาณในฐานข้อมูล |
| 4 | ตรวจสอบสถานะการสั่งซื้อ | สถานะบนฐานข้อมูล = ใช้งานอยู่ |
| 5 | ตรวจสอบสถานะการสั่งซื้อ | สถานะในฐานข้อมูล = จัดส่งแล้ว |
| 6 | ตรวจสอบสถานะการสั่งซื้อ | สถานะในฐานข้อมูล = ยกเลิกแล้ว |
| 7 | ตรวจสอบสถานะการสั่งซื้อ | รหัสคำสั่งซื้อ = ไม่ถูกต้อง |
| 8 | ตรวจสอบความพร้อมของผลิตภัณฑ์ | ปริมาณของผลิตภัณฑ์ >0 |
| 9 | ตรวจสอบความพร้อมของผลิตภัณฑ์ | จำนวนสินค้า = 0 |
| 10 | ตรวจสอบความพร้อมของผลิตภัณฑ์ | รหัสผลิตภัณฑ์ = ไม่ถูกต้อง |
ขั้นตอนที่ 3 — การดำเนินการทดสอบ
การดำเนินการทดสอบใช้แนวทางจากล่างขึ้นบน โดยเริ่มจากการทดสอบระดับบริการก่อน จากนั้นจึงทดสอบระดับการบูรณาการ และสุดท้ายคือการทดสอบแบบครบวงจร
1) ระดับการให้บริการ
ลองพิจารณาดูว่า SoapUI เครื่องมือนี้ใช้สำหรับทดสอบแอปพลิเคชัน WSDL และ URL จะถูกเรียกดูเข้าไปในหน้าต่างทดสอบของ SoapUIและคำขอสำหรับแต่ละบริการจะแสดงอยู่ในหน้าต่างคำขอ โดยการแก้ไขข้อมูลตามกรณีทดสอบระดับบริการ คำขอจะถูกสร้างขึ้นสำหรับแต่ละกรณีทดสอบ
| กรณีทดสอบ | ขอร้อง | การตอบสนองที่คาดหวัง |
|---|---|---|
| สร้างใบสั่งซื้อ จำนวนสินค้า = 1 จำนวนสินค้าในใบสั่งซื้อ < จำนวนสินค้าในฐานข้อมูล | x2 2 | o3251 ประสบความสำเร็จ |
| สร้างใบสั่งซื้อ จำนวนสินค้า > 1, ปริมาณในใบสั่งซื้อ < ปริมาณในฐานข้อมูล | ย1 1 ย2 3 | o3251 ประสบความสำเร็จ |
| สร้างใบสั่งซื้อ จำนวนสินค้า = 1, ปริมาณในใบสั่งซื้อ > ปริมาณในฐานข้อมูล | x23 200 | โมฆะ ไม่สำเร็จ |
| ตรวจสอบสถานะคำสั่งซื้อ สถานะในฐานข้อมูล = ใช้งานอยู่ | o9876 | คล่องแคล่ว ประสบความสำเร็จ |
| ตรวจสอบสถานะการสั่งซื้อ สถานะในฐานข้อมูล = จัดส่งแล้ว | o9656 | จัดส่งแล้ว ประสบความสำเร็จ |
| ตรวจสอบสถานะคำสั่งซื้อ รหัสคำสั่งซื้อ = ไม่ถูกต้อง | y5686 | โมฆะ ไม่สำเร็จ |
| ตรวจสอบความพร้อมของสินค้า จำนวนสินค้า >0 | วัน34 | 34 ใช่ ประสบความสำเร็จ |
| ตรวจสอบความพร้อมของสินค้า จำนวนสินค้า = 0 | ปี34 | 0 เลขที่ ประสบความสำเร็จ |
| ตรวจสอบความพร้อมของสินค้า รหัสสินค้า = ไม่ถูกต้อง | sder | ไม่สำเร็จ |
2) ระดับบูรณาการ
กรณีทดสอบระดับการบูรณาการจะดำเนินการบนส่วนติดต่อผู้ใช้และฐานข้อมูล สร้างคำสั่งซื้อที่มีสินค้าเพียงรายการเดียว:
- ผู้ใช้เปิดเว็บไซต์
- ผู้ใช้เข้าไปที่ขั้นตอนการสั่งซื้อสินค้า
- ผู้ใช้เลือกสินค้าและจำนวนที่ถูกต้อง แล้วบันทึกคำสั่งซื้อ
- ควรแสดงข้อความว่าการสั่งซื้อสำเร็จแล้ว
- ผู้ใช้เปิดฐานข้อมูลและตรวจสอบว่ารายละเอียดของคำสั่งซื้อตรงกับข้อมูลที่ป้อนในเว็บไซต์หรือไม่
3) ระดับต้นจนจบ
กระบวนการทางธุรกิจและกรณีการใช้งานต่างๆ จะถูกดำเนินการบนส่วนติดต่อผู้ใช้ ตัวอย่างเช่น การสร้างคำสั่งซื้อที่มีสินค้าหลายรายการ:
- ผู้ใช้เปิดเว็บไซต์
- ผู้ใช้เข้าไปที่ขั้นตอนการสั่งซื้อสินค้า
- ผู้ใช้สอบถามเกี่ยวกับสินค้าและจำนวนที่ต้องการ แล้วเพิ่มลงในตะกร้าสินค้า
- มีการเพิ่มสินค้าอื่นที่ถูกต้องพร้อมจำนวนที่ถูกต้องลงในระบบ และบันทึกคำสั่งซื้อ จากนั้นชำระเงินผ่านวิธีการชำระเงินใหม่ และทำการสั่งซื้อเสร็จสมบูรณ์
- ควรจะแสดงข้อความแจ้งว่า “ทำการสั่งซื้อสำเร็จแล้ว”
- ผู้ทดสอบควรตรวจสอบว่ากระบวนการทั้งหมดเสร็จสมบูรณ์โดยไม่มีการบิดเบือนข้อมูล







