การทดสอบฐานข้อมูล - คู่มือฉบับย่อ

การทดสอบฐานข้อมูลประกอบด้วยการตรวจสอบความถูกต้องของข้อมูลการทดสอบความสมบูรณ์ของข้อมูลการตรวจสอบประสิทธิภาพที่เกี่ยวข้องกับฐานข้อมูลและการทดสอบขั้นตอนทริกเกอร์และฟังก์ชันในฐานข้อมูล

ตัวอย่าง

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

  • ข้อมูลธุรกรรมจากแอปพลิเคชันควรถูกเก็บไว้ในฐานข้อมูลและควรให้ข้อมูลที่ถูกต้องแก่ผู้ใช้

  • ข้อมูลไม่ควรสูญหายเมื่อโหลดไปยังฐานข้อมูล

  • ควรจัดเก็บเฉพาะธุรกรรมที่เสร็จสมบูรณ์และการดำเนินการที่ไม่สมบูรณ์ทั้งหมดควรถูกยกเลิกโดยแอปพลิเคชัน

  • ควรรักษาสิทธิ์การเข้าถึงฐานข้อมูลไว้ ไม่ควรให้การเข้าถึงข้อมูลผู้ใช้ที่ไม่ได้รับอนุมัติหรือไม่ได้รับอนุญาต

ทำไมคุณต้องทำการทดสอบฐานข้อมูล?

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

ด้านล่างนี้เป็นสาเหตุทั่วไปบางประการสำหรับการทดสอบฐานข้อมูล -

  • เพื่อลดความซับซ้อนของการโทรไปยังแบ็กเอนด์ฐานข้อมูลนักพัฒนาจึงเพิ่มการใช้ไฟล์ View และ Stored ขั้นตอน

  • เหล่านี้ Stored ขั้นตอนและ Viewsประกอบด้วยงานที่สำคัญเช่นการใส่รายละเอียดลูกค้า (ชื่อข้อมูลติดต่อ ฯลฯ ) และข้อมูลการขาย งานเหล่านี้ต้องผ่านการทดสอบในหลายระดับ

  • Black-box testingดำเนินการในส่วนหน้าเป็นสิ่งสำคัญ แต่ทำให้ยากที่จะแยกปัญหา การทดสอบที่ระบบแบ็กเอนด์จะเพิ่มความทนทานของข้อมูล นั่นคือเหตุผลที่การทดสอบฐานข้อมูลดำเนินการในระบบส่วนหลัง

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

การทดสอบฐานข้อมูลเทียบกับการทดสอบส่วนหน้า

การทดสอบฐานข้อมูลแตกต่างจากการทดสอบ UI ส่วนหน้า ตารางต่อไปนี้เน้นความแตกต่างที่สำคัญ -

การทดสอบฐานข้อมูล การทดสอบ UI

การทดสอบฐานข้อมูลเรียกว่าการตรวจสอบความถูกต้องของข้อมูลและการทดสอบความสมบูรณ์หรือการทดสอบส่วนหลัง

การทดสอบ UI หรือการทดสอบส่วนหน้าเรียกอีกอย่างว่าการทดสอบแอปพลิเคชันหรือการทดสอบ GUI

การทดสอบฐานข้อมูลเกี่ยวข้องกับการทดสอบส่วนประกอบส่วนหลังซึ่งผู้ใช้มองไม่เห็น

ซึ่งรวมถึงส่วนประกอบฐานข้อมูลและระบบ DBMS เช่น My SQL, Oracle

การทดสอบ UI เกี่ยวข้องกับการตรวจสอบฟังก์ชันการทำงานของแอปพลิเคชันและส่วนประกอบต่างๆเช่นแบบฟอร์มกราฟเมนูรายงานเป็นต้น

ส่วนประกอบเหล่านี้สร้างขึ้นโดยใช้เครื่องมือการพัฒนาส่วนหน้าเช่น VB.net, C #, Delphi เป็นต้น

การทดสอบฐานข้อมูลเกี่ยวข้องกับการตรวจสอบขั้นตอนการจัดเก็บมุมมองแผนผังในฐานข้อมูลตารางดัชนีคีย์ทริกเกอร์การตรวจสอบข้อมูลและการตรวจสอบความสอดคล้องของข้อมูล

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

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

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

ข้อมูลมาจากแหล่งข้อมูลที่แตกต่างกันหลายแหล่งผ่านเว็บแอปพลิเคชันแอปพลิเคชันอินทราเน็ตและแอปพลิเคชันอื่น ๆ

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

ขึ้นอยู่กับฟังก์ชันและโครงสร้างของฐานข้อมูลการทดสอบ DB สามารถแบ่งออกเป็นสามประเภท -

  • Structural Database Testing - เกี่ยวข้องกับการทดสอบตารางและคอลัมน์การทดสอบสคีมาขั้นตอนการจัดเก็บและการทดสอบมุมมองการตรวจสอบทริกเกอร์ ฯลฯ

  • Functional Testing- เกี่ยวข้องกับการตรวจสอบการทำงานของฐานข้อมูลจากมุมมองของผู้ใช้ การทดสอบฟังก์ชันทั่วไปส่วนใหญ่ ได้แก่ การทดสอบกล่องขาวและกล่องดำ

  • Nonfunctional Testing - เกี่ยวข้องกับการทดสอบโหลดการทดสอบความเสี่ยงในฐานข้อมูลการทดสอบความเครียดข้อกำหนดขั้นต่ำของระบบและเกี่ยวข้องกับประสิทธิภาพของฐานข้อมูล

การทดสอบฐานข้อมูลโครงสร้าง

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

กล่าวถึงเป็นส่วนประกอบทั่วไปที่ผ่านการทดสอบเกี่ยวกับการทดสอบโครงสร้าง -

Schema / Mapping Testing

เกี่ยวข้องกับการตรวจสอบความถูกต้องของอ็อบเจ็กต์ของแอปพลิเคชันส่วนหน้าด้วยการแม็ปอ็อบเจ็กต์ฐานข้อมูล

ในการทดสอบสคีมา -

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

  • จำเป็นต้องค้นหาวัตถุที่ไม่ได้แมปในฐานข้อมูลเช่นตารางมุมมองคอลัมน์เป็นต้น

มีเครื่องมือมากมายในตลาดที่สามารถใช้เพื่อทำการแมปวัตถุในสกีมา

Example - ใน Microsoft SQL Server ผู้ทดสอบสามารถเขียนแบบสอบถามง่ายๆเพื่อตรวจสอบและตรวจสอบความถูกต้องของสกีมาในฐานข้อมูล

หากผู้ทดสอบต้องการเปลี่ยนแปลงโครงสร้างตารางเขา / เธอควรตรวจสอบให้แน่ใจว่าไฟล์ stored ขั้นตอนที่มีตารางนั้นเข้ากันได้กับการเปลี่ยนแปลงนี้

ขั้นตอนการจัดเก็บและการทดสอบมุมมอง

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

ผู้ทดสอบมั่นใจ -

  • หากเปิดใช้งานทริกเกอร์ที่จำเป็นจะดำเนินการตามที่คาดไว้

  • หากทีมพัฒนาครอบคลุมลูปและเงื่อนไขทั้งหมดโดยส่งอินพุตไปยังแอพพลิเคชั่นในขั้นตอน

  • หากมีโพรซีเดอร์ที่ไม่ได้ใช้เก็บไว้ในฐานข้อมูล

  • การดำเนินการ TRIM ถูกนำไปใช้อย่างเหมาะสมเมื่อดึงข้อมูลจากตารางที่ต้องการในฐานข้อมูล

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

  • มีการปฏิบัติตามข้อยกเว้นและกลไกการจัดการข้อผิดพลาด

เครื่องมือทั่วไปที่ใช้ในการทดสอบขั้นตอนการจัดเก็บคือ LINQ, SP Test toolฯลฯ

