Trường Loại Kiểu dữ liệu Độ dài tổi đa Bắt buộc Mô tả Tên bác sĩ Input Varchar 255 Không Tên bác sĩ Số điện Mật khẩu Input Varchar 20 Không Mật khẩu Thêm người dùng người dùng ● Điều
TỔNG QUAN BÀI TOÁN
Giới thiệu đề tài
Với sự phát triển liên tục của công nghệ máy tính và mạng điện tử, công nghệ thông tin đã đạt được nhiều thành tựu vượt bậc Internet, một sản phẩm có giá trị to lớn, ngày càng trở thành công cụ thiết yếu, đóng vai trò quan trọng trong việc truyền tải và trao đổi thông tin toàn cầu.
Internet đã giúp chúng ta thực hiện công việc nhanh chóng và tiết kiệm chi phí, thúc đẩy sự phát triển của thương mại điện tử và chính phủ điện tử toàn cầu, từ đó cải thiện văn hóa và chất lượng cuộc sống Việc ứng dụng công nghệ thông tin trong đời sống xã hội đã giảm bớt sức lao động và nâng cao hiệu quả học tập Chúng tôi đã chọn đề tài “Xây dựng ứng dụng web quản lý dịch vụ sức khỏe”, tập trung vào quản lý chương trình đào tạo, thông tin sinh viên, lớp học và lập kế hoạch đào tạo Đồ án sẽ phân tích và thiết kế hệ thống quản lý cho phòng khám nha khoa.
Đặc tả yêu cầu
1.2.1 Các luồng nghiệp vụ chính
1 Truy cập vào trang web Nha khoa Hải Quyền
2 Ấn vào phần Đặt hẹn để tiến hành đặt lịch hẹn
3 Khách hàng điền thông tin của mình
4 Ấn button Đặt lịch hẹn để xác nhận đặt lịch
1 Truy cập website đăng nhập vào trang chủ admin
2 Tại trang chủ admin có thể quản lý được thông tin dịch vụ, bác sĩ, lịch hẹn, thuốc, đơn hàng, khách hàng, tài khoản
3 Quản lý bao gồm các chức năng thêm, sửa, xóa
4 Thống kê hoạt động của cả hệ thống: Tổng số đơn hàng, tổng doanh thu bán thuốc, tổng doanh thu tháng, tổng doanh thu theo dịch vụ, sản phẩm bán chạy nhất, lượng truy cập theo thành phố, tổng khách hàng đặt dịch vụ, thiết bị truy cập website
1.2.2 Các màn hình chức năng chính
Danh sách thông tin bác sĩ
Tên bác sĩ Label Tên bác sĩ Công tác Label Nơi công tác Tốt nghiệp Label Nơi tốt nghiệp Chuyên
Thông tin Label Thông tin Ảnh Label ảnh
Danh sách thông tin tài khoản
Họ và tên Label Họ tên
Số điện thoại Label Số điện thoại Mật khẩu Label Mật khẩu
Danh sách thông tin thuốc
Tên thuốc Label Tên thuốc
Mã vạch Label Mã vạch thuốc
Số lượng Label Số lượng kho Công ty sản xuất Label Tên cty sxuat
Mô tả Label Mô tả thuốc
Danh sách thông tin dịch vụ
Tên dịch vụ Label Tên dịch vụ
Gía Label Giá dịch vụ Đơn vị Label Đơn vị
Bảo hành Label Thời gian bảo hành
PHÂN TÍCH VÀ THIẾT KẾ TEST
Unit test case
Unit Test là một kỹ thuật kiểm thử phần mềm tập trung vào việc kiểm tra từng đơn vị hoặc thành phần riêng lẻ của mã nguồn Mục đích chính của Unit Test là xác minh tính chính xác và hiệu suất của từng đoạn code, đảm bảo chúng hoạt động đúng như mong đợi trước khi được tích hợp vào hệ thống tổng thể.
Cô lập đơn vị: Xác định và cô lập các đơn vị code cần kiểm tra, thường là các hàm, phương thức, lớp hoặc module.
Viết test case: Viết các trường hợp kiểm thử (test case) để mô phỏng các tình huống đầu vào và đầu ra khác nhau cho đơn vị code.
Chạy test case: Sử dụng framework Unit Test để chạy các test case đã viết.
Phân tích kết quả: Phân tích kết quả test để xác định lỗi hoặc sai sót trong code.
Sửa lỗi: Sửa lỗi được phát hiện trong quá trình Unit Test và chạy lại test case để đảm bảo code hoạt động chính xác.
Các phương pháp Unit Test phổ biến:
Kiểm thử hộp đen là phương pháp kiểm tra phần mềm tập trung vào việc phân tích đầu vào và đầu ra của mã nguồn mà không cần xem xét cấu trúc bên trong Phương pháp này giúp đảm bảo rằng phần mềm hoạt động đúng theo yêu cầu mà không bị ảnh hưởng bởi cách thức triển khai.
Kiểm thử hộp trắng là phương pháp kiểm tra tập trung vào cấu trúc bên trong của mã nguồn, nhằm đảm bảo rằng mọi phần của mã đều được thực thi đầy đủ.
Kiểm thử dựa trên hành vi tập trung vào việc xác minh hành vi của mã nguồn, đảm bảo rằng nó hoạt động đúng như mong đợi.
Kỹ thuật Unit Testing được chia thành ba loại chính: Kiểm thử hộp đen (Black box testing) tập trung vào việc kiểm tra giao diện người dùng cùng với đầu vào và đầu ra; Kiểm thử hộp trắng (Whitebox testing) chuyên kiểm tra hành vi chức năng của ứng dụng phần mềm; và Kiểm thử hộp xám (Gray box testing) được sử dụng để thực hiện các bộ kiểm thử, phương pháp kiểm thử, trường hợp kiểm thử và phân tích rủi ro.
Code coverage là một phương pháp đánh giá mức độ thực thi của mã nguồn trong chương trình khi một bộ kiểm thử cụ thể được chạy Nó đảm bảo rằng quá trình kiểm thử thực sự kiểm tra mã nguồn của bạn Các kỹ thuật code coverage thường được áp dụng trong Unit Test bao gồm.
Statement Coverage, hay còn gọi là độ bao phủ câu lệnh, đảm bảo rằng mọi dòng lệnh trong mã nguồn đã được kiểm tra ít nhất một lần Công thức tính Statement Coverage là: (số lượng lệnh code được kiểm tra / tổng số lệnh code) x 100.
Decision coverage refers to the evaluation of each conditional statement, such as if, case, and do-while, where each decision yields two outcomes: TRUE and FALSE To achieve 100% coverage, it is essential to test both outcomes at least once The formula for calculating decision coverage emphasizes the importance of thorough testing in software development.
Decision coverage = (Tổng số decision outcome được test / Tổng số decision outcome) x 100.
Path Coverage: đảm bảo tất cả các đường có thể xảy ra đi từ điểm đầu đến điểm cuối được kiểm tra hết.
Branch Coverage: được sử dụng để bao phủ tất cả các nhánh của đồ thi luồng điều khiển
Kỹ thuật kiểm tra hộp trắng đảm bảo rằng tất cả các kết quả có thể xảy ra (đúng hoặc sai) của mỗi điều kiện tại điểm quyết định đều được thực thi ít nhất một lần Điều này giúp xác minh rằng mọi nhánh của mỗi điểm quyết định đều được kiểm tra đầy đủ.
Condition Coverage là tỷ lệ phần trăm của các điều kiện đầu ra đã được kiểm tra bởi bộ kiểm thử Để đạt được 100% điều kiện bao phủ, mỗi điều kiện đơn lẻ trong mỗi câu quyết định phải được thực thi với cả hai giá trị True và False.
Finite State Machine Coverage đề cập đến các khái niệm về trạng thái và lịch sử hoạt động của hệ thống Nó bao gồm một tập hợp hữu hạn các trạng thái mà hệ thống có thể đạt được, cùng với cách mà hệ thống chuyển đổi giữa các trạng thái đó Hệ thống xử lý dữ liệu đầu vào khác nhau tùy thuộc vào trạng thái hiện tại, và sự thay đổi trạng thái dựa trên input được gọi là transition.
2.1.2 Danh sách các test case
- Unit test case đăng nhập:
- Unit test case đặt lịch:
- Unit test case thêm thuốc:
- Unit test case thêm khách hàng
Integration test case
Integration Test Case là phương pháp thiết kế các test case cho kiểm thử tích hợp, nhằm kiểm tra sự tương tác và giao tiếp giữa các module hoặc thành phần khác nhau trong hệ thống sau khi tích hợp.
Xác định các module cần kiểm thử: Xác định các module cần được tích hợp và kiểm tra tương tác giữa chúng.
Phân tích giao diện giữa các module là việc hiểu rõ cách thức giao tiếp giữa chúng, bao gồm dữ liệu được trao đổi, định dạng dữ liệu và các phương thức giao tiếp Việc này giúp tối ưu hóa khả năng tương tác và đảm bảo tính hiệu quả trong quá trình làm việc của các module.
Thiết kế test case: Viết các test case để kiểm tra các khía cạnh sau:
Giao tiếp dữ liệu: Đảm bảo dữ liệu được trao đổi chính xác và đầy đủ giữa các module.
Luồng dữ liệu: Xác minh luồng dữ liệu giữa các module hoạt động đúng như mong muốn.
Xử lý lỗi: Kiểm tra cách thức xử lý lỗi khi xảy ra lỗi trong quá trình giao tiếp giữa các module.
Hiệu suất: Đánh giá hiệu suất của hệ thống sau khi tích hợp.
Chạy test case: Sử dụng công cụ kiểm thử để chạy các test case đã viết.
Phân tích kết quả: Phân tích kết quả test để xác định lỗi hoặc sai sót trong quá trình tích hợp.
Sửa lỗi: Sửa lỗi được phát hiện trong quá trình Integration Test và chạy lại test case để đảm bảo hệ thống hoạt động chính xác.
Các phương pháp thiết kế Integration Test Case:
Kiểm thử top-down: Bắt đầu từ giao diện người dùng và kiểm tra từng module theo thứ tự từ trên xuống dưới.
Kiểm thử bottom-up: Bắt đầu từ các module cấp thấp nhất và kiểm tra từng module theo thứ tự từ dưới lên trên.
Kiểm thử sandwich: Kết hợp cả phương pháp top-down và bottom-up.
Kiểm thử top-down: Bắt đầu từ giao diện người dùng và kiểm tra từng module theo thứ tự từ trên xuống dưới.
Kiểm thử bottom-up: Bắt đầu từ các module cấp thấp nhất và kiểm tra từng module theo thứ tự từ dưới lên trên.
Kiểm thử sandwich: Kết hợp cả phương pháp top-down và bottom-up.
Kiểm thử giao diện là quá trình quan trọng nhằm đảm bảo sự tương tác giữa các module hoạt động trơn tru, tập trung vào việc kiểm tra dữ liệu được trao đổi, định dạng dữ liệu và các phương thức giao tiếp.
Kiểm thử luồng dữ liệu: Xác minh luồng dữ liệu giữa các module hoạt động đúng như mong muốn.
Kiểm thử xử lý lỗi: Kiểm tra cách thức xử lý lỗi khi xảy ra lỗi trong quá trình giao tiếp giữa các module.
Kiểm thử hiệu suất: Đánh giá hiệu suất của hệ thống sau khi tích hợp.
2.2.2 Danh sách các test case Đặt lịch hẹn
Trường Loại Kiểu dữ liệu Độ dài tổi đa Bắt buộc Mô tả
Anh/Chị Input enum Nam, Nữ,
Họ tên Input Varchar 30 Không Nơi công tác
Số điện thoại Input Int 50 Không Trường tốt nghiệp
Ngày sinh Input Int 500 Không Chuyên ngành Địa chỉ Input Varchar 255 Không Thông tin
Lịch hẹn Input Date Không ảnh của bác sĩ
Ghi chú Input Date Không Hạn sử dụng thuốc Đặt lịch hẹn button Nút xác nhận đặt lịch
- Không được để trống input
- Số điện thoại chỉ gồm số, không phải chữ và ký tự đặc biệt Đăng nhập
Trường Loại Kiểu dữ liệu Độ dài tổi đa
Input int 11 Không SĐT admin
Mật khẩu Input Varchar 20 Không Mật khẩu admin Đăng nhập Button Nút đăng nhập
- Không được để trống input
- Số điện thoại chỉ gồm số, không phải chữ và ký tự đặc biệt
- Mật khẩu max 20 ký tự, phải trùng với mật khẩu đăng kýThêm tài khoản
Trường Loại Kiểu dữ liệu Độ dài tổi đa Bắt buộc Mô tả
Tên bác sĩ Input Varchar 255 Không Tên bác sĩ
Số điện thoại Input int 11 Không Sđt
Mật khẩu Input Varchar 20 Không Mật khẩu
Thêm người dùng button Nút thêm người dùng
- Không được để trống input
- Số điện thoại chỉ gồm số, không phải chữ và ký tự đặc biệt
- Mật khẩu min 5, max 20 ký tự
Trường Loại Kiểu dữ liệu Độ dài tổi đa Bắt buộc Mô tả
Tên bác sĩ Input Varchar 40 Không Tên bác sĩ
Công tác Input Varchar 500 Không Nơi công tác
Tốt nghiệp Input Varchar 500 Không Trường tốt nghiệp Chuyên
Ngành Input Varchar 500 Không Chuyên ngành
Thông tin Input Varchar 500 Không Thông tin
Tải ảnh lên Button Nút tải ảnh
Thêm vào danh sách button Nút thêm
- Không được để trống input
Trường Loại Kiểu dữ liệu Độ dài tổi đa
Tên khách hàng Input Varchar 40 Không Tên khách hàng
Công tác Input Varchar 500 Không Nơi công tác
Thông tin Input Varchar 500 Không Thông tin
Tải ảnh lên Button Nút tải ảnh
Thêm vào danh sách button Nút thêm
● Không được để trống input
Trường Loại Kiểu dữ liệu Độ dài tổi đa Bắt buộc Mô tả
Tên thuốc Input Varchar 255 Không Tên bác sĩ
Mã vạch Input Varchar 30 Không Nơi công tác
Giá bán Input Int 50 Không Trường tốt nghiệp
Số lượng Input Int 500 Không Chuyên ngành
Công ty sản Input Varchar 255 Không Thông tin xuất
Ngày sản xuất Input Date Không ảnh của bác sĩ
Input Date Không Hạn sử dụng thuốc
Mô tả Input Text 500 Không Mô tả
Tải ảnh lên Button Nút tải ảnh
Thêm vào danh sách button Nút Thêm
- Không được để trống input
- Gía bán và số lượng chỉ gồm số, không phải chữ và ký tự đặc biệt
Trường Loại Kiểu dữ liệu Độ dài tổi đa Bắt buộc Mô tả
Tên dịch vụ Input Varchar 40 Không Tên dịch vụ
Gía Input Varchar 500 Không Gía dịch vụ Đơn vị Input Varchar 500 Không Đơn vị
Bảo hành Input Varchar 500 Không Thời gian bảo hành Thêm thông tin button Nút thêm
- Không được để trống input
- Gía và đơn vị chỉ gồm số, không phải chữ và ký tự đặc biệt.
System test case
Kiểm thử hộp đen: Kiểm thử hệ thống dựa trên giao diện và chức năng mà không cần quan tâm đến cấu trúc bên trong.
Kiểm thử hộp trắng: Kiểm thử hệ thống dựa trên cấu trúc bên trong, bao gồm code và dữ liệu.
Kiểm thử dựa trên rủi ro: Tập trung vào việc kiểm thử các phần có nguy cơ cao gặp lỗi hoặc gặp vấn đề.
Kiểm thử dựa trên mô hình: Sử dụng mô hình hệ thống để thiết kế các trường hợp thử nghiệm.
Phân tích giá trị biên: Kiểm thử các giá trị đầu vào và đầu ra nằm ở ranh giới của các trường hợp hợp lệ và không hợp lệ.
Phân vùng tương đương: Chia dữ liệu đầu vào thành các nhóm tương đương và chỉ cần kiểm thử một vài trường hợp trong mỗi nhóm.
Bảng quyết định: Sử dụng bảng quyết định để xác định các trường hợp thử nghiệm cần thiết.
Sơ đồ luồng dữ liệu là công cụ quan trọng giúp xác định các đường dẫn dữ liệu trong hệ thống Việc sử dụng sơ đồ này cho phép thiết kế các trường hợp thử nghiệm hiệu quả nhằm kiểm tra và đảm bảo tính chính xác của các đường dẫn dữ liệu.
Kiểm thử ngẫu nhiên: Sử dụng công cụ để tạo ra các trường hợp thử nghiệm ngẫu nhiên.
2.3.2 Danh sách các test case
- Đặc tả thêm lịch hẹn
Họ tên Nguyễn Hồng Phượng
Ngày sinh 12/09/2003 Địa chỉ Hải Phòng
Use case Name Thêm Lịch hẹn
Description Cho phép khách hàng đặt lịch hẹn Lịch hẹn mới sẽ được thêm vào hệ thống.
Yêu cầu thông tin như giới tính, họ tên, số điện thoại, ngày sinh, địa chỉ, lịch hẹn, ghi chú
Trigger Khách hàng ấn nút Thêm lịch hẹn để ghi lên hệ thống
Preconditions Hệ thống đã được khởi chạy và hoạt động bình thường
Basic Flow 1 Khách hàng truy cập vào trang Đặt lịch hẹn
2 Hệ thống hiển thị mẫu biểu để điền thông tin cho lịch hẹn mới
3 Khách hàng nhập các thông tin cần thiết như: giới tính họ tên số điện thoại ngày sinh địa chỉ lịch hẹn24 ghi chú
4 Khách hàng xem sau đó xác nhận và ấn nút Đặt lịch.
5 Hệ thống lưu trữ Lịch hẹn mới vào cơ sở dữ liệu.
Postconditions Lịch hẹn mới đã được thêm vào hệ thống
Exception Flows Nếu báo lỗi khi lưu thông tin, hệ thống sẽ thông báo trên trang web và yêu cầu nhập lại hoặc kiểm tra lại thông tin
Nếu thông tin bị thiếu, hệ thống sẽ yêu khách hàng nhập đủ thông tin cần thiết
Công ty sản xuất Thành Phát
Mô tả Thuốc đau đầu
Use case Name Thêm Thuốc
Description Cho phép quản trị viên thêm thuốc mới
Các loại thuốc mới sẽ được bổ sung vào hệ thống, bao gồm thông tin cần thiết như tên thuốc, mã vạch, giá bán, số lượng, công ty sản xuất, ngày sản xuất, mô tả và hình ảnh.
Trigger Khách hàng ấn nút Thêm lịch hẹn để ghi lên hệ thống
Preconditions Hệ thống đã được khởi chạy và hoạt động bình thường
Basic Flow 1 Khách hàng truy cập vào trang Đặt lịch hẹn
2 Hệ thống hiển thị mẫu biểu để điền thông tin cho lịch hẹn mới
3 Khách hàng nhập các thông tin cần thiết như: tên thuốc mã vạch giá bán số lượng công ty sản xuất ngày sản xuất mô tả hình
4 Quản trị viên xem sau đó xác nhận và ấn nút Thêm mới.
5 Hệ thống lưu trữ Thuốc mới vào cơ sở dữ liệu.
Postconditions Thuốc mới đã được thêm vào hệ thống
Exception Flows Nếu báo lỗi khi lưu thông tin, hệ thống sẽ thông báo trên trang web và yêu cầu nhập lại hoặc kiểm tra lại thông tin
Nếu thông tin bị thiếu, hệ thống sẽ yêu Quản trị viên nhập đủ thông tin cần thiết
- Đặc tả thêm tài khoản
Use case Name Thêm Tài khoản
Description Cho phép quản trị viên thêm tài khoản mới
Tài khoản mới sẽ được thêm vào hệ thống. Yêu cầu thông tin như họ và tên, số điện thoại, mật khẩu
Trigger Khách hàng ấn nút Thêm tài khoản để ghi lên hệ thống
Preconditions Hệ thống đã được khởi chạy và hoạt động bình thường
Basic Flow 1 Quản trị viên truy cập vào trang Quản trị tài khoản
2 Hệ thống hiển thị mẫu biểu để điền thông tin cho tài khoản mới
3 Quản trị viên nhập các thông tin cần thiết như: họ và tên số điện thoại mật khẩu
4 Quản trị viên xem sau đó xác nhận và ấn nút Thêm mới.
5 Hệ thống lưu trữ Tài khoản mới vào cơ sở dữ liệu.
Postconditions Tài khoản mới đã được thêm vào hệ thống
Exception Flows Nếu báo lỗi khi lưu thông tin, hệ thống sẽ thông báo trên trang web và yêu cầu nhập lại hoặc kiểm tra lại thông tin
Nếu thông tin bị thiếu, hệ thống sẽ yêu Quản trị viên nhập đủ thông tin cần thiết
- Đặc tả thêm dịch vụ
Tên dịch vụ Niềng răng
Use case Name Thêm Dịch vụ
Description Cho phép quản trị viên thêm dịch vụ mới
Dịch vụ mới sẽ được thêm vào hệ thống. Yêu cầu thông tin như tên dịch vụ, giá, đơn vị, bảo hành
Trigger Quản trị viên ấn nút Thêm dịch vụ để ghi lên hệ thống
Preconditions Hệ thống đã được khởi chạy và hoạt động bình thường
Basic Flow 1 Khách hàng truy cập vào trang Đặt lịch hẹn
2 Hệ thống hiển thị mẫu biểu để điền thông tin cho lịch hẹn mới
3 Quản trị viên nhập các thông tin cần thiết như: tên dịch vụ giá đơn vị bảo hành
4 Quản trị viên xem sau đó xác nhận và ấn nút Thêm mới.
5 Hệ thống lưu trữ Dịch vụ mới vào cơ sở dữ liệu.
Postconditions Dịch vụ mới đã được thêm vào hệ thống
Exception Flows Nếu báo lỗi khi lưu thông tin, hệ thống sẽ thông báo trên trang web và yêu cầu nhập lại hoặc kiểm tra lại thông tin
Nếu thông tin bị thiếu, hệ thống sẽ yêu Quản trị viên nhập đủ thông tin cần thiết
- Đặc tả thêm bác sĩ
Thông tin Bác sĩ hàm mặt Ảnh C:/xxxx
Use case Name Thêm Bác sĩ
Quản trị viên có thể dễ dàng thêm bác sĩ mới vào hệ thống, yêu cầu cung cấp các thông tin cần thiết như tên bác sĩ, công tác, nơi tốt nghiệp, chuyên ngành và thông tin kèm theo ảnh.
Trigger Khách hàng ấn nút Bác sĩ mới để ghi lên hệ thống
Preconditions Hệ thống đã được khởi chạy và hoạt động bình thường
Basic Flow 1 Quản trị viên truy cập vào trang Đặt lịch hẹn2 Hệ thống hiển thị mẫu biểu để điền thông tin cho lịch hẹn mới
3 Quản trị viên nhập các thông tin cần thiết như:
Tên bác sĩ Công tác Tốt nghiệp Chuyên ngành Thông tin ảnh 4 Quản trị viên xem sau đó xác nhận và ấn nút Thêm mới.
5 Hệ thống lưu trữ Thông tin bác sĩ mới vào cơ sở dữ liệu.
Postconditions Thông tin bác sĩ mới đã được thêm vào hệ thống
Exception Flows Nếu báo lỗi khi lưu thông tin, hệ thống sẽ thông báo trên trang web và yêu cầu nhập lại hoặc kiểm tra lại thông tin
Nếu thông tin bị thiếu, hệ thống sẽ yêu Quản trị viên nhập đủ thông tin cần thiết
THỰC THI TEST VÀ BÁO CÁO KẾT QUẢ TEST
Các kết quả test
Sđt chứa ký tự đặc biệt và chữ + mk: Pass
Sđt đúng+ mk đúng: Pass
Not input+ null input: Fail
Kết quả chạy phần Trang chủ.