Tải bản đầy đủ (.doc) (51 trang)

Đồ án kiểm thử phần mềm

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.9 MB, 51 trang )

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

BÀI TẬP LỚN
KIỂM THỬ PHẦN MỀM
ĐỀ TÀI: KIỂM THỬ TỰ ĐỘNG VỚI CÔNG CỤ SELENIUM
WEBDRIVER

Giáo viên hướng dẫn

: T.S Nguyễn Hồng Tú

Lớp

: ĐH-KTPM3-K11

Nhóm

: 13

Sinh viên thực hiện

: Trần Viết Trưởng
Đoàn Quang Nhật

Hà Nội, 2019


Bảng Công Việc
Tên Thành Viên

Công Việc



Trần Viết Trưởng

Kiểm thử chức năng đăng nhập, kiểm
thử hiệu năng luồng đăng nhập, trang
chủ

Đoàn Quang Nhật

Kiểm thử chức năng thêm nhân viên


Lời Nói Đầu
Ngày nay cơng nghệ thơng tin đang phát triển ngày càng nhanh chóng, kéo
theo đó là các hệ thống mạng và phần mềm cũng gia tăng cả về số lượng lẫn quy
mơ. Nhưng cũng từ đó đã nảy sinh ra nhiều vấn đề về lỗi hỏng hóc phần mềm
khơng đáng có gây ra các ảnh hưởng nghiêm trọng đến xã hội, kinh tế… Những lỗi
này có thể do tự bản thân phần mềm bị hỏng do không được kiểm duyệt kỹ lưỡng
trước khi đưa cho người dùng hoặc cũng có thể do có người cố tình phá hoại…
Những vấn đề nan giải và cấp thiết này càng có xu hướng mở rộng trong những
năm gần đây.
Do đó yêu cầu đặt ra là cần có cơng tác kiểm thử phần mềm thật kỹ lưỡng
nhằm ngăn chặn các lỗi hay hỏng hóc cịn tiềm tàng bên trong phần mềm mà ta
chưa kịp nhận ra. Tuy nhiên vì phần mềm ngày càng lớn vì vậy để kiểm thử sẽ tốn
rất nhiều công sức nếu làm thủ công chưa kể đến chất lượng sẽ khơng được cao và
chưa chắc đã chính xác với u cầu. Vì vậy cần có các chương trình kiểm thử tự
động cho phép ta thực hiện một cách nhanh chóng và an tồn. Và đó chính là lý do
em chọn đề tài kiểm thử tự động với công cụ selenium webdriver.
Chúng em xin gửi lời cám ơn chân thành đến thầy TS. Nguyễn Hoàng Tú –
giảng viên bộ môn “Kiểm Thử Phần Mềm”, khoa Công nghệ thông tin, trường Đại

Học Công Nghiệp Hà Nội đã định hướng, hướng dẫn và chỉ bảo tận tình trong quá
trình chúng em học tập và hoàn thành báo cáo này. Chúng em xin chúc thầy và gia
đình ln ln mạnh khỏe và tràn đầy niềm vui trong cuộc sống.
Cuối cùng, chúng em xin gửi lời cảm ơn đến người thân, bạn bè đã động
viên, đóng góp ý kiến và giúp đỡ trong q trình học tập, nghiên cứu và hồn thành
báo cáo này.
Chúng em xin chân thành cảm ơn!


Chương 1. TÌM HIỂU CƠNG CỤ KIỂM THỬ TỰ ĐỘNG SELENIUM
WEBDRIVER........................................................................................1
1.1 Tóm tắt lịch sử..............................................................................1
Selenium là một cơng cụ kiểm thử phần mềm tự động, được phát
triển bởi ThoughtWorks từ năm 2004 với tên ban đầu là
JavaScriptTestRunner. Đến năm 2007, tác giả Jason Huggins rời
ThoughtWorks và gia nhập Selenium team, một phần của Google và
phát triển thành Selenium như hiện nay.............................................1
Selenium là một tập hợp mạnh mẽ của các công cụ hỗ trợ phát triển
nhanh chóng của các thử nghiệm tự động hóa cho các ứng dụng
dựa trên web. Selenium cung cấp một tập phong phú của các thử
nghiệm chức năng đặc biệt hướng đến các nhu cầu của các thử
nghiệm của một ứng dụng web. Các hoạt động này là rất linh hoạt,
cho phép nhiều tùy chọn cho vị trí các thành phần UI và so sánh kết
quả thử nghiệm dự kiến sẽ chống lại hành vi ứng dụng thực tế........1
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.......................................................................1

