Mô tả các đối tượng

Một phần của tài liệu NGHIÊN CỨU LÝ THUYẾT KIỂM THỬ VÀ KIỂM THỬ ĐƠN VỊ VỚI NUnit 2.5 (Trang 73)

Các đối tượng của chương trình kiểm tra tam giác được nêu rõ trong Bảng 4.1

Đối tượng Tên đối tượng Mô tả

TextBox txtA Cạnh AB

TextBox txtB Cạnh BC

TextBox txtC Cạnh AC

CheckBox cbA Căn bậc 2 của AB CheckBox cbB Căn bậc 2 của BC CheckBox cbC Căn bậc 2 của AC TextBox txtTamgiac Tam giác

TextBox txtCV Chu vi

TextBox txtS Diện tích

Button btok Thực hiện

Button bthuy Xóa

Bảng 4.1 Các đối tượng của chương trình kiểm tra tam giác 4.4.2 Mã code của chương trình

4.4.2.1 Code giao diện

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using ClassLibrary1; namespace WindowsApplication1

{

public partial class Form1 : Form {

public Form1() {

InitializeComponent(); }

private void Form1_Load(object sender, EventArgs e) {

}

private void btok_Click(object sender, EventArgs e) { if (txtA.Text == "") { txtA.Text = "0"; } if (txtB.Text == "") { txtB.Text = "0"; } if (txtC.Text == "") { txtC.Text = "0"; } double a = Convert.ToDouble(txtA.Text); double b = Convert.ToDouble(txtB.Text); double c = Convert.ToDouble(txtC.Text); if (cbA.Checked) { a = Math.Sqrt(a); } if (cbB.Checked) { b = Math.Sqrt(b); } if (cbC.Checked) { c = Math.Sqrt(c); }

Class1 x = new Class1(); int d = x.phanloai(a, b, c); if (d==1)

{

txtTamgiac.Text = "Tam giác đều"; }

else if (d==2)

{

txtTamgiac.Text = "Tam giác vuông cân"; }

else if (d==3) {

txtTamgiac.Text = "Tam giác cân"; }

else if (d==4) {

txtTamgiac.Text = "Tam giác vuông"; }

else if (d==5) {

txtTamgiac.Text = "tam giac thuong"; }

else {

txtTamgiac.Text = "Không phải tam giác"; }

txtCV.Text = x.chuvi(a, b, c).ToString(); txtS.Text = x.dientich(a, b, c).ToString(); }

private void bthuy_Click(object sender, EventArgs e) { txtA.Text = ""; txtB.Text = ""; txtC.Text = ""; txtTamgiac.Text = ""; txtCV.Text = ""; txtS.Text = ""; }

private void txtA_KeyPress(object sender, KeyPressEventArgs e) {

string decimalString = ".";

char decimalChar = Convert.ToChar(decimalString);

if (Char.IsDigit(e.KeyChar) || Char.IsControl(e.KeyChar)) { }

else if (e.KeyChar == decimalChar && txtA.Text.IndexOf(decimalString) == -1) { } else { e.Handled = true; } } } }

