Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 42 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
42
Dung lượng
2,07 MB
Nội dung
Kiểm thử hộp trắng, áp dụng công cụ NUnit LỜI NÓI ĐẦU Trong giai đoạn phát triển công nghệ thông tin, ngành công nghệ phần mềm ngày chiếm vị trí quan trọng xu hướng phát triển kinh tế công nghiệp hóa, đại hóa đất nước ta Cùng với phát triển công nghệ phần mềm, lỗi phần mềm chất lượng phần mềm thách thức lớn với thân ngành phần mềm thực tế chứng minh, kiểm thử phần mềm giai đoạn chiếm đến 40% thời gian, kinh phí nguồn nhân lực phát triển dự án phần mềm Tuy nhiên Việt Nam nay, việc kiểm thử phần mềm chưa thực nhìn nhận với tầm quan trọng Điều thể tỷ lệ kỹ sư kiểm thử phần mềm Việt Nam thấp, lập trình viên có kỹ sư kiểm thử (số liệu thống kê năm 2011 công ty LogiGear), tỷ lệ theo chuẩn quốc tế 3:1 Thêm vào đó, mức độ đáp ứng kỹ sư kiểm thử phần mềm Việt Nam chưa cao Nguyên nhân việc đến từ thiếu hụt đơn vị đào tạo chuyên sâu kiểm thử nguyên nhân sâu xa vấn đề kiểm thử phần mềm Việt Nam chưa chuyên nghiệp hóa đầu tư mức Ngày nay, tự động hóa nghiên cứu ứng dụng nhiều lĩnh vực công nghệ phần mềm nói chung kiểm thử phần mềm nói riêng không ngoại lệ Khi mà kiểm thử phần mềm tiêu tốn lượng lớn thời gian, kinh phí nhân lực dự án phần mềm song song với kiểm thử truyền thống thủ công, đời công cụ hỗ trợ kiểm thử tự động Quick Test Professional, Nunit, Junit, Load Runner (thường dùng kiểm thử hiệu năng) tất yếu Với mong muốn có nhìn xác thực, rõ ràng kiểm thử phần mềm tiếp cận với công cụ kiểm thử tự động NUnit để làm tảng cho công việc sau này.Nhóm chúng em tìm hiểu đề tài Kiểm thử hộp trắng, áp dụng công cụ NUnit Xin chân thành cảm ơn Cô Lê Thị Thu Hương nhiệt tình giúp đỡ chúng em trình thực đề tài Trong khuôn khổ đồ án môn học, thời gian kinh nghiệm thực tế hạn chế nên có phần thực chưa tốt, chúng em mong nhận góp ý quý thầy cô bạn Đỗ Văn Thành-Đặng Xuân Thành-Nguyễn Đức Thiệu Page Kiểm thử hộp trắng, áp dụng công cụ NUnit I Tổng quan kiểm thử hộp trắng - Đối tượng kiểm thử thành phần phần mềm (TPPM) TPPM hàm chức năng, module chức năng, phân hệ chức năng… - Kiểm thử hộp trắng dựa vào thuật giải cụ thể, vào cấu trúc liệu bên đơn vị phần mềm cần kiểm thử để xác định đơn vị phần mềm có thực không - Do người kiểm thử hộp trắng phải có kỹ năng, kiến thức định ngôn ngữ lập trình dùng, thuật giải dùng TPPM để thông hiểu chi tiết đoạn code cần kiểm thử - Thường tốn nhiều thời gian công sức TPPM lớn (thí dụ kiểm thử tích hợp hay kiểm thử chức năng) - Do kỹ thuật chủ yếu dùng để kiểm thử đơn vị Trong lập trình hướng đối tượng, kiểm thử đơn vị kiểm thử tác vụ class chức - Kiểm thử hộp trắng thiết kế kiểm thử sử dụng cấu trúc thiết kế chi tiết, dựa vào cấu trúc/mã lệnh chương trình - Với kiểm thử hộp trắng người kiểm thử phải biết ngôn ngữ lập trình Phương pháp kiểm tra trạng thái chương trình nhiều điểm - Bao gồm hai kỹ thuật: + Kiểm thử đường diễn tiến chương trình + Kiểm thử cấu trúc điều khiển II Kiểm thử đường diễn tiến chương trình - Là việc thiết kế trường hợp kiểm thử câu lệnh chương trình, thực lần không quan tâm đến ảnh hưởng lên đường định Các bước tiến hành: Dùng tài liệu thiết kế hay mã nguồn để vẽ thuật toán chương trình hay hàm Xác định đồ thị V(G) Từ đồ thị xác định tập đường độc lập tuyến tính lẫn Xây dựng trường hợp kiểm thử dựa tập đường xác định Mô tả số cấu trúc theo lược đồ Đỗ Văn Thành-Đặng Xuân Thành-Nguyễn Đức Thiệu Page Kiểm thử hộp trắng, áp dụng công cụ NUnit Ví dụ: Xét chương trình sau: result = 0+1+…+|value|, result 0, y>0), (x 0) } kiểm tra toàn điều kiện Tuy nhiên: Không thỏa mãn với giá trị input, cần kết hợp x y để thực bước kiểm tra Ví dụ 2: while (x > || y > 0) { x ; y ; z += x*y; } Với kiểm tra { (x>0) } kiểm tra bao trùm điều kiện Tuy nhiên: Không kiểm tra giá trị y Ví dụ 3: if ( x != ) y = 5; if ( z < ) z = z/x; else z = 0; Với kiểm tra {(x=0,z=1), (x=1, z=0)} kiểm tra bao trùm điều kiện Tuy nhiên: Không kiểm tra trường hợp lỗi chia cho (khi x=0) Nhận xét: Khi kiểm tra phương pháp kiểm tra theo điều kiện cần xem xét kết hợp điều kiện với B.2 Kiểm thử luồng liệu (DTF) Là lựa chọn số đường diễn tiến chương trình dựa việc cấp phát, định nghĩa, sử dụng biến chương trình Phương pháp phù hợp cho việc kiểm thử chương trình có nhiều lệnh if vòng lặp nhiều cấp Phương pháp kiểm thử luồng liệu yêu cầu tất chuỗi DU kiểm thử lần Tuy nhiên, phương pháp không đảm bảo kiểm thử tất nhánh chương trình Đỗ Văn Thành-Đặng Xuân Thành-Nguyễn Đức Thiệu Page Kiểm thử hộp trắng, áp dụng công cụ NUnit Ở ta giả sử câu lệnh chương trình gán số hàm không thay đổi thông số biến toàn cục Định nghĩa X: DEF(S) = { X | lệnh S chứa định nghĩa X } Có hai kiểu định nghĩa: - I-def (Khai báo hay truyền vào/nhập vào X): int X - A-def (Gán giá trị cho X): X=5 Sử dụng X USE(S) = { X | lệnh S chứa lệnh hay biểu thức sử dụng X } Có cách sử dụng: - P- use : xác định bước gì, ví dụ: if (X=54) … - C- use: Tính toán, ví dụ: b=3 +X - O- use: Trả giá trị, ví dụ: return X - L-use: Xác định vị trí, ví dụ: trỏ - I- use: Lặp, ví dụ: biến đếm, số lặp Biến X câu lệnh S cho sống câu lệnh S’ tồn đường từ câu lệnh S đến câu lệnh S’ không chứa định nghĩa X DU pair (Definition-Use pair): Một cặp định nghĩa – sử dụng (DU pair) biến X, ký hiệu DU=[X, S, S’] với X DEF(S), USE(S’), định nghĩa X câu lệnh S sống câu lệnh S’ DU path: Là chuỗi lệnh S→S’, DEF(S)=USE(S’)={X} DC path (Definition-Clear path): Là chuỗi DU path, S có DES(S)={X} Edge: Cạnh Node: Nút Chiến lược xây dựng TC DTF Các bước thực DTF: - Đánh số dòng - Lập danh sách biến - Lập danh mục định nghĩa, trường hợp sử dụng với biến - Xác định DU path với biến - Xây dựng test case, nguyên tắc: bao phủ tất DU path Ví dụ: Public int gcd (int // DEF(1)={x,y} Đỗ Văn Thành-Đặng Xuân Thành-Nguyễn Đức Thiệu Page Kiểm thử hộp trắng, áp dụng công cụ NUnit x, int y) { int tmp; //DEF (2)={tmp} While (y!=0){ //USE(3)={y} tmp=x%y; x=y; y=tmp; // USE(4)={x,y},DEF(4)={tmp} // USE(5)={y},DEF(5)={x} // USE(6)={tmp},DEF(6)={y} } Return x; //USE(7)={x} } • Các biến: x, y, tmp Bảng 1.2 Danh mục trường hợp sử dụng biến (DTF) Bảng 1.3 DU path với biến (DTF) Đỗ Văn Thành-Đặng Xuân Thành-Nguyễn Đức Thiệu Page Kiểm thử hộp trắng, áp dụng công cụ NUnit Bảng 1.4 Ca kiểm thử (DTF) B.3 Kiểm thử vòng lặp Là phương pháp tập trung vào tính hợp lệ cấu trúc vòng lặp Có loại vòng lặp: vòng lặp đơn, vòng lặp lồng nhau, vòng lặp nối tiếp, vòng lặp không cấu trúc • Đỗ Văn Thành-Đặng Xuân Thành-Nguyễn Đức Thiệu Page 10 Kiểm thử hộp trắng, áp dụng công cụ NUnit Chèn thư viện liên kết động NUnit Tại hộp thoại Add Reference, chọn thẻ Browser, chọn nút bấm Browser, tìm tới file nunit.framework.dll (Sau cài NUnit, thường file nằm thư mục C:\Program Files\NUnit\bin\framework) Click OK để kết thúc Đỗ Văn Thành-Đặng Xuân Thành-Nguyễn Đức Thiệu Page 28 Kiểm thử hộp trắng, áp dụng công cụ NUnit Chèn thư viện liên kết động NUnit (tiếp theo) Thêm Class với tên Test Sau Test Cases chương trình với trường hợp kiểm thử Đỗ Văn Thành-Đặng Xuân Thành-Nguyễn Đức Thiệu Page 29 Kiểm thử hộp trắng, áp dụng công cụ NUnit Tiến hành sửa lỗi cú pháp (nếu có) biên dịch chương trình để tạo file *.exe phục vụ cho trình kiểm thử với NUnit Đỗ Văn Thành-Đặng Xuân Thành-Nguyễn Đức Thiệu Page 30 Kiểm thử hộp trắng, áp dụng công cụ NUnit Khởi động NUnit, load Project cách vào menu File / Open Project (Ctrl + O) Tìm đến file thực thi tạo sau biên dịch chương trình với Visual Studio (trong trường hợp thư mục gốc project KiemTraTamGiac\bin\Debug\KiemTraTamGiac.exe) Nhấn Open để mở Sau load Project, chọn trường hợp test case chọn Run để bắt đầu trình kiểm tra Trường hợp kiểm thử 01 (Tam giác): Khi nhập cạnh tam giác cho kết trả “True” [Test] public void Test () { Assert.AreEqual(true, TamGiac.isTamGiac(5,6,7)); } Đỗ Văn Thành-Đặng Xuân Thành-Nguyễn Đức Thiệu Page 31 Kiểm thử hộp trắng, áp dụng công cụ NUnit Kết kiểm thử trả trùng với kết trả nên kết test Kết test trường hợp 01 Đỗ Văn Thành-Đặng Xuân Thành-Nguyễn Đức Thiệu Page 32 Kiểm thử hộp trắng, áp dụng công cụ NUnit - Trường hợp kiểm thử 02 (Tam giác): Nhập mẫu đầu vào gán giá trị trả sai [Test] public void Test () { Assert.AreEqual(false, TamGiac.isTamGiac(5,6,7)); } Chương trình chấp nhận mẫu đầu vào chương trình báo lỗi (dữ liệu đầu vào tam giác thường kết đầu lại cho “False”) nên kết test Kết test trường hợp 02 - Trường hợp kiểm thử 03 (Tam giác): Nhập liệu đầu vào sai, kết đầu [Test] public void Test () { Assert.AreEqual(true, TamGiac.isTamGiac(3.5, 4, 5)); } Đỗ Văn Thành-Đặng Xuân Thành-Nguyễn Đức Thiệu Page 33 Kiểm thử hộp trắng, áp dụng công cụ NUnit Mặc dù độ dài cạnh tam giác dạng thập phân chương trình test chấp nhận liệu chương trình ứng dụng không Vậy kết test trường hợp sai Kết test trường hợp 03 Đỗ Văn Thành-Đặng Xuân Thành-Nguyễn Đức Thiệu Page 34 Kiểm thử hộp trắng, áp dụng công cụ NUnit - Trường hợp kiểm thử 04 (Tam giác cân): Nhập liệu đầu vào kết đầu tam giác cân [Test] public void Test_TamGiacCan() { Assert.AreEqual(true, TamGiac.isTamGiacCan(2, 2, 3)); } Kết test cho thấy liệu đầu vào kết đầu đưa kết tam giác cân nên kết test trường hợp Kết test trường hợp 04 - Trường hợp kiểm thử 05 (Tam giác cân): Dữ liệu đầu vào sai kết đầu [Test] public void Test_TamGiacCan() { Assert.AreEqual(true, TamGiac.isTamGiacCan(5, 4, 3)); } Đỗ Văn Thành-Đặng Xuân Thành-Nguyễn Đức Thiệu Page 35 Kiểm thử hộp trắng, áp dụng công cụ NUnit Ba cạnh nhập vào không tạo thành tam giác cân, kết đầu Chương trình test báo lỗi Vậy kết test trường hợp Kết test trường hợp 05 - Trường hợp kiểm thử 06 (Tam giác vuông): Dữ liệu đầu vào đầu [Test] public void Test_TamGiacVuong() { Assert.AreEqual(true, TamGiac.isTamGiacVuong(3, 4, 5)); } Đỗ Văn Thành-Đặng Xuân Thành-Nguyễn Đức Thiệu Page 36 Kiểm thử hộp trắng, áp dụng công cụ NUnit Đối với nguồn liệu đầu vào kết đầu chương trình test báo Vậy kết test Kết test trường hợp 06 - Trường hợp kiểm thử 07 (Tam giác vuông): Dữ liệu đầu vào kết đầu sai [Test] public void Test_TamGiacVuong() { Assert.AreEqual(false, TamGiac.isTamGiacVuong(3, 4, 5)); } Đỗ Văn Thành-Đặng Xuân Thành-Nguyễn Đức Thiệu Page 37 Kiểm thử hộp trắng, áp dụng công cụ NUnit Với nguồn đầu vào thỏa mãn tam giác vuông kết đầu sai chương trình test báo lỗi Vậy kết test Kết test trường hợp 07 Đỗ Văn Thành-Đặng Xuân Thành-Nguyễn Đức Thiệu Page 38 Kiểm thử hộp trắng, áp dụng công cụ NUnit - Trường hợp kiểm thử 08 (Tam giác đều): Dữ liệu đầu vào kết đầu [Test] public void Test_TamGiacDeu() { Trong việc xét Assert.AreEqual(true, tam giác đều, với liệu đầu vào kết đầu TamGiac.isTamGiacDeu(3, 3, 3)); } trường hợp Và chương trình test báo nên kết test trường hợp Kết test trường hợp 08 Đỗ Văn Thành-Đặng Xuân Thành-Nguyễn Đức Thiệu Page 39 Kiểm thử hộp trắng, áp dụng công cụ NUnit - Trường hợp kiểm thử 09 (Tam giác đều): Nhập liệu đầu vào cho kết đầu sai [Test] public void Test_TamGiacDeu() { Assert.AreEqual(false, TamGiac.isTamGiacDeu(3, 3, 3)); } Xét tam giác đều, với nguồn liệu đầu vào cho kết đầu sai chương trình test báo lỗi Vậy kết test Kết test trường hợp 09 KẾT LUẬN Kiểm thử phần mềm vấn đề quan trọng với tổ chức phát triển phần mềm Trong khuôn khổ đồ án Đỗ Văn Thành-Đặng Xuân Thành-Nguyễn Đức Thiệu Page 40 Kiểm thử hộp trắng, áp dụng công cụ NUnit thời gian kinh nghiệm hạn chế nên có phần đồ án chưa đào sâu nghiên cứu Sau thời gian dài thực đồ án, hướng dẫn Cô Lê Thị Thu Hương, đồ án môn học chúng em thực tốt mục tiêu đề đạt kết sau: - Kết đạt được: Trình bày đầy đủ xác vấn đề tổng quan phần mềm, công nghệ phần mềm, lỗi phần mềm, vấn đề liên quan đến kiểm thử phần mềm • Kiểm thử hộp trắng, áp dụng công cụ NUnit • Áp dụng Visual Studio 2010 • Đồ án tài liệu xúc tích tổng hợp vấn đề kiểm thử phần mềm, coi tài liệu hướng dẫn sử dụng NUnit ngắn gọn rõ ràng tiếng Việt để tham khảo - Hạn chế: Mặc dù cố gắng thời gian thực đề tài với kinh nghiệm hạn chế nên đồ án không tránh khỏi thiếu sót: • Kiểm thử NUnit với toán nhỏ, độ phức tạp chưa cao • Kiến thức kiểm thử chưa tốt - Hướng phát triển đề tài: Trong thời gian tới, chúng em tiếp tục nghiên cứu sâu vấn đề kiểm thử phần mềm, đặc biệt công cụ kiểm thử NUnit, để vận dụng vào kiểm thử ứng dụng lớn thực tế công việc tương lai nhằm góp phần nhỏ bé vào công chuyên nghiệp hóa kiểm thử phần mềm Việt Nam Đỗ Văn Thành-Đặng Xuân Thành-Nguyễn Đức Thiệu Page 41 Kiểm thử hộp trắng, áp dụng công cụ NUnit TÀI LIỆU THAM KHẢO [1] Đề Cương Bài Giảng –Đảm Bảo Chất Lượng Phần Mềm [2] http://www.testingvn.com/ Đỗ Văn Thành-Đặng Xuân Thành-Nguyễn Đức Thiệu Page 42 [...]... Kiểm tra” (btKt) Viết mã lệnh cho btKt với nội dung bên dưới: Đỗ Văn Thành-Đặng Xuân Thành-Nguyễn Đức Thiệu Page 24 Kiểm thử hộp trắng, áp dụng trên công cụ NUnit Đỗ Văn Thành-Đặng Xuân Thành-Nguyễn Đức Thiệu Page 25 Kiểm thử hộp trắng, áp dụng trên công cụ NUnit Giao diện chương trình Đỗ Văn Thành-Đặng Xuân Thành-Nguyễn Đức Thiệu Page 26 Kiểm thử hộp trắng, áp dụng trên công cụ NUnit 3 Tiến hành kiểm. .. hiện kiểm thử trên từng test case 6 So sánh kết quả có được với kết quả được kỳ vọng 7 VIII 1 Lập báo cáo kết quả để phản hồi cho những người có liên quan Kiểm thử hộp trắng áp dụng trên công cụ Nunit Cài đặt công cụ Để download và sử dụng công cụ, truy cập website: http://www .nunit. org/index.php?p=download Đỗ Văn Thành-Đặng Xuân Thành-Nguyễn Đức Thiệu Page 17 Kiểm thử hộp trắng, áp dụng trên công cụ NUnit. .. Thiệu Page 21 Kiểm thử hộp trắng, áp dụng trên công cụ NUnit Hình 7: Giao diện chương trình sau khi cài đặt thành công 2 Bài toán ứng dụng 2.1 Tổng quan về chương trình Đỗ Văn Thành-Đặng Xuân Thành-Nguyễn Đức Thiệu Page 22 Kiểm thử hộp trắng, áp dụng trên công cụ NUnit Chương trình kiểm tra tam giác được xây dựng nhằm phục vụ cho việc sử dụng công cụ NUnit để tiến hành kiểm thử Yêu cầu đặt ra cho bài... Page 27 Kiểm thử hộp trắng, áp dụng trên công cụ NUnit Chèn thư viện liên kết động của NUnit Tại hộp thoại Add Reference, chọn thẻ Browser, chọn nút bấm Browser, tìm tới file nunit. framework.dll (Sau khi cài NUnit, thường thì file nằm tại thư mục C:\Program Files \NUnit\ bin\framework) Click OK để kết thúc Đỗ Văn Thành-Đặng Xuân Thành-Nguyễn Đức Thiệu Page 28 Kiểm thử hộp trắng, áp dụng trên công cụ NUnit. .. 14 Kiểm thử hộp trắng, áp dụng trên công cụ NUnit Các loại nút trong đồ thị dòng điều khiển : điểm xuất phát thúc khối xử lý điểm quyết định điểm nối điểm kết Miêu tả các cấu trúc điều khiển phổ dụng : Tuần tự Switch If while c do do while c Thí dụ : 1 float foo(int a, int b, int c, int d) { s1 2 float e; Đỗ Văn Thành-Đặng Xuân Thành-Nguyễn Đức Thiệu Page 15 Kiểm thử hộp trắng, áp dụng trên công cụ. .. thư viện liên kết động của NUnit (tiếp theo) Thêm một Class mới với tên Test Sau đây là các Test Cases của chương trình với các trường hợp kiểm thử ở trên Đỗ Văn Thành-Đặng Xuân Thành-Nguyễn Đức Thiệu Page 29 Kiểm thử hộp trắng, áp dụng trên công cụ NUnit Tiến hành sửa lỗi cú pháp (nếu có) và biên dịch chương trình để tạo ra file *.exe phục vụ cho quá trình kiểm thử với NUnit Đỗ Văn Thành-Đặng Xuân... NUnit Hình 1: Website download công cụ miễn phí Phiên bản hiện tại (23/02/2013): Nunit 2.6.2 Chọn định dạng file tương ứng để tải Bước 1: Sau khi download công cụ về ta được file thực thi có tên: NUnit- 2.6.2.msi Chạy file này, xuất hiện màn hình, chọn “Next” (1) để tiếp tục Đỗ Văn Thành-Đặng Xuân Thành-Nguyễn Đức Thiệu Page 18 Kiểm thử hộp trắng, áp dụng trên công cụ NUnit Hình 2: Tiến trình cài đặt... chọn Run để bắt đầu quá trình kiểm tra Trường hợp kiểm thử 01 (Tam giác): Khi nhập đúng 3 cạnh của một tam giác và cho kết quả trả về là “True” [Test] public void Test () { Assert.AreEqual(true, TamGiac.isTamGiac(5,6,7)); } Đỗ Văn Thành-Đặng Xuân Thành-Nguyễn Đức Thiệu Page 31 Kiểm thử hộp trắng, áp dụng trên công cụ NUnit Kết quả kiểm thử trả về trùng với kết quả trả về ở trên nên kết quả test là đúng... Thành-Nguyễn Đức Thiệu Page 11 Kiểm thử hộp trắng, áp dụng trên công cụ NUnit phần mềm tương ứng, cụ thể nó là danh sách có thứ tự các lệnh được thi hành ứng với 1 lần chạy cụ thể của đơn vị phần mềm, bắt đầu từ điểm nhập của đơn vị phần mềm đến điểm kết thúc của đơn vị phần mềm - Mỗi TPPM có từ 1 đến n (có thể rất lớn) đường thi hành khác nhau Mục tiêu của phương pháp kiểm thử luồng điều khiển là đảm... : int phanso (int a, int b) { return a/b; } khi kiểm tra, ta chọn b 0 thì chạy đúng, nhưng khi dùng thật trong trường hợp b = 0 thì hàm phanso bị lỗi V Các cấp phủ kiểm thử (Coverage) - Do đó, ta nên kiểm thử 1 số test case tối thiểu mà kết quả độ tin cậy Đỗ Văn Thành-Đặng Xuân Thành-Nguyễn Đức Thiệu Page 12 Kiểm thử hộp trắng, áp dụng trên công cụ NUnit tối đa Nhưng làm sao xác định được số test