การทดสอบทริกเกอร์

ในการทดสอบทริกเกอร์ผู้ทดสอบต้องตรวจสอบสิ่งต่อไปนี้ -

  • ไม่ว่าจะเป็นไปตามข้อกำหนดการเข้ารหัสในระหว่างขั้นตอนการเข้ารหัสของทริกเกอร์

  • ดูทริกเกอร์ที่ดำเนินการตรงตามเงื่อนไขที่กำหนด

  • ทริกเกอร์อัปเดตข้อมูลอย่างถูกต้องหรือไม่เมื่อดำเนินการแล้ว

  • การตรวจสอบความถูกต้องของการอัปเดต / แทรก / ลบทริกเกอร์ฟังก์ชันแอปพลิเคชัน wrt ที่อยู่ระหว่างการทดสอบ

การทดสอบตารางและคอลัมน์

ประเด็นสำคัญที่ครอบคลุมในการทดสอบนี้ ได้แก่ -

  • การตรวจสอบความถูกต้องของชนิดข้อมูลในฐานข้อมูลกับค่าฟิลด์ในแอปพลิเคชันส่วนหน้า

  • การตรวจสอบความยาวของฟิลด์ข้อมูลในฐานข้อมูลกับความยาวของชนิดข้อมูลในแอปพลิเคชัน

  • ตรวจสอบว่ามีตารางหรือคอลัมน์ที่ไม่ได้แมปในฐานข้อมูลจากอ็อบเจ็กต์ฟิลด์แอ็พพลิเคชันหรือไม่

  • รูปแบบการตั้งชื่อของตารางฐานข้อมูลและคอลัมน์ได้รับการตรวจสอบว่าเป็นไปตามข้อกำหนดทางธุรกิจหรือไม่

  • การตรวจสอบความถูกต้องของคีย์และดัชนีในฐานข้อมูลกล่าวคือคีย์หลักและคีย์ต่างประเทศในตารางถูกกำหนดตามข้อกำหนด

  • ตรวจสอบว่าคีย์หลักและคีย์ต่างประเทศที่ตรงกันในสองตารางหรือไม่

  • ตรวจสอบลักษณะเฉพาะของคีย์ที่ไม่ซ้ำกันและไม่เป็นโมฆะ

  • ความยาวและประเภทข้อมูลของคีย์และดัชนีจะคงไว้ตามความต้องการ

ตรวจสอบเซิร์ฟเวอร์ฐานข้อมูล

การตรวจสอบเซิร์ฟเวอร์ฐานข้อมูลเกี่ยวข้องกับการตรวจสอบ -

  • หากเซิร์ฟเวอร์ฐานข้อมูลสามารถรองรับจำนวนธุรกรรมที่คาดไว้ตามความต้องการของธุรกิจ

  • หากรายละเอียดการกำหนดค่าของเซิร์ฟเวอร์ฐานข้อมูลตรงตามข้อกำหนดทางธุรกิจ

  • หากการอนุญาตผู้ใช้ยังคงเป็นไปตามข้อกำหนด

การทดสอบการทำงาน

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

การทดสอบกล่องดำ

การทดสอบกล่องดำเกี่ยวข้องกับการตรวจสอบการรวมฐานข้อมูลเพื่อตรวจสอบการทำงาน กรณีทดสอบนั้นง่ายและใช้เพื่อตรวจสอบข้อมูลขาเข้าและข้อมูลขาออกจากฟังก์ชัน

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

มัน advantages มีดังนี้ -

  • ค่อนข้างง่ายและดำเนินการในช่วงแรกของการพัฒนา
  • ต้นทุนในการพัฒนากรณีทดสอบน้อยกว่าเมื่อเทียบกับการทดสอบกล่องขาว

ข้อเสียมีดังนี้ -

  • ตรวจไม่พบข้อผิดพลาดบางประการ
  • ไม่ทราบว่าต้องทดสอบโปรแกรมมากน้อยเพียงใด

การทดสอบกล่องสีขาว

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

ทำการทดสอบโมดูลของฟังก์ชันฐานข้อมูลทริกเกอร์มุมมองคิวรี SQL เป็นต้นการทดสอบประเภทนี้จะตรวจสอบตารางฐานข้อมูลแบบจำลองข้อมูลสคีมาฐานข้อมูลเป็นต้นซึ่งจะตรวจสอบกฎของความสมบูรณ์ของการอ้างอิง เลือกค่าตารางเริ่มต้นเพื่อตรวจสอบความสอดคล้องของฐานข้อมูล

เทคนิคที่ใช้บ่อยที่สุดในการทดสอบกล่องขาว ได้แก่ การครอบคลุมเงื่อนไขความครอบคลุมการตัดสินใจการครอบคลุมใบแจ้งยอด ฯลฯ

ข้อผิดพลาดในการเข้ารหัสสามารถตรวจพบได้ในการทดสอบกล่องขาวดังนั้นจึงสามารถกำจัดจุดบกพร่องภายในฐานข้อมูลได้ ข้อ จำกัด ของการทดสอบกล่องขาวคือไม่ครอบคลุมคำสั่ง SQL

การทดสอบที่ไม่สามารถใช้งานได้

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

โหลดการทดสอบ

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

ในการทดสอบโหลดผู้ทดสอบจะตรวจสอบ -

  • เวลาตอบสนองสำหรับการดำเนินธุรกรรมสำหรับผู้ใช้ระยะไกลหลายคน
  • เวลาที่ฐานข้อมูลใช้ในการดึงข้อมูลบันทึกเฉพาะ

Examples of load testing in different testing types -

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

การทดสอบความเครียด

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

การกำหนดสถานะของธุรกรรมฐานข้อมูลเกี่ยวข้องกับความพยายามจำนวนมาก จำเป็นต้องมีการวางแผนที่เหมาะสมเพื่อหลีกเลี่ยงปัญหาด้านเวลาและต้นทุน

เครื่องมือทดสอบความเครียดที่ใช้บ่อยที่สุดคือ LoadRunner และ WinRunner.

ให้เราใช้ exampleของการทดสอบความเครียด แอปพลิเคชัน CRM สามารถรับภาระผู้ใช้สูงสุด 50000 ผู้ใช้พร้อมกัน สมมติว่าคุณเพิ่มภาระเป็น 51000 และทำธุรกรรมบางอย่างเช่นการอัปเดตระเบียนหรือเพิ่มรายการ ทันทีที่คุณทำรายการแอปพลิเคชันสามารถซิงค์กับระบบฐานข้อมูลได้ ดังนั้นการทดสอบต่อไปคือการดำเนินการโดยมีผู้ใช้โหลด 52000 บางครั้งเรียกการทดสอบความเครียดFatigue Testing.

กระบวนการทดสอบฐานข้อมูลจะเหมือนกับการทดสอบแอปพลิเคชันอื่น ๆ การทดสอบ DB สามารถอธิบายได้ด้วยกระบวนการสำคัญที่ระบุด้านล่าง

  • ตั้งค่าสภาพแวดล้อม
  • ทำการทดสอบ
  • ตรวจสอบผลการทดสอบ
  • ตรวจสอบความถูกต้องตามผลลัพธ์ที่คาดหวัง
  • รายงานการค้นพบต่อผู้มีส่วนได้ส่วนเสียตามลำดับ

คำสั่ง SQL ต่างๆใช้ในการพัฒนากรณีทดสอบ คำสั่ง SQL ที่พบบ่อยที่สุดซึ่งใช้ในการทดสอบ DB คือไฟล์Selectคำให้การ. นอกจากนี้ยังสามารถใช้คำสั่ง DDL, DML, DCL ต่างๆได้อีกด้วย

Example - สร้างแทรกเลือกอัปเดต ฯลฯ

ขั้นตอนการทดสอบฐานข้อมูล