4.4.2.2. Code của lớp kiểm tra tam giác using System; using System.Collections.Generic; using System.Text; namespace ClassLibrary1 {

public class Class1 {

public Boolean tamgiac(double a,double b,double c)// kiem tra la tam giac thuong {

if ((a + b > c) && (b + c > a) && (a + c > b)) {

return true; }

return false; }

public Boolean tamgiacvuong(double a, double b, double c)// kiem tra la tam giac vuong

{

if (tamgiac(a, b, c))// neu la tam giac thuong { if (a * a + b * b == c * c || a * a + c * c == b * b || b * b +c * c == a * a) return true; } return false; }

public Boolean tamgiacvuongcan(double a, double b, double c)// kiem tra tam giac vuong can { if (tamgiacvuong(a, b, c)) { if (a == b || b == c || c == a) return true; } return false; }

public Boolean tamgiaccan(double a, double b, double c)// kiem tra tam giac can { if (tamgiac(a, b, c)) { if (a == b || b == c || c == a) return true; } return false;

}

public Boolean tamgiacdeu(double a, double b, double c)// kiem tra tam giac deu { if (tamgiac(a, b, c)) { if (a == b && b == c && c == a) return true; } return false; }

public double dientich(double a, double b, double c) {

if (!tamgiac(a, b, c)) return 0; double p = (a + b + c)/2;

return Math.Sqrt(p * (p - a) * (p - b) * (p - c)); }

public double chuvi(double a, double b, double c) {

if (!tamgiac(a, b, c)) return 0; return a + b + c;

}

public int phanloai(double a, double b,double c)// phan loai tam giac {

if(tamgiacdeu(a, b, c)) return 1;// la 1 neu tam giac deu if(tamgiacvuongcan(a, b, c)) return 2;//...

if(tamgiaccan(a, b, c)) return 3; if(tamgiacvuong(a,b,c)) return 4; if(tamgiac(a,b,c)) return 5; return 0;// la 0 neu ko la tam giac }

} }

CHƯƠNG 5: THIẾT KẾ KIỂM THỬ

5.1 Kiểm thử hộp đen

Kiểm thử hộp đen là phương pháp tập trung vào yêu cầu về mặt chức năng của phần mềm. Sau đây chúng ta sẽ tạo ra một bộ các điều kiện input yêu cầu về giao diện để kiểm thử chức năng của ứng dụng kiểm tra tam giác.

5.1.1 Yêu cầu giao diện

Ứng dụng kiểm tra tam giác được tạo ra với mục đích để minh họa cho quá trình kiểm thử đơn vị với công cụ kiểm thử NUnit version 2.5 cho nên yêu cầu về giao diện rất đơn giản. Bảng 5.1 dưới đây sẽ trình bày rõ các yêu cầu giao diện của ứng dụng

TT Yêu cầu Test Yêu cầu kết quả 1 Các thông tin chương trình Chương trình bao gồm:

 Các Label: Cạnh AB, Cạnh BC, Cạnh AC.

 Ba Checkbox: Căn Bậc 2.

 Các textbox: A, B, C, TamGiac.

 Các button: Bắt đầu, Hủy.

2 Cho phép thực hiện kiểm tra tam giác. Click button “ Bắt đầu ” để tiến hành kiểm tra tam giác.

3 Cho phép nhập lại các thông tin đã nhập.

Click button “ Hủy ” để tiến hành nhập lại các thông tin đã nhập.

4 Cho phép người dùng có thể chọn căn

bậc hai của cạnh đã nhập Click checkbox “ Căn Bậc 2 ” để chọn căn bậc hai cho cạnh đã nhập

5 Người dùng không cần sử dụng chuột nhưng vẫn có thể thực hiện được chương trình.

Sử dụng phím tab để di chuyển.

6 Cho phép người dùng có thể nhập độ

dài của các cạnh. Các textbox: Cạnh AB, Cạnh AC, Cạnh BC được dùng cho phép người dùng có thể nhập độ dài các cạnh.

7 Cho phép xem đó là tam giác gì sau khi đã tiến hành kiểm tra.

Texbox “ TamGiac” cho phép người dùng xem đó là tam giác gì sau khi đã tiến hành kiểm tra.

5.1.2 Mô tả các tình huống Test

Bảng 5.2 sau đây trình bày các tình huống test dựa trên yêu cầu về giao diện trong bảng 5.1 ở trên

TT Dữ liệu Test Yêu cầu kết quả 1 Nhập vào giá trị của ba cạnh tam giác

và kích chọn button “Bắt đầu ”. Trên form chương trình sẽ hiện ra đó là loại tam giác gì.

2 Nhập vào giá trị của ba cạnh tam giác

và kích chọn button “ Hủy ”. Chương trình sẽ xóa trắng các textbox để người dùng nhập dữ liệu mới.

3 Nhập vào giá trị của ba cạnh tam giác, kích chọn vào checkbox của một cạnh nào đó và kích button “ Hủy ”.