Selenium-IDE là mơi trường phát triển tích hợp cho việc xây dựng
trường hợp thử nghiệm Selenium. Nó hoạt động như một trình duyệt
Firefox add-on và cung cấp một giao diện dễ sử dụng để phát triển
và chạy trường hợp kiểm thử cá nhân, bộ kiểm tra tồn bộ.
Selenium-IDE có một tính năng ghi lại, sẽ giữ tài khoản của người
sử dụng khi chúng được thực hiện và lưu trữ chúng như là một kịch
bản tái sử dụng để phát sử dụng. Nó cũng có một menu ngữ cảnh
(nhấn chuột phải) tích hợp với trình duyệt Firefox, cho phép người
dùng chọn từ một danh sách xác nhận và xác minh cho các vị trí đã
chọn. Selenium-IDE cũng cung cấp chỉnh sửa đầy đủ các trường
hợp thử nghiệm cho chính xác hơn và kiểm sốt..............................1
WebDriver là một khn khổ tự động hóa web cho phép bạn thực
hiện các kiểm thử của mình trên các trình duyệt khác nhau. Nó nằm


trong bộ kiểm thử tự động Selenium. WebDriver được sử dụng trong
ngữ cảnh sau:....................................................................................2
Kiểm thử đa trình duyệt, bao gồm cải thiện chức năng cho trình
duyệt mà khơng được hỗ trợ tốt bởi Selenium RC............................2
Điều khiển nhiều frame, nhiều cửa sổ trình duyệt, nhiều popup và
alert....................................................................................................2
Điều hướng trang phức hợp..............................................................2
Điều hướng người dùng nâng cao như kéo-thả (drag-and-drop).....2
Selenium RC là dự án Selenium chính trong một thời gian dài trước
khi Selenium WebDriver (Selenium 3.9) ra đời. Giờ đây Selenium
RC hầu như khơng được sử dụng vì WebDriver cung cấp nhiều tính
tăng mạnh mẽ hơn. Tuy nhiên bạn vẫn có thể tiếp tục phát triển các
script sử dụng RC..............................................................................2
Selenium RC cho phép các nhà phát triển tự động hóa kiểm tra sử
dụng một ngơn ngữ lập trình cho tính linh hoạt tối đa và mở rộng

trong việc phát triển logic thử nghiệm. Ví dụ, nếu trình ứng dụng trả
về một tập kết quả của việc kiểm tra, và nếu chương trình thử
nghiệm tự động cần chạy thử nghiệm trên mỗi phần tử trong tập hợp
kết quả, hỗ trợ lặp đi lặp lại các ngơn ngữ lập trình có thể được sử
dụng để chuyển đổi thông qua việc tập hợp kết quả, kêu gọi
Selenium lệnh chạy thử nghiệm trên mỗi mục...................................2
Khả năng sử dụng Selenium RC với một ngơn ngữ lập trình bậc cao
để phát triển các trường hợp thử nghiệm cũng cho phép thử nghiệm
tự động được tích hợp với một dự án xây dựng môi trường tự động.
...........................................................................................................2
Selenium RC cho phép chúng ta viết các kiểm thử giao diện của
ứng dụng Web tự động với sự giúp đỡ của các ngơn ngữ lập trình
như Java, C#, Perl, Python, PHP để tạo ra các ca kiểm thử phức tạp
hơn như đọc và viết các tập tin, truy vấn cơ sở dữ liệu và gửi mail
kết quả kiểm thử. Khả năng sử dụng Selenium RC với một ngơn ngữ
lập trình bậc cao để phát triển các trường hợp thử nghiệm cũng cho
phép thử nghiệm tự động được tích hợp với một dự án xây dựng
môi trường tự động............................................................................2
Selenium Grid....................................................................................2


Selenium Grid cho phép người dùng thực thi kiểm thử song song
trên nhiều máy tính khác nhau với nhiều trình duyệt khác nhau........3
Selenium Grid cho phép thực thi kiểm thử với chế độ phân tán, sử
dụng chung một code base. Do đó, hard code khơng cần thiết phải
có mặt trên tất cả các máy được sử dụng để thực thi kiểm thử.........3
Selenium Grid bao gồm 2 thành phần chính là Hub và Nodes:........3
Hub: có thể hiểu là máy chủ server, chứa hard code và là nơi gửi
lệnh điều khiển các máy khác trong mơ hình thực thi kiểm thử. Hub
chỉ có thể được set up duy nhất trên một máy tính............................3

Nodes: là các Selenium instances được kết nối vào Hub để thực thi
các kịch bản kiểm thử. Có thể có nhiều Nodes trong một mơ hình
Grid. Các Nodes có thể được set up trên nhiều máy tính với nhiều
trình duyệt khác nhau.........................................................................3
Selenium WebDriver là sự kế thừa của Selenium RC để gửi các
lệnh trực tiếp tới trình duyệt và xuất ra các kết quả. Selenium
WebDriver cho phép chúng ta sử dụng một trong số các ngơn ngữ
lập trình như HTML, Java, .Net, Perl, Ruby… để tạo kịch bản test
(Test Case) kết hợp với sử dụng các điều kiện, vòng lặp… khiến cho
test script trở nên chính xác hơn. Selenium WebDriver được phát
triển tốt hơn để hỗ trợ cho các trang web động (Những trang web
mà phần tử trong nó có thể thay đổi ngay cả khi trang đó khơng
được tải lại) Mục đích của WebDriver là hỗ trợ cho các vấn đề về
kiểm thử web-app hiện nay................................................................3
1.2 Đặc điểm......................................................................................3
Selenium là một cơng cụ mã nguồn mở: Vì là mã nguồn mở nên
chúng ta có thể sử dụng mà khơng phải lo lắng về phí bản quyền
hay thời hạn sử dụng.........................................................................3
Các thử nghiệm sau đó có thể được chạy trên các trình duyệt web
hiện đại nhất.......................................................................................3
Selenium hỗ trợ chạy trên nhiều OS khác nhau, Selenium triển khai
trên nền tảng Windows, Linux và Mac...............................................3
Nó cho phép recording, editting and debugging tests.......................3
Kiểm thử có thể được exported ở hầu hết các ngơn ngữ ví dụ:
HTML, Java, .Net, perl, ruby, ….........................................................3