การทดสอบฐานข้อมูลไม่ใช่กระบวนการที่น่าเบื่อและรวมถึงขั้นตอนต่างๆในวงจรการทดสอบฐานข้อมูลตามกระบวนการทดสอบ

ขั้นตอนสำคัญในการทดสอบฐานข้อมูล ได้แก่ -

  • กำลังตรวจสอบสถานะเริ่มต้น
  • ทดสอบการทำงาน
  • การตรวจสอบผลลัพธ์ตามผลลัพธ์ที่คาดหวัง
  • สร้างผลลัพธ์

First stageใน DB Testing คือการตรวจสอบสถานะเริ่มต้นของฐานข้อมูลก่อนเริ่มกระบวนการทดสอบ จากนั้นพฤติกรรมของฐานข้อมูลจะถูกทดสอบสำหรับกรณีทดสอบที่กำหนดไว้ ตามผลที่ได้รับกรณีทดสอบได้รับการปรับแต่ง

สำหรับการทดสอบฐานข้อมูลที่ประสบความสำเร็จขั้นตอนการทำงานที่ระบุด้านล่างจะดำเนินการโดยการทดสอบทุกครั้ง

  • Cleaning up the database - หากมีข้อมูลที่ทดสอบได้ในฐานข้อมูลควรล้างข้อมูลนั้น

  • Set up Fixture - เกี่ยวข้องกับการป้อนข้อมูลลงในฐานข้อมูลและตรวจสอบสถานะปัจจุบันของฐานข้อมูล

  • Perform test, verify results and generate results- การทดสอบทำงานและตรวจสอบผลลัพธ์แล้ว หากผลลัพธ์เป็นไปตามผลลัพธ์ที่คาดหวังขั้นตอนต่อไปคือการสร้างผลลัพธ์ตามความต้องการ มิฉะนั้นจะทำการทดสอบซ้ำเพื่อค้นหาจุดบกพร่องในฐานข้อมูล

บทนี้อธิบายถึงเทคนิคทั่วไปที่ใช้ในการทดสอบฐานข้อมูล

การทดสอบสคีมาฐานข้อมูล

ดังที่ได้กล่าวไว้ก่อนหน้านี้เกี่ยวข้องกับการทดสอบแต่ละออบเจ็กต์ในสคีมา

การตรวจสอบฐานข้อมูลและอุปกรณ์

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

ตารางคอลัมน์ตรวจสอบกฎประเภทคอลัมน์

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

  • ชื่อของตารางทั้งหมดในฐานข้อมูล

  • ชื่อคอลัมน์สำหรับแต่ละตาราง

  • ประเภทคอลัมน์สำหรับแต่ละตาราง

  • NULL ตรวจสอบค่าหรือไม่

  • ค่าเริ่มต้นถูกผูกไว้กับคอลัมน์ตารางที่ถูกต้องหรือไม่

  • คำจำกัดความของกฎเพื่อแก้ไขชื่อตารางและสิทธิ์การเข้าถึง

คีย์และดัชนี

ตรวจสอบคีย์และดัชนีในแต่ละตาราง -

  • คีย์หลักสำหรับแต่ละตาราง

  • คีย์ต่างประเทศสำหรับแต่ละโต๊ะ

  • ชนิดข้อมูลระหว่างคอลัมน์คีย์นอกและคอลัมน์ในดัชนีตารางอื่นคลัสเตอร์หรือคลัสเตอร์ที่ไม่ซ้ำกันหรือไม่ซ้ำกัน

การทดสอบขั้นตอนที่จัดเก็บ

เกี่ยวข้องกับการตรวจสอบว่ามีการกำหนดขั้นตอนการจัดเก็บหรือไม่และเปรียบเทียบผลลัพธ์ผลลัพธ์ ในการทดสอบ Stored Procedure จะมีการตรวจสอบประเด็นต่อไปนี้ -

  • ชื่อกระบวนงานที่เก็บไว้

  • ชื่อพารามิเตอร์ประเภทพารามิเตอร์ ฯลฯ

  • Output- ผลลัพธ์มีระเบียนจำนวนมากหรือไม่ แถวศูนย์จะได้รับผลกระทบหรือมีการแยกระเบียนเพียงไม่กี่รายการ

  • Stored Procedure คืออะไรและไม่ควรทำ Stored Procedure คืออะไร?

  • การส่งแบบสอบถามอินพุตตัวอย่างเพื่อตรวจสอบว่าโพรซีเดอร์ที่จัดเก็บดึงข้อมูลที่ถูกต้องหรือไม่

  • Stored Procedure Parameters- เรียกขั้นตอนการจัดเก็บด้วยข้อมูลขอบเขตและข้อมูลที่ถูกต้อง ทำให้แต่ละพารามิเตอร์ไม่ถูกต้องเพียงครั้งเดียวและรันโพรซีเดอร์

  • Return values- ตรวจสอบค่าที่ส่งคืนตามขั้นตอนการจัดเก็บ ในกรณีที่เกิดความล้มเหลวจะต้องส่งคืนที่ไม่ใช่ศูนย์

  • Error messages check- ทำการเปลี่ยนแปลงในลักษณะที่ขั้นตอนการจัดเก็บล้มเหลวและสร้างข้อความแสดงข้อผิดพลาดทั้งหมดอย่างน้อยหนึ่งครั้ง ตรวจสอบสถานการณ์ข้อยกเว้นเมื่อไม่มีข้อความแสดงข้อผิดพลาดที่กำหนดไว้ล่วงหน้า

การทดสอบทริกเกอร์

ในการทดสอบ Trigger ผู้ทดสอบจะต้องปฏิบัติงานต่อไปนี้ -

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

สคริปต์การตั้งค่าเซิร์ฟเวอร์

ควรทำการทดสอบสองประเภท -

  • การตั้งค่าฐานข้อมูลตั้งแต่เริ่มต้นและ
  • เพื่อตั้งค่าฐานข้อมูลที่มีอยู่

การทดสอบการรวมของ SQL Server

การทดสอบการรวมควรดำเนินการหลังจากที่คุณผ่านการทดสอบส่วนประกอบแล้ว

  • ควรเรียกกระบวนงานที่จัดเก็บอย่างเข้มข้นเพื่อเลือกแทรกอัปเดตและลบระเบียนในตารางต่างๆเพื่อค้นหาข้อขัดแย้งและความไม่ลงรอยกัน

  • ความขัดแย้งใด ๆ ระหว่างสคีมาและทริกเกอร์

  • ความขัดแย้งใด ๆ ระหว่างกระบวนงานที่จัดเก็บและสคีมา

  • ความขัดแย้งใด ๆ ระหว่างกระบวนงานที่จัดเก็บและทริกเกอร์

วิธีการทดสอบการทำงาน

การทดสอบการทำงานสามารถทำได้โดยแบ่งฐานข้อมูลออกเป็นโมดูลตามฟังก์ชันการทำงาน ฟังก์ชันการทำงานมีสองประเภทต่อไปนี้ -

  • Type 1- ในการทดสอบแบบที่ 1 ค้นหาคุณสมบัติของโครงการ สำหรับคุณลักษณะหลักแต่ละรายการให้ค้นหาสคีมาทริกเกอร์และกระบวนงานที่จัดเก็บไว้ซึ่งรับผิดชอบในการนำฟังก์ชันนั้นไปใช้และวางไว้ในกลุ่มฟังก์ชัน จากนั้นทดสอบแต่ละกลุ่มด้วยกัน

  • Type 2- ในการทดสอบแบบที่ 2 เส้นขอบของกลุ่มฟังก์ชันในส่วนหลังจะไม่ชัดเจน คุณสามารถตรวจสอบการไหลของข้อมูลและดูว่าคุณสามารถตรวจสอบข้อมูลได้ที่ไหน เริ่มจากส่วนหน้า