Chương trình sẽ xóa trắng các textbox, checkbox để người dùng nhập dữ liệu mới.

4 Nhập dữ liệu các cạnh là ký tự. Trên form chương trình sẽ báo lỗi dữ liệu bị sai.

5 Không nhập dữ liệu các cạnh nhưng lại kích chọn button “Bắt đầu ”.

Chương trình ngầm hiểu rằng các cạnh của tam giác lúc này là bằng không và vẫn tiến hành kiểm tra.

6 Nhập dữ liệu các cạnh có dạng phân

số. Trên form chương trình sẽ báo lỗi dữ liệu bị sai. Bảng 5.2 Mô tả các tình huống test

5.2 Kiểm thử hộp trắng

Trong kiểm thử hộp trắng,các trường hợp kiểm thử được thiết kế để xem xét trên cấu trúc nội bộ của module và cấu trúc điều kiện. Bảng 5.3 dưới đây đưa ra các tình huống test với dữ liệu đầu vào và kết quả đầu ra cho các trường hợp.

TT Tình huống Dữ liệu đầu vào Kết quả đầu ra

Dữ liệu đầu vào và kết quả đầu ra đều đúng.

Cạnh AB: 3 Cạnh AC: 4 Cạnh BC: 5

Tam giác vuông

Dữ liệu đầu vào và kết quả đầu ra đều đúng.

Cạnh AB: 2 Cạnh AC: 2

Cạnh BC: Căn bậc hai của 8

Tam giác vuông cân

Dữ liệu đầu vào đúng nhưng kết quả đầu ra sai.

Cạnh AB: 2 Cạnh AC: 3 Cạnh BC: 4

Tam giác vuông

Dữ liệu đầu vào và kết quả đầu ra đều đúng.

Cạnh AB: Căn bậc hai của 9

Cạnh AC: 3

Cạnh BC: 5 Dữ liệu đầu vào và

kết quả đầu ra đều sai.

Cạnh AB: 3/5 Cạnh AC: 3 Cạnh BC: 4

Không là tam giác

Bảng 5.3 Dữ liệu kiểm thử.

CHƯƠNG 6: TIẾN HÀNH KIỂM THỬ

6.1 Kiểm thử hộp đen

6.1.1 Kết quả kiểm thử giao diện

Bảng 6.1 sau đây là kết quả đạt được sau khi tiến hành kiểm thử giao diện của chương trình ứng dụng

TT Yêu cầu Test Yêu cầu kết quả Kết quả 1 Các thông tin chương trình Chương trình bao gồm:

 Các Label: Cạnh AB, Cạnh BC, Cạnh AC, Tam Giác.

 Ba Checkbox: Căn Bậc 2.

 Các textbox: A, B, C, TamGiac.

 Các button: Bắt đầu, Hủy.

True

2 Cho phép thực hiện kiểm tra tam giác.

Click button “ Bắt đầu ” để tiến hành kiểm tra tam giác.

True 3 Cho phép nhập lại các

thông tin đã nhập.

Click button “ Hủy ” để tiến hành nhập lại các thông tin đã nhập.

True 4 Cho phép người dùng có

thể chọn căn bậc hai của cạnh đã nhập

Click checkbox “ Căn Bậc 2 ” để chọn căn bậc hai cho cạnh đã nhập

True 5 Người dùng không cần sử

dụng chuột nhưng vẫn có thể thực hiện được chương trình.

Sử dụng phím tab để di chuyển. True

6 Cho phép người dùng có thể nhập độ dài của các cạnh.

Các textbox: A, B, C được dùng cho phép người dùng có thể nhập độ dài các cạnh.

True 7 Cho phép xem đó là tam

giác gì sau khi đã tiến hành kiểm tra.

Texbox “ TamGiac” cho phép người dùng xem đó là tam giác gì sau khi đã tiến hành kiểm tra.

True

Bảng 6.1 Kết quả kiểm thử giao diện

Kết quả của các tình huống test nêu ra ở chương 5 sẽ được trình bày ở Bảng 6.2 dưới đây

