การทดสอบ SOA คืออะไร? บทช่วยสอนพร้อมตัวอย่าง

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

การทดสอบ SOA ยืนยันว่าสถาปัตยกรรมแบบ Service Oriented Architecture (SOA) นั้นมีประสิทธิภาพ Archiสถาปัตยกรรมที่บริการต่างๆ ที่เชื่อมต่อกันอย่างหลวมๆ แลกเปลี่ยนข้อความผ่านเครือข่าย โดยตรวจสอบแต่ละบริการแยกกัน การบูรณาการระหว่างบริการเหล่านั้น และกระบวนการทางธุรกิจทั้งหมดตั้งแต่ต้นจนจบ

  • 🔘 Archiเทคเจอร์: บริการคือฟังก์ชันทางธุรกิจที่สามารถนำกลับมาใช้ซ้ำได้ ซึ่งแอปพลิเคชันใดๆ ก็สามารถเรียกใช้ ประกอบ หรือแทนที่ได้อย่างอิสระ
  • ☑️ เลเยอร์: การทดสอบจะมุ่งเน้นไปที่เลเยอร์บริการ เลเยอร์กระบวนการ และเลเยอร์ผู้บริโภคของแอปพลิเคชัน
  • ระดับ: การทดสอบระดับบริการ ระดับอินเทอร์เฟซ และระดับแบบครบวงจร ครอบคลุมถึง...tracระบบสารสนเทศ การไหลของข้อมูล และสถานการณ์ทางธุรกิจ
  • 🧪 วิธีการ: การทดสอบข้อมูลตามสถานการณ์จำลอง การใช้ตัวจำลอง การตรวจสอบการทำงาน ความปลอดภัย ประสิทธิภาพ การบูรณาการ และการตรวจสอบการถดถอย จะถูกนำมาใช้ในทุกระดับ
  • 🛠️ เครื่องมือ: SoapUIบรอดคอม เซอร์วิส เวอร์ชวลไลเซชัน OpenText UFT One และ Parasoft SOAtest ครอบคลุมการทดสอบการทำงาน การทดสอบเสมือนจริง และการทดสอบโหลด
  • ⚠️ ความท้าทาย: การขาดอินเทอร์เฟซ การแยกข้อบกพร่องแบบหลายชั้น โหลดที่ไม่สามารถคาดเดาได้ และเทคโนโลยีที่หลากหลาย ทำให้ต้นทุนการวางแผนสูงขึ้น

การทดสอบ SOA

การทดสอบ SOA คืออะไร?