กระบวนการต่อไปนี้เกิดขึ้น -

  • เมื่อบริการมีการร้องขอหรือบันทึกข้อมูลโพรซีเดอร์ที่จัดเก็บบางอย่างจะถูกเรียก

  • ขั้นตอนจะอัปเดตตารางบางส่วน

  • กระบวนงานที่เก็บไว้เหล่านั้นจะเป็นจุดเริ่มต้นการทดสอบและตารางเหล่านั้นจะเป็นที่สำหรับตรวจสอบผลการทดสอบ

การทดสอบความเครียด

การทดสอบความเครียดเกี่ยวข้องกับการรับรายการฟังก์ชันฐานข้อมูลที่สำคัญและขั้นตอนการจัดเก็บที่เกี่ยวข้อง ทำตามขั้นตอนด้านล่างสำหรับการทดสอบความเครียด -

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

  • ดำเนินการทดสอบสคริปต์ซ้ำแล้วซ้ำอีกในช่วงเวลาที่กำหนด

  • การตรวจสอบไฟล์บันทึกเพื่อตรวจสอบการหยุดชะงักความล้มเหลวของหน่วยความจำข้อมูลเสียหาย ฯลฯ

การทดสอบเกณฑ์มาตรฐาน

หากฐานข้อมูลของคุณไม่มีปัญหาข้อมูลหรือจุดบกพร่องใด ๆ สามารถตรวจสอบประสิทธิภาพของระบบได้ ประสิทธิภาพของระบบที่ไม่ดีสามารถพบได้ในการทดสอบเกณฑ์มาตรฐานโดยตรวจสอบพารามิเตอร์ที่ระบุด้านล่าง -

  • ประสิทธิภาพระดับระบบ
  • ระบุฟังก์ชั่น / คุณสมบัติที่น่าใช้มากที่สุด
  • เวลา - เวลาสูงสุดเวลาต่ำสุดและเวลาเฉลี่ยในการทำหน้าที่
  • ปริมาณการเข้าถึง

การทดสอบฐานข้อมูลผ่าน Front-end

บางครั้งสามารถพบข้อบกพร่องส่วนหลังได้โดยทำการทดสอบส่วนหน้า คุณสามารถทำตามขั้นตอนง่ายๆที่ระบุด้านล่างเพื่อตรวจหาจุดบกพร่องโดยการทดสอบส่วนหน้า

  • เขียนคำค้นหาจากส่วนหน้าและออกการค้นหา

  • เลือกบันทึกที่มีอยู่เปลี่ยนค่าในบางฟิลด์และบันทึกเรกคอร์ด (เกี่ยวข้องกับคำสั่ง UPDATE หรืออัพเดตกระบวนงานที่จัดเก็บไว้และทริกเกอร์การอัพเดต)

  • แทรกรายการเมนูใหม่ในหน้าต่างส่วนหน้า กรอกข้อมูลและบันทึกบันทึก (มันเกี่ยวข้องกับคำสั่ง INSERT หรือการแทรกโพรซีเดอร์ที่เก็บไว้และทริกเกอร์การลบ)

  • เลือกบันทึกที่มีอยู่คลิกที่ปุ่มลบหรือลบและยืนยันการลบ (มันเกี่ยวข้องกับคำสั่ง DELETE หรือขั้นตอนการลบที่เก็บไว้และทริกเกอร์การลบ)

  • ทำซ้ำกรณีทดสอบเหล่านี้ด้วยข้อมูลที่ไม่ถูกต้องและดูว่าฐานข้อมูลตอบสนองอย่างไร

ในบทนี้เราจะเห็นสถานการณ์การทดสอบฐานข้อมูลทั่วไปเกี่ยวกับวิธีการทดสอบต่างๆ

การทดสอบฐานข้อมูลที่มีโครงสร้าง

สถานการณ์ฐานข้อมูลทั่วไปที่เกี่ยวข้องกับการทดสอบฐานข้อมูลที่มีโครงสร้างมีดังต่อไปนี้ -

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

  • ชื่อของตารางทั้งหมดในฐานข้อมูลชื่อคอลัมน์สำหรับแต่ละตารางประเภทคอลัมน์สำหรับแต่ละตารางตรวจสอบค่าว่างหรือไม่ ตรวจสอบคีย์และดัชนีในแต่ละตาราง: คีย์หลักสำหรับแต่ละตารางคีย์ต่างประเทศสำหรับแต่ละตาราง

  • ชนิดข้อมูลระหว่างคอลัมน์คีย์นอกและคอลัมน์ในดัชนีตารางอื่นคลัสเตอร์หรือไม่ใช่คลัสเตอร์ที่ไม่ซ้ำกันหรือไม่ซ้ำกัน

การทดสอบฐานข้อมูลการทำงาน

สถานการณ์การทดสอบฐานข้อมูลทั่วไปที่เกี่ยวข้องกับ Functional Database Testing เป็น -

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

  • ตรวจสอบการไหลของข้อมูลและดูว่าคุณสามารถตรวจสอบข้อมูลได้ที่ไหน เริ่มจากส่วนหน้า

การทดสอบฐานข้อมูลที่ไม่ใช่หน้าที่

สถานการณ์การทดสอบฐานข้อมูลทั่วไปที่เกี่ยวข้องกับ Non-Functional Database Testing เป็น -

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

  • ดำเนินการทดสอบสคริปต์ซ้ำแล้วซ้ำอีกในช่วงเวลาที่กำหนด

  • การตรวจสอบไฟล์บันทึกเพื่อตรวจสอบการหยุดชะงักความล้มเหลวของหน่วยความจำข้อมูลเสียหาย ฯลฯ

  • เขียนแบบสอบถามจากส่วนหน้าและออกการค้นหา เลือกบันทึกที่มีอยู่เปลี่ยนค่าในบางฟิลด์และบันทึกเรกคอร์ด (มันเกี่ยวข้องกับคำสั่ง UPDATE หรืออัปเดตกระบวนงานที่เก็บไว้ทริกเกอร์อัพเดต)

  • แทรกรายการเมนูใหม่ในหน้าต่างส่วนหน้า กรอกข้อมูลและบันทึกบันทึก (มันเกี่ยวข้องกับคำสั่ง INSERT หรือการแทรกโพรซีเดอร์ที่เก็บไว้ทริกเกอร์การลบ)

  • เลือกบันทึกที่มีอยู่คลิกที่ปุ่มลบหรือลบและยืนยันการลบ (เกี่ยวข้องกับคำสั่ง DELETE หรือขั้นตอนการลบที่จัดเก็บไว้ทริกเกอร์การลบ)

  • ทำซ้ำกรณีทดสอบเหล่านี้ด้วยข้อมูลที่ไม่ถูกต้องและดูว่าฐานข้อมูลตอบสนองอย่างไร

Schemas, tables, stored proceduresและ Triggersเป็นวัตถุสำคัญของฐานข้อมูล เราได้แชร์ประเภทการทดสอบ DB และสถานการณ์การทดสอบสำหรับอ็อบเจ็กต์ฐานข้อมูลเหล่านี้แล้ว

Schemas

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

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

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

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

ประเภททั่วไปของ Schemas ที่ใช้ในคลังข้อมูล ได้แก่ -

  • สคีมา
  • สคีมาเกล็ดหิมะ
  • Galaxy Schema

ตารางในฐานข้อมูล

ในฐานข้อมูลเชิงสัมพันธ์ตารางจะใช้เพื่อจัดระเบียบข้อมูลเป็นแถวและคอลัมน์

Example - ตารางลูกค้าประกอบด้วยข้อมูลเช่นรหัสลูกค้าที่อยู่หมายเลขโทรศัพท์และอื่น ๆ เป็นชุดคอลัมน์

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

กระบวนงานที่จัดเก็บ

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

ทริกเกอร์

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

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

