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 Hoàng Tú Lớp ĐH KTPM3 K11 Nhóm 13 Sinh viên thực h.
Trang 1TRƯỜ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
Trang 3Lờ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éotheo đó 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ềmkhông đáng có gây ra các ảnh hưởng nghiêm trọng đến xã hội, kinh tế… Những lỗinà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ưỡngtrướ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ữngnă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ưỡngnhằ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à tachư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ốnrấ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 yê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 toà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 ĐạiHọ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 luôn luôn 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è đã độngviên, đóng góp ý kiến và giúp đỡ trong quá trình học tập, nghiên cứu và hoàn thànhbáo cáo này
Chúng em xin chân thành cảm ơn!
Trang 4Chươ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 toà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 1 WebDriver là một khuôn 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
Trang 5trong 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
Trang 6Selenium 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
Trang 7Selenium 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(); : thoá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
Trang 83.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
Trang 9Chương 1 TÌM HIỂU CÔNG CỤ KIỂM THỬ TỰ ĐỘNG
Selenium là một mã nguồn mở và là một công cụ kiểm thử phần mềm tự độnghóa để thử nghiệm các ứng dụng web Nó có khả năng hoạt động trên nhiều cáctrì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ụngdựa trên web hiệu quả hơn
Selenium gồm có các công cụ: Selenium IDE, Selenium RC, SeleniumWebDriver, 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ợpthử nghiệm Selenium Nó hoạt động như một trình duyệt Firefox add-on và cungcấ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 toà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ớitrì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ácminh cho các vị trí đã chọn Selenium-IDE cũng cung cấp chỉnh sửa đầy đủ cáctrườ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
Trang 10 Selenium Webdriver
WebDriver là một khuôn khổ tự động hóa web cho phép bạn thực hiện các kiểmthử của mình trên các trình duyệt khác nhau Nó nằm trong bộ kiểm thử tự độngSelenium 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 khiSelenium 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ạnvẫ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ộtngô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 logicthử 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ử trongtậ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ệmtrê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áttriển các trường hợp thử nghiệm cũng cho phép thử nghiệm tự động được tích hợpvớ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ônngữ 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
Trang 11Selenium Grid cho phép người dùng thực thi kiểm thử song song trên nhiều máytí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 chungmộ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áckịch bản kiểm thử Có thể có nhiều Nodes trong một mô hình Grid CácNodes có thể được set up trên nhiều máy tính với nhiều trình duyệt khácnhau
Selenium WebDriver là sự kế thừa của Selenium RC để gửi các lệnh trực tiếp tớitrình duyệt và xuất ra các kết quả Selenium WebDriver cho phép chúng ta sử dụngmột trong số các ngôn ngữ lập trình như HTML, Java, Net, Perl, Ruby… để tạokị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 chotest 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 đổingay cả khi trang đó không được tải lại) Mục đích của WebDriver là hỗ trợ cho cácvấn đề về kiểm thử web-app hiện nay
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ợ
Trang 12 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
Trang 13Hì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
Trang 14Hình 1.5 Download Chrome Driver
+ 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 packagesLibs
+ Tạo một class trong dự án vừa tạo để chạy thử
Trang 15+ 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:
Trang 16- driver.getUrl(); : mở một trang web mới trong trình duyệt hiệntạ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êntrì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(); : thoát khỏi trình duyệt và tất cả các cửa sổ đãmở
- 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ểnjavascript
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ácclass 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ạngnà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
Trang 17Chương 2 GIỚI THIỆU PHẦN MỀM QUẢN LÍ NHÀ HÀNG
2.1 Yêu cầu đề tài
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ộtphầ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 toán thì công việckiể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 toà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 seleniumwebdriver
- 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ệcquản lý nhà hàng, quán ăn, quán caffe
Trang 18- 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 toán…
- Quản lí hóa đơn : Cho phép các tác nhân kiểm soát các hóa đơn đã thanh toá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
Trang 192.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
Trang 20 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
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ôngtin sai định dạng yêu cầu hệ thống sẽ thông báo lỗi chongười dùng biết Người dùng có thể nhập lại hoặc thoátkhỏ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 saitên tài khoản hoặc mật khẩu hệ thống sẽ thông báo lỗi chongười dùng Người dùng có thể nhập lại hoặc thoá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àotrong quá trình thực hiện use case nếu không kết nối đượcvới CSDL thì hệ thống sẽ hiển thị thông báo lỗi và use casekế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
Trang 21• 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ổngQuan” trên giao diện Hệ thống sẽ truy xuất CSDL và hiểnthị 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àotrong quá trình thực hiện use case nếu không kết nối đượcvới CSDL thì hệ thống sẽ hiển thị thông báo lỗi và use casekết thúc
• Các yê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ồmcá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 toá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ở
Trang 22- Hệ thống sẽ hiển thị lên giao diện thông tin chi tiết củabàn đó đồng thời thay đổi trạng thái của bàn đó từ đóngsang 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 clickvà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àobiể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ặcbằng 5
- Hệ thống sẽ tự động tính tiền lại cập nhật số lượng củaorder đó
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àobà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 đượcchuyển sang
7 Thanh toán: Người dùng muốn kết thúc phiên làm việc củamột bàn
- Trong giao diện chi tiết của bàn đó người dùng clickvào nút thanh toán
- Hệ thống yê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ủabàn đó từ mở thành đóng
o Luồng rẽ nhánh
Trang 231 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àotrong quá trình thực hiện use case nếu không kết nối đượcvới CSDL thì hệ thống sẽ hiển thị thông báo lỗi và use casekết thúc
• Các yê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ìmkiế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ệnnhữ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
Trang 24- 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ộidung 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àotrong quá trình thực hiện use case nếu không kết nối đượcvới CSDL thì hệ thống sẽ hiển thị thông báo lỗi và use casekế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 tinmột sản phẩm
• Luồng sự kiện
Trang 25o 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êngiao 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 ănmuố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àotrong quá trình thực hiện use case nếu không kết nối đượcvới CSDL thì hệ thống sẽ hiển thị thông báo lỗi và use casekế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