1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

51 15 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 51
Dung lượng 2,77 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 1

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

Trang 3

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é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 4

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 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 5

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

Trang 6

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

Trang 7

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(); : 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 8

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

Trang 9

Chươ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 11

Selenium 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 13

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

Trang 14

Hì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 17

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

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 19

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

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 23

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à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 25

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ê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

Ngày đăng: 17/08/2022, 14:35

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w