สำหรับการตรวจสอบความสมบูรณ์ของข้อมูลคุณต้องดำเนินการดังต่อไปนี้ -

  • คุณต้องตรวจสอบคอลัมน์หลักในแต่ละตารางและตรวจสอบว่ามีข้อมูลที่ไม่ถูกต้องหรือไม่ (อักขระในช่องชื่อเปอร์เซ็นต์เชิงลบ ฯลฯ )

  • ค้นหาข้อมูลที่ไม่สอดคล้องกันและแทรกลงในตารางที่เกี่ยวข้องและดูว่ามีความล้มเหลวเกิดขึ้นหรือไม่

  • แทรกข้อมูลลูกก่อนที่จะแทรกข้อมูลของผู้ปกครอง พยายามลบเรกคอร์ดที่ยังคงอ้างอิงโดยข้อมูลในตารางอื่น

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

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

ข้อมูลนี้มีให้ในเอกสารข้อกำหนดข้อกำหนดซอฟต์แวร์หรือข้อกำหนดทางธุรกิจข้อกำหนด SRS / BRS หากไม่มีการทำแผนที่คุณต้องตรวจสอบส่วนการเข้ารหัส

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

ลักษณะสำคัญของการแมปข้อมูล

ด้านล่างนี้เป็นประเด็นสำคัญของการทำแผนที่ข้อมูล -

  • เพื่อตรวจสอบฟิลด์ในรูปแบบ UI / ส่วนหน้าและแมปอย่างสม่ำเสมอกับตาราง DB ที่เกี่ยวข้อง ข้อมูลการทำแผนที่นี้กำหนดไว้ในเอกสารข้อกำหนดตามที่กล่าวข้างต้น

  • สำหรับการดำเนินการใด ๆ ที่ดำเนินการในส่วนหน้าของแอปพลิเคชันการดำเนินการ CRUD 'สร้างเรียกคืนอัปเดตและลบ' ที่เกี่ยวข้องจะเริ่มต้นที่ส่วนหลัง

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

ขั้นตอนในการทดสอบการทำแผนที่ข้อมูล

ด้านล่างนี้เป็นขั้นตอนตามสำหรับการทดสอบการทำแผนที่ข้อมูล -

  • Step 1 - ขั้นแรกให้ตรวจสอบข้อผิดพลาดทางไวยากรณ์ในแต่ละสคริปต์

  • Step 2 - ต่อไปคือการตรวจสอบการแมปตารางการแมปคอลัมน์และการแมปประเภทข้อมูล

  • Step 3 - ตรวจสอบการแมปข้อมูลการค้นหา

  • Step 4 - เรียกใช้แต่ละสคริปต์เมื่อไม่มีระเบียนอยู่ในตารางปลายทาง

  • Step 5 - เรียกใช้แต่ละสคริปต์เมื่อมีระเบียนอยู่แล้วในตารางปลายทาง

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

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

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

โหลดการทดสอบ

เป้าหมายหลักของ Load Testing คือการตรวจสอบว่าธุรกรรมที่รันอยู่ส่วนใหญ่มีผลกระทบต่อประสิทธิภาพในฐานข้อมูลหรือไม่ ในการทดสอบโหลดคุณต้องตรวจสอบประเด็นต่อไปนี้ -

  • ควรตรวจสอบเวลาตอบสนองสำหรับการดำเนินธุรกรรมสำหรับผู้ใช้ระยะไกลหลายคน

  • ในธุรกรรมปกติคุณควรรวมธุรกรรมที่แก้ไขได้หนึ่งรายการเพื่อตรวจสอบประสิทธิภาพของฐานข้อมูลสำหรับธุรกรรมประเภท pf เหล่านี้

  • สำหรับธุรกรรมปกติคุณควรรวมธุรกรรมที่ไม่มีการแก้ไขหนึ่งรายการเพื่อตรวจสอบประสิทธิภาพของฐานข้อมูลสำหรับธุรกรรมประเภทนี้

  • ควรตรวจสอบเวลาที่ฐานข้อมูลใช้ในการดึงข้อมูลเฉพาะ

การทดสอบความเครียด

การทดสอบความเครียดจะดำเนินการเพื่อระบุระบบ breakpoint. ที่นี่มีการโหลดแอปพลิเคชันในลักษณะที่ระบบล้มเหลว ณ จุดหนึ่ง จุดนี้เรียกว่าจุดพักของระบบฐานข้อมูล การทดสอบความเครียดเรียกอีกอย่างว่าFatigue Testing.

การกำหนดสถานะของธุรกรรมฐานข้อมูลเกี่ยวข้องกับความพยายามจำนวนมาก จำเป็นต้องมีการวางแผนที่เหมาะสมเพื่อหลีกเลี่ยงปัญหาด้านเวลาและต้นทุน

เครื่องมือทดสอบความเครียดที่พบบ่อยที่สุดคือ LoadRunner และ WinRunner.

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

เครื่องมือทั่วไปบางส่วนที่ใช้มีดังต่อไปนี้

ซีเนียร์ No หมวดหมู่และคำอธิบาย ตัวอย่าง
1

Load Testing Tools

เครื่องมือเหล่านี้ใช้เพื่อเพิ่มปริมาณการใช้งานที่สูงในฐานข้อมูลของคุณซึ่งช่วยในการพิจารณาว่าภาพรวมของระบบของคุณจะตรงกับความต้องการทางธุรกิจของคุณหรือไม่

ประสิทธิภาพของเว็บ

มุมมอง Rad

ปรอท

2

Data Security Tools

เครื่องมือเหล่านี้ใช้เพื่อดำเนินการตามข้อกำหนดและมาตรฐานตามกฎระเบียบด้านความปลอดภัยของข้อมูล

IBM Optim Data Privacy

3

Test Data generator tools

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

โรงงานข้อมูล

เครื่องกำเนิดข้อมูล DTM

ข้อมูลเทอร์โบ

4

Test Data Management Tool

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

IBM Optim Test Data Management

5

Tools to perform Unit Testing

เครื่องมือเหล่านี้ใช้เพื่อทำการทดสอบการถดถอยบนฐานข้อมูลของคุณ

SQLUnit

TSQLUnit

DBFit

DBUnit

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

พิจารณา บริษัท เงินทุนที่มีข้อมูลที่เกี่ยวข้องกับลูกค้าเช่นหมายเลข A / C ชื่อลูกค้าเครดิตและเดบิตระยะเวลา ฯลฯ องค์กรดังกล่าวจะจัดการกับความกดดันในการสูญเสียข้อมูลสำคัญดังกล่าวอย่างไรในกรณีที่ข้อมูลล้มเหลว

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

ประเภทของการสำรองข้อมูล

มีการสำรองข้อมูลสองประเภทที่สามารถใช้ได้ -

  • Physical Backups - การสำรองข้อมูลทางกายภาพรวมถึงการสำรองข้อมูลโดยใช้เครื่องมือสำรองของบุคคลที่สามเช่น Veritas Net Back, IBM Tivoli Manager หรือการสำรองข้อมูลตัวจัดการผู้ใช้โดยใช้ยูทิลิตี้ OS

  • Logical Backups - การสำรองฐานข้อมูลเชิงตรรกะรวมถึงการสำรองข้อมูลของวัตถุเชิงตรรกะเช่นตารางดัชนีโพรซีเดอร์ ฯลฯ

Example - หนึ่งในเครื่องมือทั่วไปในการสำรองข้อมูลคือ Oracle Recovery Manager (RMAN) นั่นคือยูทิลิตี้ Oracle เพื่อสำรองฐานข้อมูล

RMAN ประกอบด้วยสององค์ประกอบ -

  • Target database ซึ่งจำเป็นต้องมีการสำรองข้อมูล

  • RMAN ไคลเอนต์ใช้เพื่อรันคำสั่งเพื่อสำรองข้อมูล

