BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP. HCM
---------------------------
BÁO CÁO ĐỒ ÁN MÔN HỌC
KIỂM THỬ VÀ ĐẢM BẢO CHẤT LƯỢNG PHẦN MỀM
NỘI DUNG ĐỀ TÀI :
KIỂM THỬ WEB BÁN HÀNG , SỬ DỤNG CÔNG CỤ TEST AUTOMATION
SELENIUM IDE
Giảng viên hướng dẫn :
Ths. NGUYỄN THỊ VÂN ANH
Sinh viên thực hiện :
Nhóm Vừa Đủ Qua Mơn
Hồ Khánh Duy
Trương Huỳnh Anh Thơng
Lê Đồn Quang Huy
Tống Phước Ngun Bình
Nguyễn Hữu Lợi
1916061001
1916060002
1911065236
1911065161
1911252153
TP.HCM, Tháng 10, năm 2021
NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
TP.HCM , ngày .........., tháng ......., năm ..............................
GIẢNG VIÊN HƯỚNG DẪN
LỜI CẢM ƠN
Đầu tiên nhóm “ Vừa Đủ Qua Mơn “ chúng em xin thay mặt cả lớp , cảm ơn cô Trần Thị
Vân Anh và nhà trường Đại Học Công Nghệ TP.HCM đã tận tâm hỗ trợ và tạo điều kiện
tốt nhất cho chúng em học tập trong thời gian dịch bệnh phức tạp hiện tại .
Về học phần Kiểm Thử Và Bảo Đảm Chất Lượng Phần Mềm là một học phần quan trọng
trong quá trình đào tạo kĩ sư của nghành Công Nghệ Thông Tin . Qua quá trình học tập
và làm bài thuyết trình ở học phần này . Chúng em nhận thấy giai đoạn kiểm thử phần
mềm có vai trị then chốt trong vịng đời phát triển phần mềm . Vì vậy nên chúng em
quyết định chọn đề tài kiểm thử web bán hàng . Báo cáo của chúng em có sử dụng cơng
cụ kiểm thử tự động Selenium và các testcase Blackbox – Whitebox .
Trong q trình hồn thiện bài báo cáo này khơng tránh khỏi các sai xót và kinh nghiệm
thực tế của chúng em cũng chưa có nhiều , mong cơ đóng góp ý kiến và hỗ trợ cho chúng
em có thể đạt được khối lượng kiến thức vững chắc cho tương lai !
Chúng em cảm ơn cô rất nhiều !
Mục lục
Chương 1: TỔNG QUAN VỀ ĐỀ TÀI..............................................................................5
1.1
Giới thiệu về Selenium.....................................................................................................................5
1.1.1
Khái niệm..................................................................................................................................5
1.1.2
Phân loại...................................................................................................................................5
1.2 Giới thiệu về Selenium IDE.....................................................................................................................6
1.2.1 Khái niệm.........................................................................................................................................6
1.2.2 Cài đặt..............................................................................................................................................6
1.2.3 Giao diện Selenium IDE...................................................................................................................7
Chương 2: ÁP DỤNG TK TESTCASE BLACK BOX VÀ TK TESTCASE WHITE BOX
......................................................................................................................................... 15
2.1 Khái niệm của Black Box Test và White Box Test.................................................................................15
2.1.1 White Box Test...............................................................................................................................15
2.1.2. Black Box Test...............................................................................................................................16
2.2 Áp dụng các kỹ thuật test của black box và white box cho đồ án......................................................18
2.2.1 Kỹ thuật test White Box.................................................................................................................18
2.3 Test case cho các chức năng chính của đồ án.....................................................................................23
2.4 Unit test cho các chức năng chính của đồ án......................................................................................23
2.4.1 Unit Test Search.............................................................................................................................23
Chương 3: HIỆN THỰC..................................................................................................25
3.1 Mơ tả dự án..........................................................................................................................................25
3.2 Thực hiện chương trình.......................................................................................................................26
3.2.1 Đăng ký..........................................................................................................................................26
3.2.2 Đăng nhập.....................................................................................................................................29
3.2.3 Tìm kiếm........................................................................................................................................32
3.2.4Giỏ hàng.........................................................................................................................................33
3.2.5 Quản Lý Danh Mục........................................................................................................................34
3.2.6 Quản Lý Sản Phẩm.........................................................................................................................37
Chương 4: KẾT LUẬN....................................................................................................39
4.1 Kết quả thực hiện.................................................................................................................................39
4.1.1 Kết quả đạt được..........................................................................................................................39
4.1.2 Kết quả chưa đạt được.................................................................................................................39
4.2 Hướng phát triển..................................................................................................................................39
Chương 1: TỔNG QUAN VỀ ĐỀ TÀI
1.1 Giới thiệu về Selenium
1.1.1 Khái niệm
Selenium là một mã nguồn mở và là một công cụ kiểm thử phần mềm tự động hóa để thử
nghiệm các ứng dụng web. Nó có khả năng hoạt động trên nhiều các trình duyệt và hệ
điều hành khác nhau. Selenium không chỉ là một công cụ duy nhất mà là một bộ các công
cụ giúp những người kiểm thử tự động hóa các ứng dụng dựa trên web hiệu quả hơn.
Chúng ta sẽ tìm hiểu từng cơng cụ có sẵn trong bộ cơng cụ Selenium và cách sử dụng
chúng.
1.1.2 Phân loại
Selenium IDE được phát triển dưới dạng một ứng dụng mở rộng (add-on) cho
Mozilla Firefox phiên bản 2.0 trở lên. Công cụ cung cấp chức năng Record and
Playback.
Selenium Remote Control (RC) cho phép nhận các Test script được thu bởi
Selenium IDE, cho phép chỉnh sửa cải tiến linh động bằng ngôn ngữ lập trình khác
nhau. Sau đó khởi động một trong các trình duyệt Web được chỉ định để thực thi
kiểm tra trực tiếp trên trình duyệt đó. Selenium RC cịn cùng cấp khả năng lưu lại kết
quả kiểm tra.
Selenium Grid Thực hiện phương pháp kiểm tra phân bổ, phối hợp nhiều kết quả
Selenium RC để có thể thực thi trên nhiều trình duyệt web khác nhau trong cùng một
lúc. Selenium Grid cũng cho phép lưu lại kết quả kiểm tra.
Selenium Core được tích hợp trong Selenium IDE, là một cơng cụ chạy các
testscript bằng Selenese. Selenium có nhiều cách sử dụng khác nhau. Chúng ta có thể
dùng Test Runner mode (Bot mode) sử dụng Selenium Core, cách này dùng các test
case và test suite dưới dạng hàng trong file html. Selenium RC là driven mode, ở đây
các test case trong các ngôn ngữ lựa chọn (Java, C#, Python, Perl, Ruby…). Record
mode sử dụng Selenium IDE để thu lại các thao tác và giao diện web.
1.2 Giới thiệu về Selenium IDE
1.2.1 Khái niệm
Selenium IDE là công cụ giúp bạn phát triển ca kiểm thử dược xây dựng dưới dạng
Add – ons của trình duyệt web. Đây là cách tiện lợi nhất để xây dựng các ca kiểm thử,
gồm các phần tử giao diện giúp bạn có thể lựa chọn thể hiện các thao tác, khơng chỉ tiết
kiệm thời gian mà con là cách thông minh để hiểu kịch bản Selenium. Bộ công cụ này
cung cấp chức năng “thu và chạy lại” – Record and Playback. Nhờ đó, Tester có thể nhanh
chóng tạo một bộ kịch bản kiểm tra (test script) bằng cách trực tiếp “thu” các thao tác của
mình trên đối tượng cần kiểm tra thành 1 tập các câu lệnh “Selenese” (ngôn ngữ kịch bản
được phát triển cho Selenium IDE và Selenium Core có dạng bản HTML). Sau đó chạy lại
các câu lệnh này để kiểm tra. Chức năng này rất hữu dụng, cho phép tiết kiệm thời gian
viết kịch bản kiểm tra. Selenium IDE cho phép lưu kịch bản đã thu dưới nhiều loại ngơn
ngữ lập trình.
1.2.2 Cài đặt
Truy cập địa chỉ: bằng trình duyệt web
Tìm đến mục Selenium IDE và click vào version mới nhất để tải
Tiến hành cài đặt, khởi động lại trình duyệt (Lúc này ở phần Tools của FireFox có hiện
thêm Selenium IDE)
1.2.3 Giao diện Selenium IDE
Hình 1.1 Giao diện Selenium
Trên thanh cơng cụ của Selenium IDE có các tab: File, Edit, Action, Options, Help. Mỗi
tab lại có nhiều lựa chọn khách nhau gúp người dùng dễ dàng sử dụng: [1]: Nơi bạn tạo
nhiều test cases để có thể chạy nối tiếp nhau. [2]: Chạy theo thứ tự tất cả các test cases
đang có trong bảng (1). [3]: Chạy test case đang được chọn (in đậm) trong bảng (1). [4]:
Tab chuyển giữa giao diện tương tác mặc định và giao diện code. [5]: Record (ghi) lại
những thao tác trên focus tab rồi chuyển chúng thành lệnh của Selenium. [6]: Ô nhập liệu
để bạn có thể thay đổi / chỉnh sửa giá trị của “lệnh” sao cho phù hợp. Trong trường hợp
bạn chạy nhiều test cases, khi gặp lỗi Selenium sẽ bỏ qua test case đó và chạy những test
cases tiếp theo. Thơng tin lỗi sẽ được ghi nhận lại và được đánh dấu đỏ:
Bên cạnh đó, trên Toolbar của Selenium có hỗ trợ bạn xuất file test cases ra các ngôn ngữ
khác như Java, Python…
Chức năng đăng nhập user
Hình 2.2 Chức năng đăng nhập user
Sơ đồ luồng
Độ phức tạp
V(G) = E – N + 2 = 16 – 3 + 2 = 5
V(G) = P + 1 =5
Các luồng đi:
1->2
1->3->4->5->6
1->3->4->7->8
1->3->4->9->10
1->3->4->11
Trường hợp test
TC1
TC2
TC3
TC4
TC5
Đầu vào
“”
“Test”
“Testkhoa”
“testxacthuc”
“@$^#testloi”
Kết quả
Return(Model)
returnUrl
“Lockout”
“Send code”
“Invalid login attempt”
Chức năng tìm kiếm sản phẩm
Hình 2.3 Chức năng tìm kiếm sản phẩm
Sơ đồ luồng
Độ phức tạp
V(G) = E – N + 2 = 11 – 9 + 2 = 4
V(G) = P + 1 = 3 + 1 = 4
Các luồng đi
1->2
1->3->4
1->3->5->6
1->3->5->7
Trường hợp test
TC1
TC2
TC3
TC4
Đầu vào
SupplierId != ""
CategoryId != 0
Keywords != ""
SupplierId = "", CategoryId
= 0, String Keywords = ""
Kết quả
return View(model)
return View(model)
return View(model)
return View(db.Products)
Chức năng chỉnh sửa danh mục
Hình 2.4 Chức năng chỉnh sửa danh mục
Sơ đồ luồng
Độ phức tạp
V(G) = E – N + 2 = 15 – 12 + 2 = 5
V(G) = P + 1 = 4 + 1 =5
V(G)=5 5 testcase
Các luồng đi
1->2->9
1->2->3->4->9
1->2->3->5->6.1->8->9
1->2->3->5->6.1->6.2->8->9
1->2->3->5->6.1->6.2->7->8->9
Chương 2: ÁP DỤNG TK TESTCASE BLACK BOX VÀ TK
TESTCASE WHITE BOX
2.1 Khái niệm của Black Box Test và White Box Test
2.1.1 White Box Test
Định nghĩa
Kiểm thử hộp trắng (While box test) là phương pháp thử nghiệm phần mềm, trong đó các
thiết kế, cấu trúc giải thuật bên trong, và việc thực hiện các cơng việc đều được biết đến.
Hình 2.5 White Box Test
Đối tượng kiểm thử
Là 1 thành phần của phần mềm (1 chức năng, 1 module chức năng, 1 phân hệ chức
năng....)
Phương pháp kiểm thử
Dựa vào thuật giải Kiểm thử hộp trắng dựa vào thuật giải cụ thể, vào cấu trúc dữ liệu bên
trong của đơn vị phần mềm cần kiểm thử để xác định đơn vị phần mềm đó có thực hiện
đúng khơng.
Với những TPPM q lớn sẽ tốn rất nhiều thời gian và công sức để kiểm thử nếu như
dùng kiểm thử tích hợp (Integration test) hay kiểm thử chức năng (Functional test).
Kỹ thuật white box test thích hợp dùng để kiểm thử đơn vị (Unit test).
Đặc điểm
Là chiến lược kiểm thử TPPM dựa vào giải thuật, cấu trúc bên trong chức năng của
TPPM tương ứng.
Người kiểm thử phải có kiến thức nhất định về việc mã hoá, cấu trúc bên trong của chức
năng, biết lâp trình phần mềm.
Việc kiểm thử được tiến hành dựa vào việc kiểm xem giải thuật, mã lệnh đã làm có đúng
không.
Mức test này thường yêu cầu các tester phải viết test case đầy đủ các nhánh trong code;
khi test, sẽ set điều kiện và data để chạy vào đủ tất cả các nhánh trong giải thuật, đảm bảo
thực hiện đầy đủ.
Tạo testcase và thực hiện test
Khi viết test case: Dựa vào yêu cầu và nội dung Source Code (can thiệp vào bên trong
Code của chương trình).
Khi thực hiện test: Thực thi test trong code (khơng cần thực thi chương trình, vì thực hiện
test white box sẽ sử dụng framework nào đó hỗ trợ (Ví dụ như test kiểu debug).
Trong kiểm tra này, địi hỏi người tester phải có kiến thức và kỹ năng nhất định về ngơn
ngữ lập trình được dùng, hiểu thuật giải trong thành phần phần mềm, để có thể hiểu được
chi tiết về đoạn code cần kiểm thử.
2.1.2. Black Box Test
Định nghĩa
Kiểm tra hộp đen (Black box testing) là một phương pháp kiểm thử phần mềm mà việc
kiểm tra các chức năng của một ứng dụng không cần quan tâm vào cấu trúc nội bộ hoặc
hoạt động của nó.
Hình 2.6 Black Box Test
Đối tượng kiểm thử
Là thành phần phần mền (TPPM) có thể là 1 hàm chức năng, 1 modul chức năng, 1 phân
hệ chức năng...
Phương pháp kiểm thử
Dựa vào chức năng Kiểm thử hộp đen (Black box test) có thể được áp dụng hầu như đến
mọi cấp độ của kiểm thử phần mềm:
•Kiểm thử đơn vị (Unit test)
•Kiểm thử tích hợp (Intergration test)
•Kiểm thử hệ thống (System test)
•Kiểm thử chấp nhận (Acceptance test).
Tuy nhiên, Black box test được sử dụng thích hợp nhất trong kiểm thử hệ thống (System
test) và Kiểm thử chấp nhận (Acceptance test)
Đặc điểm
Là chiến lược kiểm thử TPPM dựa vào thông tin duy nhất là các đặc tả về yêu cầu chức
năng của TPPM tương ứng.
Người kiểm thử khơng cần thiết phải có kiến thức về việc mã hoá, cấu trúc bên trong của
TPPM, cũng như khơng u cầu phải biết lâp trình phần mềm.
Việc kiểm thử được tiến hành dựa vào việc kiểm thử TPPM làm được gì, có phù hợp với
u cầu của người dùng hay không. Các tester nhập số liệu vào phần mềm và chỉ cần xem
kết quả của phần mềm và các mục tiêu kiểm tra.
Mức test này thường yêu cầu các tester phải viết test case đầy đủ trước khi test; khi test,
đơn giản chỉ cần thực hiện theo các bước mô tả trong test case thao tác và nhập data vào,
sau đó xem kết quả trả về hoặc hành vi của phần mềm, rồi so sánh với kết quả mong đọi
được viết trong testcase.
Tạo testcase và thực hiện test
Khi viết test case: Dựa vào yêu cầu và giao diện bên ngồi của chương trình (Khơng can
thiệp vào bên trong code của chương trình).
Khi thực hiện test: Thực hiện trên giao diện của chương trình (yêu cầu chương trình phải
chạy được mới test được, khơng can thiệp vào code).
2.2 Áp dụng các kỹ thuật test của black box và white box cho đồ án
2.2.1 Kỹ thuật test White Box
Chức năng đăng nhập user
Hình 2.7 Chức năng đăng nhập user
Sơ đồ luồng
Độ phức tạp
V(G) = E – N + 2 = 16 – 3 + 2 = 5
V(G) = P + 1 =5
Các luồng đi:
1->2
1->3->4->5->6
1->3->4->7->8
1->3->4->9->10
1->3->4->11
Trường hợp test
TC1
TC2
TC3
TC4
Đầu vào
“”
“Test”
“Testkhoa”
“testxacthuc”
“@$^#testloi”
Kết quả
Return(Model)
returnUrl
“Lockout”
“Send code”
“Invalid login attempt”
Chức năng tìm kiếm sản phẩm
Hình 2.8 Chức năng tìm kiếm sản phẩm
Sơ đồ luồng
Độ phức tạp
V(G) = E – N + 2 = 11 – 9 + 2 = 4
V(G) = P + 1 = 3 + 1 = 4
Các luồng đi
1->2
1->3->4
1->3->5->6
1->3->5->7
Trường hợp test
TC1
TC2
TC3
TC4
Đầu vào
SupplierId != ""
CategoryId != 0
Keywords != ""
SupplierId = "", CategoryId
= 0, String Keywords = ""
Chức năng chỉnh sửa danh mục
Kết quả
return View(model)
return View(model)
return View(model)
return View(db.Products)
Hình 2.9 Chức năng chỉnh sửa danh mục
Sơ đồ luồng
Độ phức tạp
V(G) = E – N + 2 = 15 – 12 + 2 = 5
V(G) = P + 1 = 4 + 1 =5
V(G)=5 5 testcase
Các luồng đi
1->2->9
1->2->3->4->9
1->2->3->5->6.1->8->9
1->2->3->5->6.1->6.2->8->9
1->2->3->5->6.1->6.2->7->8->9
2.3 Test case cho các chức năng chính của đồ án
2.4 Unit test cho các chức năng chính của đồ án
2.4.1 Unit Test Search
Hình 2.6 Unit Test Search
Chương 3: HIỆN THỰC
3.1 Mô tả dự án
Web bán sách có địa chỉ domain là https://localhost:44323/
Bao gồm các module và tính năng chính sau :
Trang Chủ
Trở về trang chủ
Đăng ký tài khoản
Đăng nhập để mua hàng
Giỏ hàng
Tìm kiếm sản phẩm
Trang quản lý danh mục
Trang quản lý sản phẩm
Hình 3.10 Trang chủ Web