การทดสอบฐานข้อมูล - คู่มือฉบับย่อ
การทดสอบฐานข้อมูลประกอบด้วยการตรวจสอบความถูกต้องของข้อมูลการทดสอบความสมบูรณ์ของข้อมูลการตรวจสอบประสิทธิภาพที่เกี่ยวข้องกับฐานข้อมูลและการทดสอบขั้นตอนทริกเกอร์และฟังก์ชันในฐานข้อมูล
ตัวอย่าง
พิจารณาแอปพลิเคชันที่รวบรวมรายละเอียดธุรกรรมในแต่ละวันสำหรับผู้ใช้และจัดเก็บรายละเอียดในฐานข้อมูล จากมุมมองการทดสอบฐานข้อมูลควรทำการตรวจสอบต่อไปนี้ -
ข้อมูลธุรกรรมจากแอปพลิเคชันควรถูกเก็บไว้ในฐานข้อมูลและควรให้ข้อมูลที่ถูกต้องแก่ผู้ใช้
ข้อมูลไม่ควรสูญหายเมื่อโหลดไปยังฐานข้อมูล
ควรจัดเก็บเฉพาะธุรกรรมที่เสร็จสมบูรณ์และการดำเนินการที่ไม่สมบูรณ์ทั้งหมดควรถูกยกเลิกโดยแอปพลิเคชัน
ควรรักษาสิทธิ์การเข้าถึงฐานข้อมูลไว้ ไม่ควรให้การเข้าถึงข้อมูลผู้ใช้ที่ไม่ได้รับอนุมัติหรือไม่ได้รับอนุญาต
ทำไมคุณต้องทำการทดสอบฐานข้อมูล?
มีสาเหตุหลายประการที่ดำเนินการทดสอบฐานข้อมูล จำเป็นต้องดำเนินการความสมบูรณ์ของข้อมูลการตรวจสอบความถูกต้องและการตรวจสอบความสอดคล้องของข้อมูลบนฐานข้อมูลเนื่องจากระบบแบ็กเอนด์มีหน้าที่จัดเก็บข้อมูลและเข้าถึงได้หลายวัตถุประสงค์
ด้านล่างนี้เป็นสาเหตุทั่วไปบางประการสำหรับการทดสอบฐานข้อมูล -
เพื่อลดความซับซ้อนของการโทรไปยังแบ็กเอนด์ฐานข้อมูลนักพัฒนาจึงเพิ่มการใช้ไฟล์ 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 เป็นอย่างดี