BACKUP VALIDATEใช้เพื่อทดสอบว่าคุณสามารถสำรองไฟล์ฐานข้อมูลที่ถูกต้องได้หรือไม่ ช่วยให้มั่นใจ -

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

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

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

คุณสามารถทำการตรวจสอบการกู้คืนฐานข้อมูลต่อไปนี้ -

  • ข้อผิดพลาดหรือข้อผิดพลาดในซอฟต์แวร์สำรองข้อมูลและคุณต้องแก้ไขปัญหาเหล่านี้ในขั้นตอนก่อนหน้านี้

  • คุณต้องทำการทดสอบการกู้คืนเพื่อที่คุณจะได้รู้ว่าต้องทำอย่างไรในกรณีฉุกเฉิน

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

  • คุณควรทราบด้วยว่าคุณจะกู้คืนเอกสารได้อย่างไร

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

  • ช่วงเวลาที่เกิดการเปลี่ยนแปลงหรือแก้ไขในระบบฐานข้อมูล

  • ระยะเวลาที่คุณต้องการให้แผนการกู้คืนของคุณดำเนินการ

  • ความไวของข้อมูลในระบบฐานข้อมูล ข้อมูลมีความสำคัญมากขึ้นคุณจะต้องทดสอบซอฟต์แวร์เป็นประจำมากขึ้น

ขั้นตอนทั่วไปในการสำรองฐานข้อมูลและการทดสอบการกู้คืน

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

ด้านล่างนี้คือการดำเนินการทั่วไปที่ดำเนินการในการทดสอบการกู้คืนฐานข้อมูล -

  • การทดสอบระบบฐานข้อมูล
  • การทดสอบไฟล์ SQL
  • การทดสอบไฟล์บางส่วน
  • การทดสอบการสำรองข้อมูล
  • การทดสอบเครื่องมือสำรอง
  • ทดสอบการสำรองข้อมูลบันทึก

การทดสอบความปลอดภัยของฐานข้อมูลเป็นการทดสอบเพื่อหาช่องโหว่ในกลไกการรักษาความปลอดภัยและการค้นหาช่องโหว่หรือจุดอ่อนของระบบฐานข้อมูล

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

ด้านล่างนี้เป็นวัตถุประสงค์หลักของการทดสอบความปลอดภัยของฐานข้อมูล -

  • Authentication
  • Authorization
  • Confidentiality
  • Availability
  • Integrity
  • Resilience

ประเภทของภัยคุกคามบนระบบฐานข้อมูล

การฉีด SQL

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

การยกระดับสิทธิ์ในฐานข้อมูล

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

การปฏิเสธการให้บริการ

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

การเข้าถึงข้อมูลโดยไม่ได้รับอนุญาต

การโจมตีอีกประเภทหนึ่งคือการเข้าถึงข้อมูลโดยไม่ได้รับอนุญาตภายในแอปพลิเคชันหรือระบบฐานข้อมูล การเข้าถึงโดยไม่ได้รับอนุญาต ได้แก่ -

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

การปลอมแปลงตัวตน

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

การจัดการข้อมูล

ในการโจมตีด้วยการจัดการข้อมูลแฮ็กเกอร์จะเปลี่ยนข้อมูลเพื่อให้ได้เปรียบหรือทำลายภาพลักษณ์ของเจ้าของฐานข้อมูล

เทคนิคการทดสอบความปลอดภัยของฐานข้อมูล

การทดสอบการเจาะ

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

การค้นหาความเสี่ยง

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

การทดสอบการฉีด SQL

เกี่ยวข้องกับการตรวจสอบอินพุตของผู้ใช้ในฟิลด์แอปพลิเคชัน ตัวอย่างเช่นการป้อนอักขระพิเศษเช่น "," หรือ ";" ในกล่องข้อความใด ๆ ในแอปพลิเคชันผู้ใช้ไม่ควรได้รับอนุญาต เมื่อเกิดข้อผิดพลาดของฐานข้อมูลหมายความว่าอินพุตของผู้ใช้ถูกแทรกในแบบสอบถามบางส่วนซึ่งจะถูกเรียกใช้โดยแอปพลิเคชัน ในกรณีนี้แอปพลิเคชันมีความเสี่ยงต่อการแทรก SQL

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

การทดสอบการฉีด SQL สามารถทำได้สำหรับเครื่องหมายวงเล็บจุลภาคและเครื่องหมายคำพูด

การถอดรหัสรหัสผ่าน

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

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

การตรวจสอบความปลอดภัยของระบบฐานข้อมูล

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

ตัวอย่างมาตรฐานความปลอดภัยที่พบบ่อย ได้แก่ ISO 27001, BS15999 เป็นต้น

เครื่องมือทดสอบความปลอดภัยของฐานข้อมูล

มีเครื่องมือทดสอบระบบต่างๆในตลาดซึ่งสามารถใช้ในการทดสอบระบบปฏิบัติการและการตรวจสอบแอปพลิเคชัน เครื่องมือทั่วไปบางส่วนมีการกล่าวถึงด้านล่าง

Zed Attack Proxy

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

ปารอส

ข้อมูล HTTP และ HTTPS ทั้งหมดระหว่างเซิร์ฟเวอร์และไคลเอนต์รวมถึงคุกกี้และฟิลด์แบบฟอร์มสามารถถูกดักจับและแก้ไขได้โดยใช้เครื่องสแกนเหล่านี้ ใช้สำหรับ Cross-platform, Java JRE / JDK 1.4.2 ขึ้นไป

เครื่องมือวิศวกรสังคม

เป็นเครื่องมือโอเพ่นซอร์สและองค์ประกอบของมนุษย์ถูกโจมตีมากกว่าองค์ประกอบของระบบ ช่วยให้คุณสามารถส่งอีเมลจาวาแอพเพล็ต ฯลฯ ที่มีรหัสโจมตี เป็นที่ต้องการสำหรับ Linux, Apple Mac OS X และ Microsoft Windows

สคิปฟิช

เครื่องมือนี้ใช้เพื่อสแกนหาช่องโหว่ในไซต์ของตน รายงานที่สร้างโดยเครื่องมือนี้มีขึ้นเพื่อใช้เป็นพื้นฐานสำหรับการประเมินความปลอดภัยของเว็บแอปพลิเคชันระดับมืออาชีพ เป็นที่ต้องการสำหรับ Linux, FreeBSD, MacOS X และ Windows

เวก้า

เป็นเครื่องมือรักษาความปลอดภัยบนเว็บแบบโอเพ่นซอร์สที่ใช้เพื่อค้นหาอินสแตนซ์ของการแทรก SQL, การเขียนสคริปต์ข้ามไซต์ (XSS) และช่องโหว่อื่น ๆ ในเว็บแอปพลิเคชัน เป็นที่ต้องการสำหรับ Java, Linux และ Windows

วาปิติ

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

เว็บแมลงปีกแข็ง

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

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

ขอบเขตการทดสอบใหญ่เกินไป

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

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

เนื่องจากขนาดฐานข้อมูลมีขนาดใหญ่เกินไปจึงกลายเป็นความท้าทายที่ยิ่งใหญ่ในการค้นหาวัตถุที่ต้องทดสอบและสิ่งที่ต้องทิ้ง

ฐานข้อมูลการทดสอบลดขนาด

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

การเปลี่ยนแปลงโครงสร้างฐานข้อมูล

นี่เป็นหนึ่งในความท้าทายทั่วไปในการทดสอบ DB บางครั้งอาจเกิดขึ้นเมื่อคุณออกแบบหรือดำเนินการทดสอบและโครงสร้างฐานข้อมูลมีการเปลี่ยนแปลงในขณะนั้น นี่เป็นสิ่งจำเป็นที่คุณควรทราบถึงการเปลี่ยนแปลงที่เกิดขึ้นกับฐานข้อมูลระหว่างการทดสอบ

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

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