Selenium có sự hỗ trợ của một số nhà cung cấp trình duyệt lớn hỗ
trợ.......................................................................................................3
1.3 Cài đặt và sử dụng Selenium Webdriver......................................4

Những lệnh cơ bản...........................................................................7
Một số câu lệnh hay được sử dụng trong Selenium WebDriver:......7
driver.getUrl(); : mở một trang web mới trong trình duyệt hiện tại.....8
driver.getTitle(); : lấy tiêu đề của trang web hiện tại..........................8
driver.getCurrentUrl(); : lấy Url của trang hiện tại đã được tải lên
trình duyệt..........................................................................................8
driver.getPageSource(); : lấy source của trang được tải cuối cùng.. 8
driver.close(); : đóng cửa sổ hiện tại của trình duyệt.........................8
driver.quit(); : thốt khỏi trình duyệt và tất cả các cửa sổ đã mở......8
driver.navigate().refresh(); : làm mới trình duyệt...............................8
driver.findElement(By.id(“”)); : Tìm item được set id..........................8
pageLoadTimeout(); : set thời gian load Timeout cho điều khiển
javascript............................................................................................8
Một số câu lệnh điều hướng trình duyệt sử dụng.............................8
navigate().forward();..........................................................................8
navigate().back();..............................................................................8
implicitlyWait(); : để chờ các cảnh báo..............................................8
Apache POI cung cấp cho bạn các interface Workbook, Sheet, Row,
Cell... và các class thể hiện (implementation) tương ứng là
HSSFWorkbook, HSSFSheet, HSSFRow, HSSFCell........................8
Chương 2. GIỚI THIỆU PHẦN MỀM QUẢN LÍ NHÀ HÀNG................9
2.1 Yêu cầu đề tài.............................................................................9
2.2 Phân tích thiết kế hệ thống........................................................10
2.2.1 Đặc tả hệ thống...................................................................10
2.2.2 Thiết kế hệ thống.................................................................11
Chương 3. KIỂM THỬ PHẦN MỀM QUẢN LÍ NHÀ HÀNG................19
3.1 Lập Kế Hoạch Kiểm Thử...........................................................19


3.2 Thực hiện kiểm thử...................................................................21

3.2.1 Chức năng kiểm thử Đăng Nhập (Trần Viết Trưởng)..........21
3.2.2 Chức năng kiểm thử Thêm Nhân Viên (Đoàn Quang Nhật).28
Chương 4. KIỂM THỬ HIỆU NĂNG VỚI CƠNG CỤ JMETER..........36
4.1 Giới thiệu cơng cụ Jmeter.........................................................36
4.2 Cài đặt và sử dụng Jmeter........................................................37
4.3 Một số thành phần cơ bản của Jmeter......................................37
4.4 Kiểm thử hiệu năng phần mềm quản lý nhà hàng luồng đăng
nhập và trang chủ (Trần Viết Trưởng)..............................................38
KẾT LUẬN..........................................................................................43


Chương 1. TÌM HIỂU CƠNG CỤ KIỂM THỬ TỰ ĐỘNG
SELENIUM WEBDRIVER
1.1 Tóm tắt lịch sử
Selenium là một cơng cụ kiểm thử phần mềm tự động, được phát triển bởi
ThoughtWorks từ năm 2004 với tên ban đầu là JavaScriptTestRunner. Đến năm
2007, tác giả Jason Huggins rời ThoughtWorks và gia nhập Selenium team, một
phần của Google và phát triển thành Selenium như hiện nay.
Selenium là một tập hợp mạnh mẽ của các cơng cụ hỗ trợ phát triển nhanh
chóng của các thử nghiệm tự động hóa cho các ứng dụng dựa trên web. Selenium
cung cấp một tập phong phú của các thử nghiệm chức năng đặc biệt hướng đến các
nhu cầu của các thử nghiệm của một ứng dụng web. Các hoạt động này là rất linh
hoạt, cho phép nhiều tùy chọn cho vị trí các thành phần UI và so sánh kết quả thử
nghiệm dự kiến sẽ chống lại hành vi ứng dụng thực tế.
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.
Selenium gồm có các cơng cụ: Selenium IDE, Selenium RC, Selenium

WebDriver, Selenium Grid.
 Selenium IDE