TT Dữ liệu Test Yêu cầu kết quả Kết quả 1 Nhập vào giá trị của ba

cạnh tam giác và kích chọn button “ Bắt đầu ”.

Trên form chương trình sẽ hiện ra đó là loại tam giác gì.

True 2 Nhập vào giá trị của ba

cạnh tam giác và kích chọn button “ Hủy ”.

Chương trình sẽ xóa trắng các textbox để người dùng nhập dữ liệu mới.

True 3 Nhập vào giá trị của ba

cạnh tam giác, kích chọn vào checkbox của một cạnh nào đó và kích button “ Hủy ”.

Chương trình sẽ xóa trắng các textbox, checkbox để người dùng nhập dữ liệu mới.

Faile

4 Nhập dữ liệu các cạnh là ký tự.

Trên form chương trình sẽ báo lỗi dữ liệu bị sai. Faile 5 Không nhập dữ liệu các cạnh nhưng lại kích chọn button “ Bắt đầu ”. Chương trình ngầm hiểu rằng các cạnh của tam giác lúc này là bằng không và vẫn tiến hành kiểm tra.

True 6 Nhập dữ liệu các cạnh có

dạng phân số.

Trên form chương trình sẽ báo lỗi dữ liệu bị sai.

Faile

Bảng 6.2 Kết quả kiểm thử các tình huống 6.2 Kiểm thử hộp trắng

Để kiểm thử module của chương trình ứng dụng thì ta cần tạo một project trong Visul Studio 2008 với tên testUnitTamGiac. Sau đây là TestCase của chương trình với các trường hợp kiểm thử đã được thiết kế ở Bảng 5.3

using System; using System.Collections.Generic; using System.Linq; using System.Text; using NUnit.Framework; namespace checkTamGiac { [TestFixture]

public class testUnitTamGiac {

private ClassLibrary1.Class1 x; [TestFixtureSetUp]

public void SetUp() {

}

[TestFixtureTearDown] public void TearDown() {

x = null; }

[Test]

public void TestTamGiac() { int a = x.phanloai(3, 4,5); Assert.AreEqual(a, 4); } } }

Sau khi tiến hành kiểm thử, ta có kết quả trong Bảng 6.3 dưới đây:

TT Tình

huống

Dữ liệu đầu vào Kết quả đầu ra Kết quả Hình 1 Dữ liệu đầu vào và kết quả đầu ra đều đúng. Cạnh AB: 3 Cạnh AC: 4 Cạnh BC: 5 Tam giác

vuông Kết quả chấp nhận bộ dữ liệu vào và cho ra kết quả là tam giác vuông → kết quả test là đúng 6.1 2 Dữ liệu đầu vào và kết quả đầu ra đều đúng. Cạnh AB: 2 Cạnh AC: 2 Cạnh BC: Căn bậc hai của 8 Tam giác vuông cân Kết quả chấp nhận bộ dữ liệu vào và chương trình không báo lỗi → kết quả test là đúng 6.2 3 Dữ liệu đầu vào đúng nhưng kết quả đầu ra sai. Cạnh AB: 2 Cạnh AC: 3 Cạnh BC: 4 Tam giác vuông Kết quả chấp nhận bộ dữ liệu vào nhưng chương trình báo lỗi → kết quả test là đúng

6.3 4 Dữ liệu đầu vào và kết quả đầu ra đều đúng. Cạnh AB: Căn bậc hai của 9 Cạnh AC: 3 Cạnh BC: 5 Tam giác

cân Kết quả chấp nhận bộ dữ liệu và chương trình không báo lỗi → kết quả test là đúng

6.4 5 Dữ liệu đầu vào và kết quả đầu ra đều sai. Cạnh AB: 3/5 Cạnh AC: 3 Cạnh BC: 4 Không là tam giác Kết quả chấp nhận bộ dữ liệu và chương trình không báo lỗi → kết quả test là sai. Dữ liệu Cạnh AB không được có dạng phân số.

6.5

Kết quả kiểm thử lần 1 ở hình 6.1 cho thấy dữ liệu đầu vào và kết quả đầu ra là trùng với nhau (tam giác vuông),vậy kết quả test là đúng.