แผนการทดสอบที่ซับซ้อน

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

มีความเข้าใจ SQL เป็นอย่างดี

ในการทดสอบฐานข้อมูลคุณควรมีความรู้เป็นอย่างดีเกี่ยวกับการสืบค้น SQL และเครื่องมือการจัดการฐานข้อมูลที่จำเป็น

การทดสอบฐานข้อมูลรวมถึงการดำเนินการตรวจสอบความถูกต้องของข้อมูลการทดสอบความสมบูรณ์ของข้อมูลการตรวจสอบประสิทธิภาพที่เกี่ยวข้องกับฐานข้อมูลและการทดสอบขั้นตอนทริกเกอร์และฟังก์ชันในฐานข้อมูล

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

สาเหตุทั่วไปบางประการที่ทำให้ต้องทำการทดสอบฐานข้อมูลมีดังนี้ -

  • เพื่อลดความซับซ้อนของการโทรไปยังแบ็กเอนด์ฐานข้อมูลนักพัฒนาจึงเพิ่มการใช้ไฟล์ View และ Stored ขั้นตอน

  • เหล่านี้ Stored ขั้นตอนและ Viewsประกอบด้วยงานที่สำคัญเช่นการใส่รายละเอียดลูกค้า (ชื่อข้อมูลติดต่อ ฯลฯ ) และข้อมูลการขาย งานเหล่านี้ต้องผ่านการทดสอบในหลายระดับ

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

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

ขั้นตอนที่คุณต้องปฏิบัติตามขณะทำการทดสอบฐานข้อมูลมีดังนี้ -

  • ข้อมูลที่อยู่ในฐานข้อมูลจะต้องได้รับการตรวจสอบ
  • ตรวจสอบว่ามีการรักษาข้อ จำกัด ไว้หรือไม่
  • ต้องตรวจสอบประสิทธิภาพของขั้นตอนและการดำเนินการของทริกเกอร์
  • ต้องตรวจสอบย้อนกลับและกระทำการทำธุรกรรม

บนพื้นฐานของฟังก์ชันและโครงสร้างของฐานข้อมูลการทดสอบ DB สามารถแบ่งออกเป็นประเภทต่างๆดังต่อไปนี้ -

  • Structural Database testing - เกี่ยวข้องกับการทดสอบตารางและคอลัมน์การทดสอบสคีมาขั้นตอนการจัดเก็บและการทดสอบมุมมองการตรวจสอบทริกเกอร์ ฯลฯ

  • Functional Testing- เกี่ยวข้องกับการตรวจสอบการทำงานของฐานข้อมูลจากมุมมองของผู้ใช้ การทดสอบฟังก์ชันทั่วไปส่วนใหญ่ ได้แก่ การทดสอบกล่องขาวและกล่องดำ

  • Nonfunctional Testing - เกี่ยวข้องกับการทดสอบโหลดการทดสอบความเสี่ยงในฐานข้อมูลการทดสอบความเครียดความต้องการขั้นต่ำของระบบและการจัดการกับประสิทธิภาพของฐานข้อมูล

เครื่องมือทั่วไปที่ใช้ในการทดสอบขั้นตอนการจัดเก็บ ได้แก่ LINQ, SP Test tool เป็นต้น

การเข้าร่วมใช้เพื่อเชื่อมต่อตารางตั้งแต่สองตารางขึ้นไปในลักษณะเชิงตรรกะ การรวมประเภททั่วไป ได้แก่ การเข้าร่วมภายใน, การเข้าร่วมแบบไม่เท่ากับการเข้าร่วมภายนอก, การเข้าร่วมด้วยตนเองและการเข้าร่วมแบบข้าม

คุณสามารถเข้าร่วมโต๊ะเดียวกับตัวเอง ในกรณีนี้คุณกำลังใช้ตารางเดียวกันสองครั้ง

Step 1 - เชื่อมต่อกับฐานข้อมูล

db_connect(query1 DRIVER {drivername};SERVER server_name;UID uidname;
   PWD password;DBQ database_name );

Step 2 - ดำเนินการค้นหาของฐานข้อมูล -

db_excecute_query (write the required query that is to execute); Specify the appropriate condition

Step 3 - ยกเลิกการเชื่อมต่อฐานข้อมูลโดยใช้

db_disconnect(query);

การใช้จุดตรวจสอบฐานข้อมูลเอาต์พุตต้องเลือกตัวเลือกการสืบค้นด้วยตนเองของ SQL ที่นี่สามารถเขียนคิวรีแบบเลือกได้

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

จากนั้นดำเนินการดังต่อไปนี้ -

  • ตรวจสอบชื่อโพรซีเดอร์การเรียกพารามิเตอร์การเรียกและการตอบสนองที่คาดหวังสำหรับชุดพารามิเตอร์อินพุตต่างๆ

  • ดำเนินการตามขั้นตอนด้วย TOAD หรือ MySQL หรือ Query Analyzer

  • ดำเนินการตามขั้นตอนที่มีอยู่อีกครั้งโดยการส่งพารามิเตอร์ที่แตกต่างกันและตรวจสอบผลลัพธ์กับค่าที่คาดไว้

  • สรุปกระบวนการทดสอบโดยอัตโนมัติด้วย WinRunner

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

Example - หากโพรซีเดอร์ที่จัดเก็บถูกเขียนขึ้นเพื่อเติมข้อมูลบางตารางต้องตรวจสอบค่าตาราง

เรามีคำสั่ง SQL สามประเภท -

  • ภาษาการจัดการข้อมูล (DML)
  • ภาษานิยามข้อมูล (DDL)
  • ภาษาควบคุมข้อมูล (DCL)

คำสั่ง DDL ใช้เพื่อกำหนดโครงสร้างฐานข้อมูลหรือสคีมา ตัวอย่างบางส่วน -

  • CREATE - เพื่อสร้างวัตถุในฐานข้อมูล

  • ALTER - ปรับเปลี่ยนโครงสร้างของฐานข้อมูล

  • DROP - ลบวัตถุออกจากฐานข้อมูล

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

  • ตัวดำเนินการเลขคณิต
  • ตัวดำเนินการเปรียบเทียบ / เชิงสัมพันธ์
  • ตัวดำเนินการทางตรรกะ
  • ตั้งค่าตัวดำเนินการ
  • ตัวดำเนินการใช้เพื่อลบล้างเงื่อนไข

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

Unionใช้เพื่อรวมผลลัพธ์ของคำสั่ง Select สองคำสั่งขึ้นไป อย่างไรก็ตามจะกำจัดแถวที่ซ้ำกัน

Union All การดำเนินการคล้ายกับ Union แต่ยังแสดงแถวที่ซ้ำกัน

ทริกเกอร์ใช้เพื่อรักษาความสมบูรณ์ของฐานข้อมูล หากต้องการตรวจสอบว่า Trigger เริ่มทำงานหรือไม่คุณสามารถตรวจสอบบันทึกการตรวจสอบได้

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

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

การทดสอบ DB เกี่ยวข้องกับการทดสอบส่วนประกอบส่วนหลังซึ่งผู้ใช้มองไม่เห็น ประกอบด้วยส่วนประกอบฐานข้อมูลและระบบ DBMS เช่น MySQL และ Oracle

การทดสอบส่วนหน้าเกี่ยวข้องกับการตรวจสอบฟังก์ชันการทำงานของแอปพลิเคชันและส่วนประกอบต่างๆเช่นแบบฟอร์มกราฟเมนูรายงาน ฯลฯ ส่วนประกอบเหล่านี้สร้างขึ้นโดยใช้เครื่องมือการพัฒนาส่วนหน้าเช่น VB.net, C #, Delphi เป็นต้น