Selenium-IDE là môi trường phát triển tích hợp cho việc xây dựng trường hợp
thử nghiệm Selenium. Nó hoạt động như một trình duyệt Firefox add-on và cung
cấp một giao diện dễ sử dụng để phát triển và chạy trường hợp kiểm thử cá nhân, bộ
kiểm tra tồn bộ. Selenium-IDE có một tính năng ghi lại, sẽ giữ tài khoản của người
sử dụng khi chúng được thực hiện và lưu trữ chúng như là một kịch bản tái sử dụng
để phát sử dụng. Nó cũng có một menu ngữ cảnh (nhấn chuột phải) tích hợp với
trình duyệt Firefox, cho phép người dùng chọn từ một danh sách xác nhận và xác
minh cho các vị trí đã chọn. Selenium-IDE cũng cung cấp chỉnh sửa đầy đủ các
trường hợp thử nghiệm cho chính xác hơn và kiểm soát.
Mặc dù Selenium-IDE chỉ là một Firefox add-on, các kiểm thử tạo ra trong nó
cũng có thể được chạy cho các trình duyệt khác bằng cách sử dụng Selenium-RC và
chỉ định tên của bộ ứng dụng thử nghiệm trên dòng lệnh.

1


 Selenium Webdriver
WebDriver là một khn khổ tự động hóa web cho phép bạn thực hiện các kiểm
thử của mình trên các trình duyệt khác nhau. Nó nằm trong bộ kiểm thử tự động
Selenium. WebDriver được sử dụng trong ngữ cảnh sau:
-

Kiểm thử đa trình duyệt, bao gồm cải thiện chức năng cho trình duyệt mà
khơng được hỗ trợ tốt bởi Selenium RC

-

Điều khiển nhiều frame, nhiều cửa sổ trình duyệt, nhiều popup và alert.


-

Điều hướng trang phức hợp.

-

Điều hướng người dùng nâng cao như kéo-thả (drag-and-drop)

-

AJAX-based UI elements.

 Selenium RC (Remote Control)
Selenium RC là dự án Selenium chính trong một thời gian dài trước khi
Selenium WebDriver (Selenium 3.9) ra đời. Giờ đây Selenium RC hầu như không
được sử dụng vì WebDriver cung cấp nhiều tính tăng mạnh mẽ hơn. Tuy nhiên bạn
vẫn có thể tiếp tục phát triển các script sử dụng RC.
Selenium RC cho phép các nhà phát triển tự động hóa kiểm tra sử dụng một
ngơn ngữ lập trình cho tính linh hoạt tối đa và mở rộng trong việc phát triển logic
thử nghiệm. Ví dụ, nếu trình ứng dụng trả về một tập kết quả của việc kiểm tra, và
nếu chương trình thử nghiệm tự động cần chạy thử nghiệm trên mỗi phần tử trong
tập hợp kết quả, hỗ trợ lặp đi lặp lại các ngôn ngữ lập trình có thể được sử dụng để
chuyển đổi thông qua việc tập hợp kết quả, kêu gọi Selenium lệnh chạy thử nghiệm
trên mỗi mục.
Khả năng sử dụng Selenium RC với một ngơn ngữ lập trình bậc cao để phát
triển các trường hợp thử nghiệm cũng cho phép thử nghiệm tự động được tích hợp
với một dự án xây dựng môi trường tự động.
Selenium RC cho phép chúng ta viết các kiểm thử giao diện của ứng dụng Web
tự động với sự giúp đỡ của các ngôn ngữ lập trình như Java, C#, Perl, Python, PHP

để tạo ra các ca kiểm thử phức tạp hơn như đọc và viết các tập tin, truy vấn cơ sở dữ
liệu và gửi mail kết quả kiểm thử. Khả năng sử dụng Selenium RC với một ngơn
ngữ lập trình bậc cao để phát triển các trường hợp thử nghiệm cũng cho phép thử
nghiệm tự động được tích hợp với một dự án xây dựng môi trường tự động.
 Selenium Grid

2


Selenium Grid cho phép người dùng thực thi kiểm thử song song trên nhiều máy
tính khác nhau với nhiều trình duyệt khác nhau.
Selenium Grid cho phép thực thi kiểm thử với chế độ phân tán, sử dụng chung
một code base. Do đó, hard code khơng cần thiết phải có mặt trên tất cả các máy
được sử dụng để thực thi kiểm thử.
Selenium Grid bao gồm 2 thành phần chính là Hub và Nodes:
-

Hub: có thể hiểu là máy chủ server, chứa hard code và là nơi gửi lệnh
điều khiển các máy khác trong mơ hình thực thi kiểm thử. Hub chỉ có thể
được set up duy nhất trên một máy tính.

-

Nodes: là các Selenium instances được kết nối vào Hub để thực thi các
kịch bản kiểm thử. Có thể có nhiều Nodes trong một mơ hình Grid. Các
Nodes có thể được set up trên nhiều máy tính với nhiều trình duyệt khác
nhau.

Selenium WebDriver là sự kế thừa của Selenium RC để gửi các lệnh trực tiếp tới
trình duyệt và xuất ra các kết quả. Selenium WebDriver cho phép chúng ta sử dụng