Hình 6.1 Kết quả kiểm thử lần 1

Kết quả kiểm thử lần 2 ở hình 6.2 cho thấy dữ liệu đầu vào và kết quả đầu ra là trùng với nhau (tam giác vuông cân),vậy kết quả test là đúng.

Hình 6.2 Kết quả kiểm thử lần 2

Kết quả kiểm thử lần 3 ở hình 6.3 cho thấy kết quả chấp nhận bộ dữ liệu đầu vào nhưng chương trình báo lỗi (dữ liệu đầu vào là tam giác thường nhưng kết quả đầu ra lại là tam giác vuông),vậy kết quả test là đúng.

Hình 6.3 Kết quả kiểm thử lần 3

Kết quả kiểm thử lần 4 ở hình 6.4 cho thấy dữ liệu đầu vào và kết quả đầu ra là trùng với nhau (tam giác cân),vậy kết quả test là đúng.

Hình 6.4 Kết quả kiểm thử lần 4

Kết quả kiểm thử lần 5 ở hình 6.5 cho thấy mặc dù dữ liệu đầu vào cho cạnh AC ở dạng phân số nhưng chương trình test vẫn chấp nhận dữ liệu này trong khi chương trình ứng dụng thì không, vậy kết quả test là sai.

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

Kết quả đạt được của đồ án là hiểu rõ và vận dụng được qui trình kiểm thử vào các sự án thực tế, nghiên cứu và vận dụng hiệu quả một số công cụ hỗ trợ kiểm thử tự động đặc biệt là công cụ kiểm thử NUnit thực hiện trên một số sản phẩm demo, từ đó đề xuất và ứng dụng kiểm thử cho các ứng dụng phức tạp hơn, thực hiện nhiều loại, nhiều giai đoạn kiểm thử. Việc kiểm thử bằng NUnit giúp tiết kiệm được thời gian và kiểm thử đơn vị hiệu quả.

Trên cơ sở nghiên cứu các tư liệu và kết quả thực nghiệm cho thấy kiểm thử phần mềm là rất quan trọng, việc thực hiện kiểm thử tốt sẽ làm tăng chất lượng của sản phẩm. Tuy nhiên, để vận dụng và thực hiện một cách hiệu quả các qui trình, phương pháp và công cụ kiểm thử thì vẫn còn nhiều vấn đề đặt ra cần tiếp tục giải quyết. Có thể đề xuất những hướng nghiên cứu và triển khai tiếp theo của đồ án là:

- Sử dụng công cụ kiểm thử NUnit để kiểm thử các đối tượng của website và hiệu suất của một website.

- Nghiên cứu một số công cụ kiểm thử web, kiểm thử cơ sở dữ liệu, kiểm thử tải. Để nâng cao hiệu suất kiểm thử nhiều loại sản phẩm phần mềm khác nhau, ta cần nghiên cứu thêm nhiều công cụ kiểm thử tự động khác bởi vì mỗi một công cụ kiểm thử chỉ có thể thực hiện chuyên một số kiểm thử nào đó.

TÀI LIỆU THAM KHẢO

[1] B.Beizer,Software Testing Techniques.London: International Thompson Computer

Press,1990.

[2] A.Bertolino,”Chapter 5: Software Testing,” in IEEE SWEBOK Trial Version 1.00,May 2001

[3] B.W.Boehm, Software Engineering Economics. Englewood Cliffs, NJ: Prentice- Hall,Inc.,1981.

[4] R.D.Craig and S.P.Jaskiel, Systematic Software Testing. Norwood,MA: Artech House Publishers,2004.

[5]Roger S.Pressman (2005). Software Engineering: A Practitioner's Approach (6th ed.)

Một phần của tài liệu NGHIÊN CỨU LÝ THUYẾT KIỂM THỬ VÀ KIỂM THỬ ĐƠN VỊ VỚI NUnit 2.5 (Trang 73)

Tải bản đầy đủ (DOC)

(87 trang)
w