กระบวนการทดสอบฐานข้อมูลจะเหมือนกับการทดสอบแอปพลิเคชันอื่น ๆ การทดสอบ DB สามารถอธิบายได้ด้วยกระบวนการสำคัญดังต่อไปนี้ -

  • การตั้งค่าสภาพแวดล้อม
  • ทำการทดสอบ
  • ตรวจสอบผลการทดสอบ
  • ตรวจสอบความถูกต้องตามผลลัพธ์ที่คาดหวัง
  • รายงานการค้นพบต่อผู้มีส่วนได้ส่วนเสียตามลำดับ

คำสั่ง SQL ต่างๆใช้ในการพัฒนากรณีทดสอบ คำสั่ง SQL ทั่วไปที่ใช้ในการทดสอบ DB คือคำสั่ง select นอกจากนี้ยังสามารถใช้คำสั่ง DDL, DML, DCL ต่างๆได้อีกด้วย

Example - สร้างแทรกเลือกอัปเดต ฯลฯ

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

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

ระบุมุมมองของผู้ใช้และการแม็พกับสคีมาแนวคิด

เป็นกระบวนการย่อยสลายตารางเป็นหลายตารางโดยไม่สูญเสียข้อมูลใด ๆ Normalization ทำเพื่อให้บรรลุเป้าหมายต่อไปนี้ -

  • เพื่อลดความซ้ำซ้อน
  • เพื่อลดการแทรกลบและอัปเดตความผิดปกติ

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

  • การสร้างดัชนีสไตล์การค้นหาแบบไบนารี
  • การสร้างดัชนี B-Tree
  • การจัดทำดัชนีรายการกลับหัว
  • ตารางอาศัยหน่วยความจำ
  • การสร้างดัชนีตาราง

SQL เป็นภาษา Structured Query ที่ออกแบบมาโดยเฉพาะสำหรับการดำเนินการเข้าถึงข้อมูลบนโครงสร้างฐานข้อมูลเชิงสัมพันธ์แบบปกติ

ความแตกต่างหลักระหว่าง SQL และภาษาโปรแกรมทั่วไปอื่น ๆ คือคำสั่ง SQL ระบุว่าควรดำเนินการกับข้อมูลใดแทนที่จะดำเนินการอย่างไร

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

PL / SQL ใช้เคอร์เซอร์สำหรับข้อมูลฐานข้อมูลทั้งหมดเข้าถึงคำสั่ง ภาษานี้รองรับการใช้เคอร์เซอร์สองประเภท - โดยนัยและชัดเจน

Cold Backup- Cold back เรียกว่าการสำรองไฟล์ฐานข้อมูลบันทึกซ้ำและไฟล์ควบคุมเมื่อปิดอินสแตนซ์ นี่คือการคัดลอกไฟล์โดยปกติจะส่งจากดิสก์ไปยังเทปโดยตรง คุณต้องปิดอินสแตนซ์เพื่อรับประกันสำเนาที่สอดคล้องกัน

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

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

SQL subquery เป็นวิธีการสืบค้นตารางตั้งแต่สองตารางขึ้นไปในเวลาเดียวกัน เคียวรีย่อยเองเป็นคำสั่ง SQL SELECT ที่อยู่ภายในส่วนคำสั่ง WHERE ของคำสั่ง SQL SELECT อื่นและคั่นด้วยการอยู่ในวงเล็บ เคียวรีย่อยบางรายการมีโครงสร้างการเข้าร่วม SQL ที่เทียบเท่ากัน แต่เคียวรีย่อยที่สัมพันธ์กันไม่สามารถทำซ้ำได้โดยการรวม

ในกรณีนี้คุณต้องทดสอบประเด็นต่อไปนี้ -

  • การอ้างอิงหลายค่า
  • การพึ่งพาการทำงาน
  • คีย์ผู้สมัคร
  • คีย์หลัก
  • คีย์ต่างประเทศ

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

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

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

การทดสอบซ้ำเรียกอีกอย่างว่าการทดสอบขับเคลื่อนด้วยข้อมูลโดยมีข้อแตกต่างเล็กน้อย -

  • Retesting - เป็นขั้นตอนการทดสอบด้วยตนเองในขณะที่การทดสอบแอปพลิเคชันทำด้วยชุดข้อมูลใหม่ทั้งหมด

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

การทดสอบที่ขับเคลื่อนด้วยข้อมูลมีสี่ประเภท -

  • การส่งข้อมูลการทดสอบแบบไดนามิกผ่านแป้นพิมพ์
  • การทดสอบการขับเคลื่อนข้อมูลผ่านไฟล์. txt, .doc
  • การทดสอบที่ขับเคลื่อนด้วยข้อมูลผ่านออบเจ็กต์ส่วนหน้า
  • การทดสอบการขับเคลื่อนข้อมูลผ่านแผ่น excel

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

ประเด็นสำคัญต่อไปนี้จะต้องได้รับการพิจารณาในขณะทำการทดสอบการกู้คืนฐานข้อมูล -

  • ช่วงเวลาที่เกิดการเปลี่ยนแปลงหรือแก้ไขในระบบฐานข้อมูล

  • ระยะเวลาที่คุณต้องการให้แผนการกู้คืนของคุณดำเนินการ

  • ความไวของข้อมูลในระบบฐานข้อมูล ข้อมูลมีความสำคัญมากขึ้นคุณจะต้องทดสอบซอฟต์แวร์เป็นประจำมากขึ้น

เครื่องมือต่อไปนี้ใช้ในการสร้างข้อมูลทดสอบ -

  • โรงงานข้อมูล
  • เครื่องกำเนิดข้อมูล DTM
  • ข้อมูลเทอร์โบ

มีการสำรองข้อมูลสองประเภทที่สามารถใช้ได้ -

  • Physical Backups- การสำรองข้อมูลทางกายภาพรวมถึงการกลับขึ้นโดยใช้ 3 เครื่องมือการสำรองข้อมูลของบุคคลที่ชอบกลับสุทธิ Veritas, IBM Tivoli ผู้จัดการหรือผู้ใช้สำรองข้อมูลผู้จัดการใช้สาธารณูปโภค OS

  • Logical Backups - การสำรองฐานข้อมูลแบบลอจิคัลรวมถึงการสำรองอ็อบเจ็กต์เชิงตรรกะเช่นตารางดัชนีโพรซีเดอร์ ฯลฯ

เครื่องมือทั่วไปในการสำรองข้อมูลคือ Oracle Recovery Manager (RMAN) ซึ่งเป็นยูทิลิตี้ Oracle เพื่อสำรองฐานข้อมูล

การดำเนินการต่อไปนี้ดำเนินการในการทดสอบการกู้คืนฐานข้อมูล -

  • การทดสอบระบบฐานข้อมูล
  • การทดสอบไฟล์ SQL
  • การทดสอบไฟล์บางส่วน
  • การทดสอบการสำรองข้อมูล
  • การทดสอบเครื่องมือสำรอง
  • ทดสอบการสำรองข้อมูลบันทึก

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

ทำการทดสอบความปลอดภัยของฐานข้อมูลเพื่อตรวจสอบประเด็นต่อไปนี้ -

  • Authentication
  • Authorization
  • Confidentiality
  • Availability
  • Integrity
  • Resilience

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

เครื่องมือต่อไปนี้สามารถใช้ในการทดสอบความปลอดภัยของฐานข้อมูล: Zed Attack Proxy, Paros, Social Engineer Toolkit, Skipfish, Vega, Wapiti และ Web Scarab

ความท้าทายทั่วไปที่ต้องเผชิญขณะทำการทดสอบฐานข้อมูลมีดังนี้ -

  • ขอบเขตการทดสอบใหญ่เกินไป
  • ฐานข้อมูลการทดสอบลดขนาด
  • การเปลี่ยนแปลงโครงสร้างฐานข้อมูล
  • แผนการทดสอบที่ซับซ้อน
  • มีความเข้าใจ SQL เป็นอย่างดี