một trong số các ngơn ngữ lập trình như HTML, Java, .Net, Perl, Ruby… để tạo
kịch bản test (Test Case) kết hợp với sử dụng các điều kiện, vòng lặp… khiến cho
test script trở nên chính xác hơn. Selenium WebDriver được phát triển tốt hơn để hỗ
trợ cho các trang web động (Những trang web mà phần tử trong nó có thể thay đổi
ngay cả khi trang đó khơng được tải lại) Mục đích của WebDriver là hỗ trợ cho các
vấn đề về kiểm thử web-app hiện nay.

1.2 Đặc điểm
 Selenium là một cơng cụ mã nguồn mở: Vì là mã nguồn mở nên chúng ta có
thể sử dụng mà khơng phải lo lắng về phí bản quyền hay thời hạn sử dụng.
 Các thử nghiệm sau đó có thể được chạy trên các trình duyệt web hiện đại
nhất.
 Selenium hỗ trợ chạy trên nhiều OS khác nhau, Selenium triển khai trên nền
tảng Windows, Linux và Mac.
 Nó cho phép recording, editting and debugging tests.
 Kiểm thử có thể được exported ở hầu hết các ngơn ngữ ví dụ: HTML,
Java, .Net, perl, ruby, …
 Selenium có sự hỗ trợ của một số nhà cung cấp trình duyệt lớn hỗ trợ.

3


 Selenium hỗ trợ nhiều ngơn ngữ lập trình C#, Java, Python, PHP, Selenium
cịn có thể kết hợp với một số công cụ kiểm thử khác như Junit, Bromien,
Nunit…

1.3 Cài đặt và sử dụng Selenium Webdriver
 Download và cài đặt Java Development Kit (JDK)

Hình 1.1 Download java development kit (JDK) tại trang oracle.com


 Download và cài đặt Neatbean IDE

Hình 1.2 Download neatbean IDE tại trang netbeans.org

 Download selenium

4


Hình 1.3 Download selenium tại trang seleniumhq.org

 Download và cài đặt Selenium Java Client Driver

Hình 1.4 Selenium Java Client Driver

 Download Chrome Driver

5


Hình 1.5 Download Chrome Driver

 Cài Đặt
Sau khi đã download các thành phần chúng ta bắt đầu tiến hành cài đặt như sau:
+ Mở neatbean đã được tải về
+ Tạo một dự án mới: File -> New Project. Sau đó đặt tên dự án là “MyTest”.
Nhấp chuột phải vào Source Packages chọn new Packages đặt tên là “Libs”
dùng để chứa các thư viện hỗ trợ.
+ Nhấp chuột phải vào folder Libraries chọn Add JAR/Folder và tìm đến thư

mục vừ tải về sau đó chọn tất cả các thư mục .jar và thêm vào packages
Libs.

+ Tạo một class trong dự án vừa tạo để chạy thử

6


+ Sau khi chạy kết quả ta sẽ được như hình sau

 Những lệnh cơ bản
 Một số câu lệnh hay được sử dụng trong Selenium WebDriver:

7


-

driver.getUrl(); : mở một trang web mới trong trình duyệt hiện
tại.

-

driver.getTitle(); : lấy tiêu đề của trang web hiện tại.

-

driver.getCurrentUrl(); : lấy Url của trang hiện tại đã được tải lên
trình duyệt.


-

driver.getPageSource(); : lấy source của trang được tải cuối cùng.

-

driver.close();

: đóng cửa sổ hiện tại của trình duyệt.

-

driver.quit();
mở.

: thốt khỏi trình duyệt và tất cả các cửa sổ đã

-

driver.navigate().refresh(); : làm mới trình duyệt.

-

driver.findElement(By.id(“”)); : Tìm item được set id.

-

pageLoadTimeout(); : set thời gian load Timeout cho điều khiển
javascript.


 Một số câu lệnh điều hướng trình duyệt sử dụng
-

navigate().forward();

-

navigate().back();

-

implicitlyWait(); : để chờ các cảnh báo.

 Thư Viện Hỗ Trợ - Apache POI
Apache POI hỗ trợ bạn làm việc với các định dạng của Microsoft, các
class của nó thường có tiếp đầu ngữ HSSF, XSSF, HPSF, ... Nhìn vào tiếp
đầu ngữ của một class bạn có thể biết được class đó hỗ trợ loại định dạng
nào.
Apache POI cung cấp cho bạn các interface Workbook, Sheet, Row,
Cell... và các class thể hiện (implementation) tương ứng là HSSFWorkbook,
HSSFSheet, HSSFRow, HSSFCell...

8


Chương 2. GIỚI THIỆU PHẦN MỀM QUẢN LÍ NHÀ HÀNG
2.1 Yêu cầu đề tài
 Tên đề tài
Kiểm thử tự động với cơng cụ selenium webdriver với phần mềm quản lí nhà hàng
 Lý do chọn đề tài