SOA (เน้นการบริการ Archiการทดสอบ (สถาปัตยกรรม) คือการทดสอบสถาปัตยกรรมแบบ SOA ซึ่งส่วนประกอบของแอปพลิเคชันได้รับการออกแบบให้สื่อสารกันผ่านโปรโตคอลการสื่อสาร โดยทั่วไปผ่านทางเครือข่าย

SOA คืออะไร?

SOA คือวิธีการรวมแอปพลิเคชันและกระบวนการทางธุรกิจเข้าด้วยกันเพื่อตอบสนองความต้องการทางธุรกิจ

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

นักพัฒนาซอฟต์แวร์ที่ทำงานในด้าน SOA จะพัฒนาหรือซื้อโปรแกรมสำเร็จรูปที่เรียกว่า SOA บริการ.

บริการคืออะไร?

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

ระบบชำระเงินออนไลน์ที่เผยแพร่ในรูปแบบบริการ SOA ที่สามารถนำกลับมาใช้ใหม่ได้ ซึ่งเรียกใช้โดยแอปพลิเคชันอีคอมเมิร์ซ

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

บริการเว็บ

บริการ SOA ส่วนใหญ่จะถูกเปิดเผยในรูปแบบของเว็บเซอร์วิส ดังนั้นกลไกการเรียกใช้เว็บเซอร์วิสจึงควรได้รับการอธิบายให้เข้าใจก่อนที่จะเริ่มทำการทดสอบ

บริการเว็บที่ทำหน้าที่เป็นส่วนประกอบแอปพลิเคชันอิสระที่สามารถเข้าถึงได้ผ่านทางเว็บ

บริการเว็บ เป็นส่วนประกอบแอปพลิเคชันอิสระที่สามารถใช้งานได้ผ่านทางเว็บ

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

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

  • ผู้ให้บริการเผยแพร่บริการทางอินเทอร์เน็ต
  • ไคลเอนต์ค้นหาบริการเว็บที่ต้องการในฐานข้อมูลบริการเว็บ
  • A URL และ wsdl สำหรับบริการเว็บที่ต้องการจะถูกส่งคืน โดยใช้ WSDL และ URLการสื่อสารระหว่างผู้ให้บริการและผู้ร้องขอเกิดขึ้นผ่านข้อความ SOAP
  • เมื่อผู้บริโภคเรียกใช้บริการเว็บ ระบบจะสร้างการเชื่อมต่อ HTTP กับผู้ให้บริการ
  • มีการสร้างข้อความ SOAP เพื่อสั่งการให้ผู้ให้บริการเรียกใช้ตรรกะของเว็บเซอร์วิสที่ต้องการ
  • การตอบกลับที่ได้รับจากผู้ให้บริการคือข้อความ SOAP ซึ่งฝังอยู่ในข้อความตอบกลับ HTTP ข้อความตอบกลับ HTTP นี้คือรูปแบบข้อมูลที่แอปพลิเคชันของผู้ใช้งานเข้าใจได้

ตัวอย่าง

ภาพหน้าจอข้างล่างแสดงรายงานสภาพอากาศที่มาจากบริการภายนอกและฝังอยู่ในหน้าแรกของเครื่องมือค้นหา

บริการรายงานสภาพอากาศที่ซื้อมาจากผู้ขายและฝังไว้ในหน้าแรกของเว็บไซต์

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

เลเยอร์การทดสอบ SOA

SOA ประกอบด้วยเทคโนโลยีต่างๆ และแอปพลิเคชันที่สร้างโดยใช้ SOA มีบริการต่างๆ ที่เชื่อมโยงกันอย่างหลวมๆ แผนภาพด้านล่างแสดงให้เห็นถึงสามชั้นที่แผนการทดสอบต้องครอบคลุม

สามเลเยอร์สำหรับการทดสอบ SOA เรียงซ้อนกัน ได้แก่ เลเยอร์บริการ เลเยอร์กระบวนการ และเลเยอร์ผู้บริโภค

การทดสอบ SOA ควรเน้นที่ 3 ชั้นของระบบ

ชั้นบริการ

ชั้นนี้ประกอบด้วยบริการต่างๆ ที่ระบบเปิดเผยออกมา ซึ่งได้มาจากฟังก์ชันทางธุรกิจ

ตัวอย่างเช่น ลองพิจารณาเว็บไซต์ด้านสุขภาพที่ประกอบด้วย:

  • น้ำหนัก Tracเคอร์
  • น้ำตาลในเลือด Tracเคอร์
  • ความดันโลหิต Tracเคอร์

Trackers จะแสดงข้อมูลที่เกี่ยวข้องและวันที่ที่ป้อนข้อมูลนั้น เลเยอร์บริการประกอบด้วยบริการต่างๆ ที่ดึงข้อมูลที่เกี่ยวข้องจากฐานข้อมูล:

  • น้ำหนัก Tracบริการเคอร์
  • น้ำตาลในเลือด Tracบริการเคอร์
  • ความดันโลหิต Tracบริการเคอร์
  • บริการเข้าสู่ระบบ

เลเยอร์กระบวนการ

ชั้นกระบวนการประกอบด้วยกระบวนการต่างๆ ซึ่งเป็นกลุ่มของบริการที่เป็นส่วนหนึ่งของฟังก์ชันการทำงานเดียว

กระบวนการเหล่านี้อาจเป็นส่วนหนึ่งของส่วนติดต่อผู้ใช้ (เช่น เครื่องมือค้นหา) หรือเป็นส่วนหนึ่งของเครื่องมือ ETL ที่ดึงข้อมูลจากฐานข้อมูล

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

ฟังก์ชันต่อไปนี้เป็นสิ่งที่ควรพิจารณา:

  • การเพิ่มข้อมูลใหม่
  • การแก้ไขข้อมูลที่มีอยู่
  • การสร้างไฟล์ tracเคอร์
  • กำลังลบข้อมูล

ชั้นผู้บริโภค

ชั้นนี้ส่วนใหญ่ประกอบด้วยส่วนติดต่อผู้ใช้ ดังแสดงในภาพด้านล่าง

ส่วนติดต่อผู้ใช้ระดับผู้บริโภคของเว็บไซต์ด้านสุขภาพที่เรียกใช้ฟังก์ชันพื้นฐาน 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) ระดับต้นจนจบ

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

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

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

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

กับtracการทดสอบ t ตรวจสอบว่าผู้ให้บริการยังคงเคารพรูปแบบการร้องขอและการตอบกลับที่ผู้บริโภคคาดหวัง โดยปกติจะเทียบกับ WSDL หรือสคีมา การทดสอบนี้อยู่ระหว่างระดับการให้บริการและระดับการบูรณาการ และตรวจจับการเปลี่ยนแปลงที่ก่อให้เกิดปัญหา ก่อนที่จะมีการบูรณาการอย่างเต็มรูปแบบ

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

ใช่แล้ว เลเยอร์และระดับต่างๆ ไม่ขึ้นอยู่กับโปรโตคอล บริการ SOAP จะได้รับการตรวจสอบความถูกต้องตามกฎ WSDL และ WS-Security ในขณะที่บริการ REST จะได้รับการตรวจสอบความถูกต้องตามคำจำกัดความ OpenAPI รหัสสถานะ และการตรวจสอบสิทธิ์แบบใช้โทเค็น ชุดเครื่องมือส่วนใหญ่รองรับทั้งสองแบบ

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

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

Code การครอบคลุมบริการที่หลากหลายนั้นหาได้ยาก ดังนั้นทีมงานจึงวัดการครอบคลุมการปฏิบัติงาน (ทุกการปฏิบัติงานที่เกิดขึ้นจริง) การครอบคลุมข้อความ (ทุกเส้นทางของข้อผิดพลาดและความสำเร็จ) และการครอบคลุมสถานการณ์ทางธุรกิจ tracผ่านเมทริกซ์ที่สร้างขึ้นระหว่างการวางแผนการทดสอบ

การอ่านไฟล์ WSDL, XSD และ XML หรือ JSON, การเขียน SQL เพื่อตรวจสอบข้อมูลที่จัดเก็บ, การทำงานกับไคลเอ็นต์ API อย่างคล่องแคล่ว และความเข้าใจเกี่ยวกับมิดเดิลแวร์การส่งข้อความที่ใช้งานอยู่ การเขียนสคริปต์พื้นฐานจะช่วยได้มาก เพราะชุดการทดสอบส่วนใหญ่จะถูกทำให้เป็นระบบอัตโนมัติในท้ายที่สุด

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