Ngày nay công nghệ thơng tin đanng ngày càng phát triển nhanh chóng, kéo
theo đó là hệ thống mạng và các phần mềm cũng gia tang cả về số lượng và chất
lượng. Nhưng cũng từ đó đã nảy sinh nhiều vấn đề về lỗi hỏng hóc phần mềm
khơng đáng có gây ra các ảnh hưởng nghiêm trọng đến xã hội, kinh tế… Những lỗi
này có thể do tự bản thân phần mềm bị hỏng do không được kiểm duyệt kỹ lưỡng
trước khi đưa cho người dùng hay cũng có thể do có người cố tình phá hoại nhằm
đánh cắp thơng tin. Do đó u cầu đặt ra là cần có cơng tác kiểm thử phần mềm thật
kỹ lưỡng để ngăn chặn các lỗi hay hỏng hóc cịn tiềm tàng bên trong phần mềm mà
ta chưa kịp nhận ra. Tuy nhiên vì phần mềm ngày càng lớn, hàng nghìn module, có
thể do một cơng ty hàng nghìn người phát triển ra vì vậy để kiểm thử được một
phần mềm lớn như vậy sẽ tốn rất nhiều công sức và thời gian nếu làm thủ công,
chưa kể đến chất lượng kiểm thử sẽ không cao. Theo nhiều tính tốn thì cơng việc
kiểm thử đóng vai trị hết sức quan trọng trong quy trình phát triển phần mềm, nó
đóng góp tới khoảng 40% tổng tồn bộ chi phí sản xuất phần mềm. Vì vậy cần có
các hệ thống kiểm thử tự động cho phép thực hiện công việc một cách nhanh chóng
và chính xác nhất có thể. Và đó là lí do em chọn đề tài này để nghiên cứu, tìm hiểu.
 Mục đích nghiên cứu
-

Tìm hiểu về kiểm thử phần mềm

-

Tìm hiểu về kiểm thử tự động và công cụ kiểm thử tự động selenium
webdriver

-

Xây dựng được kịch bản kiểm thử cho một số test case của phần mềm


 Bài toán kiểm thử
-

Phần mềm kiểm thử : Phần mềm quản lí nhà hàng

-

Mơ tả: Phần mềm quản lý nhà hàng là phần mềm được xây dựng cho việc
quản lý nhà hàng, quán ăn, quán caffe...

9


2.2 Phân tích thiết kế hệ thống
2.2.1 Đặc tả hệ thống
 Giới thiệu phần mềm
Website quản lý nhà hàng là một website được xây dựng cho việc quản lý
nhà hàng, chuỗi nhà hàng, quán ăn, quán caffe... website giải quyết được những
yêu cầu từ phía nhà quản lý trong việc kiểm soát các hoạt động bán hàng cho
đến việc quản lý từng bộ phận, doanh thu… website giúp người dùng dễ dàng
thao tác với các nghiệp vụ của nhà hàng như quản lí bán hàng, quản lí hóa đơn
qua đó giúp nhà hàng tối ưu hóa trong việc phục vụ của mình.
 Các tác nhân của hệ thống
-

Chủ cửa hàng quản lí tất cả các chức năng và quản lí tất cả các tài khoản
khác trong hệ thống

-


Người quản lí quản lí tất cả các chức năng nhưng khơng quản lí được tài
khoản

-

Nhân viên chỉ có thể sử dụng được một số chức năng của hệ thống

 Các yêu cầu chức năng của hệ thống
-

Xem tổng quan: Cho phép các tác nhân nắm được tổng quan hoạt động
của cửa hàng như doanh thu, hóa đơn, bàn ...

-

Quản lí bán hàng: Cho phép người quản lí chi tiết từng bàn như thêm bớt
món ăn, thanh tốn…

-

Quản lí hóa đơn : Cho phép các tác nhân kiểm sốt các hóa đơn đã thanh
tốn như tìm kiếm, xem chi tiết, xóa …

-

Quản lí sản phẩm: Cho phép các tác nhân quản lí thơng tin về các món ăn

-

Quản lí tài khoản: Cho phép tác nhân quản lí các tài khoản của người

dùng.

-

Thống kê: Cho phép các tác nhân nắm được tình hoạt động của hệ thống,
việc thống kê được thự hiện theo tháng, theo quý, theo năm hoặc theo tác
nhân yêu cầu.

 Các yêu cầu phi chức năng của hệ thống
-

Giao diện thân thiện, dễ sử dụng

-

Hiệu năng hoạt động tốt

-

Phù hợp với mọi trình duyệt

10


2.2.2 Thiết kế hệ thống
 Biểu đồ use case chính

Hình 2.1 Biểu đồ use case chính của hệ thống

 Mơ tả chi tiết use case


11


 Mơ tả chi tiết use case Đăng Nhập
• Mơ tả use case Đăng Nhập
Use case này cho phép người dùng đăng nhập vào hệ thống với quyền
sử dụng của mình
• Luồng sự kiện
o Luồn cơ bản
1. Use case này bắt đầu khi người dùng kích vào nút đăng
nhập trên giao diện của hệ thống. Hệ thống sau khi xác
nhận dữ liệu sẽ kiểm tra dữ liệu trong bảng USER từ CSDL
và hiển thị chức năng tương ứng với quyền của người dùng.
Use case kết thúc.
o Luồng rẽ nhánh
1. Nhập không đúng định dạng: Nếu người dùng nhập thông
tin sai định dạng yêu cầu hệ thống sẽ thông báo lỗi cho
người dùng biết. Người dùng có thể nhập lại hoặc thoát
khỏi hệ thống
2. Sai tên tài khoản hoặc mật khẩu: Nếu người dùng nhập sai
tên tài khoản hoặc mật khẩu hệ thống sẽ thông báo lỗi cho
người dùng. Người dùng có thể nhập lại hoặc thốt hỏi hệ
thống.
3. Khơng kết nối được với CSDL: Tại bất kỳ thời điểm nào
trong q trình thực hiện use case nếu khơng kết nối được
với CSDL thì hệ thống sẽ hiển thị thơng báo lỗi và use case
kết thúc.
• Các yêu cầu đặc biệt
Use case này được dùng để phân quyền người dùng

• Tiền điều kiện
Người dùng cần có một tài khoản trong hệ thống
• Hậu điều kiện
Nếu đăng nhập thành cơng người dùng sẽ truy nhập được vào hệ thống và
sử dụng các chức năng với quyền của mình

 Mơ tả chi tiết use case Xem Tổng Quan

12


• Mô tả use case Xem Tổng Quan
Use case này cho phép người dùng nắm được các thông tin hoạt động của
hệ thống trong ngày hơm đó như doanh thu, hóa đơn, các hoạt động …
• Luồng sự kiện
o Luồng cơ bản
1. Use case này bắt đầu khi người dùng kích vào nút “Tổng
Quan” trên giao diện. Hệ thống sẽ truy xuất CSDL và hiển
thị lên màn hình các thơng tin như doanh thu, số hóa đơn,
số bàn cịn trống, món ăn bán chạy … Use case kết thúc
o Luồng rẽ nhánh
1. Không kết nối được với CSDL: Tại bất kỳ thời điểm nào
trong quá trình thực hiện use case nếu khơng kết nối được
với CSDL thì hệ thống sẽ hiển thị thơng báo lỗi và use case
kết thúc.
• Các u cầu đặc biệt
Khơng có
• Tiền điều kiện
Người dùng phải đăng nhập vào hệ thống
• Hậu điều kiện

Khơng có
 Mơ tả chi tiết use case Quản Lí Bán Hàng
• Mơ tả use case Quản Lí Bán Hàng
Use case này cho phép người dùng quản lí thơng tin của các bàn bao gồm
các tác vụ mở bàn, thêm món, bớt món, sửa số lượng món, đổi/gộp bàn,
thanh tốn.
• Luồng sự kiện
o Luồng cơ bản
1. Use case này bắt đầu khi người dùng kích vào nút Quản Lí
Bán Hàng trên giao diện. Hệ thống sẽ truy xuất CSDL và
hiển thị dữ liệu lên giao diện.
2. Mở bàn : Người dùng muốn đưa một bàn vào trạng thái mở
-

Người dùng click vào bàn cần mở

13


-

Hệ thống sẽ hiển thị lên giao diện thông tin chi tiết của
bàn đó đồng thời thay đổi trạng thái của bàn đó từ đóng
sang mở trong CSDL

3. Thêm món ăn: Người dùng muốn thêm món ăn cho một bàn
-

Trong giao diện chi tiết của bàn đó người dùng click
vào món ăn muốn thêm.


-

Hệ thống sẽ truy vấn CSDL lấy thơng tin của món ăn đó
và hiển thị lên trong mục danh sách order của bàn đó.

4. Bớt món ăn: Người dùng muốn xóa một món ăn khỏi order
-

Trong danh sách order của bàn đó người dùng click vào
biểu tượng thùng rác.

-

Hệ thống sẽ xóa món ăn đó khỏi danh sách order

5. Sửa số lượng món ăn: Người dùng muốn sửa số lượng món
ăn trong danh sách order
-

Trong danh sách order người dùng nhập số lượng món
ăn theo yêu cầu nhưng số lượng tối đa nhỏ hơn hoặc
bằng 5.

-

Hệ thống sẽ tự động tính tiền lại cập nhật số lượng của
order đó

6. Đổi gộp bàn: Người dùng muốn đổi hoặc gộp bàn

-

Trong giao diện chi tiết của bàn người dùng click vào
bàn muốn chuyển từ danh sách các bàn.

-

Hệ thống sẽ chuyển hết dữ liệu từ bàn cũ sang bàn mới
đồng thời hiển thị lên giao diện của bàn vừa được
chuyển sang.

7. Thanh toán: Người dùng muốn kết thúc phiên làm việc của
một bàn
-

Trong giao diện chi tiết của bàn đó người dùng click
vào nút thanh tốn

-

Hệ thống u cầu xác nhận

-

Sau khi xác nhận hệ thống sẽ lưu lại thơng tin của bàn
đó vào bảng HOADON sau đó chuyển trạng thái của
bàn đó từ mở thành đóng.

o Luồng rẽ nhánh


14


1. Tại bước 5 trong luồng cơ bản nếu người dùng nhập số
lượng món ăn vượt quá 5 hệ thống sẽ reset số lượng món ăn
về 5.
2. Khơng kết nối được với CSDL: Tại bất kỳ thời điểm nào
trong quá trình thực hiện use case nếu khơng kết nối được
với CSDL thì hệ thống sẽ hiển thị thơng báo lỗi và use case
kết thúc.
• Các u cầu đặc biệt
Khơng có
• Tiền điều kiện
Người dùng cần đăng nhập vào hệ thống
• Hậu điều kiện
Các thông tin của các bàn sẽ được cập nhật

 Mơ tả chi tiết use case Quản Lí Hóa Đơn
• Mơ tả use case Quản Lí Hóa Đơn
Use case này cho phép người dùng quản lí các hóa đơn đã bán ra
• Luồng sự kiện
o Luồng cơ bản
1. Use case này bắt đầu khi người dùng kích vào nút Quản Lí
Hóa Đơn trên giao diện. Hệ thống sẽ truy xuất CSDL và
hiển thị dữ liệu lên giao diện.
2. Tìm kiếm: Người dùng muốn tìm kiếm một hóa đơn
-

Người dùng nhập mã hóa đơn vào ơ tìm kiếm


-

Hệ thống sẽ truy xuất dữ liệu và hiển thị kết quả tìm
kiếm lên giao diện

3. Lọc: Người dùng muốn lọc hóa đơn theo ngày
-

Người dùng chọn ngày muốn lọc

-

Hệ thống sẽ truy suất dữ liệu và hiển thị lên giao diện
những hóa đơn của ngày đó

4. Xem chi tiết: Người dùng muốn xem chi tiết một hóa đơn

15


-

Người dùng kích vào biểu tượng con mắt ở hóa đơn đó

-

Hệ thống sẽ truy xuất dữ liệu và hiển thị lên chi tiết nội
dung của hóa đơn đó.

5. Xóa: Người dùng muốn xóa bỏ một hóa đơn

-

Người dùng kích vào biểu tượng thùng rác của hóa đơn
đó

-

Hệ thống sẽ xóa dữ liệu của hóa đơn đó khỏi cở sở dữ
liệu

o Luồng rẽ nhánh
1. Không kết nối được với CSDL: Tại bất kỳ thời điểm nào
trong quá trình thực hiện use case nếu khơng kết nối được
với CSDL thì hệ thống sẽ hiển thị thông báo lỗi và use case
kết thúc.
• Các yêu cầu đặc biệt
Use case này chỉ dành cho admin và administrator
• Tiền điều kiện
Người dùng phải đăng nhập được vào hệ thống
• Hậu điều kiện
Khơng có

 Mơ tả chi tiết use case Quản Lí Sản Phẩm
• Mơ tả use case Quản Lí Món Ăn
Use case này cho phép người dùng thêm, xóa, sửa, tìm kiếm thơng tin
một sản phẩm
• Luồng sự kiện

16



o Luồng cơ bản
1. Use case này bắt đầu khi người dùng kích vào nút Quản Lí
Món Ăn trên giao diện. Hệ thống sẽ truy xuất cơ sở dữ liệu
và hiển thị lên giao diện.
2. Tìm kiếm: Người dùng muốn tìm kiếm một món ăn
-

Người dùng nhập nội dung muốn tìm vào ơ tìm kiếm

-

Hệ thống sẽ truy xuất dữ liệu và hiển thị kết quả lên
giao diện

3. Thêm sản phẩm: Người dùng muốn thêm một món ăn mới
-

Người dùng kích vào nút thêm

-

Hệ thống hiển thị giao diện để người dùng nhập dữ liệu

-

Người dùng nhập dữ liệu muốn thêm

-


Hê thống kiểm tra dữ liệu và lưu lại vào CSDL

4. Sửa sản phẩm: Người dùng muốn sửa thông tin một món ăn
-

Người dùng chọn món ăn muốn sửa

-

Hệ thống hiển thị lên giao diện thơng tin món ăn

-

Người dùng nhập dữ liệu

-

Hệ thống kiếm tra dữ liệu và lưu lại vào CSDL

5. Xóa sản phẩm: Người dùng muốn xóa một món ăn
-

Người dùng click vào biểu tượng thùng rác món ăn
muốn xóa

-

Hệ thống sẽ xóa dữ liệu của món ăn đó khỏi CSDL

o Luồng rẽ nhánh

1. Khơng kết nối được với CSDL: Tại bất kỳ thời điểm nào
trong quá trình thực hiện use case nếu khơng kết nối được
với CSDL thì hệ thống sẽ hiển thị thơng báo lỗi và use case
kết thúc.
• Các yêu cầu đặc biệt
Use case này chỉ dành cho admin và administrator
• Tiền điều kiện
Người dùng phải đăng nhập vào hệ thống

17


×