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
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á KHOA: CÔNG NGHỆ THÔNG TIN
BÀI TẬP LỚN HỌC PHẦN: KIỂM THỬ PHẦN MỀM
TÊN ĐỀ TÀI: QUẢN LÝ NHA KHOA
Trang 2NHÓM: 10 TÊN ĐỀ TÀI: QUẢN LÝ NHA KHOA
Trang 3Mục Lục
CHƯƠNG 1: TỔNG QUAN BÀI TOÁN 3
1.1 Giới thiệu đề tài 3
1.2 Đặc tả yêu cầu 3
1.2.1 Các luồng nghiệp vụ chính 3
1.2.2 Các màn hình chức năng chính 4
CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ TEST 7
2.1 Unit test case 7
2.1.1 Phương pháp, kỹ thuật 7
2.1.2 Danh sách các test case 8
2.2 Integration test case 12
2.2.1 Phương pháp, kỹ thuật 12
2.2.2 Danh sách các test case 13
2.3 System test case 22
2.3.1 Phương pháp, kỹ thuật 22
2.3.2 Danh sách các test case 23
CHƯƠNG 3 : THỰC THI TEST VÀ BÁO CÁO KẾT QUẢ TEST 29
3.1 Các kết quả test 29
3.2 Danh sách các lỗi 37
CHƯƠNG 4 : AUTOMATION TEST 40
4.1 Công cụ Sử dung 40
1 Giới thiệu chung về công cụ Selenium IDE 40
2 Cài đặt và sử dụng công cụ 40
4.2 Báo cáo, đánh giá kiểm tra kết quả 44
1 Thệ thống ổn định 44
2 Kết quả đạt được: 45
3 Mode 45
TÀI LIỆUTHAM KHẢO 45
3
Trang 4CHƯƠNG 1: TỔNG QUAN BÀI TOÁN
1.1 Giới thiệu đề tài
Cùng với sự phát triển không ngừng về kỹ thuật máy tính và mạng điện tử, công nghệ thông tin cũng được những công nghệ có đẳng cấp cao và lần lượt chinh phục hết đỉnh cao này đến đỉnh cao khác Mạng Internet là một trong những sản phẩm có giá trị hết sức lớn lao và ngày càng trở nên một công cụ không thể thiếu, là nền tảng chính cho sự truyền tải, trao đổi thông tin trên toàn cầu
Bằng internet, chúng ta đã thực hiện được nhiều công việc với tốc độ nhanh hơn và chi phí thấp hơn nhiều so với cách thức truyền thống Chính điều này, đã thúc đẩy sự khai sinh và phát triển của thương mại điện tử và chính phủ điện tử trên khắp thế giới, làm biến đổi đáng kể bộ mặt văn hóa, nâng cao chất lượng cuộc sống con người
Ứng dụng công nghệ thông tin vào thực tiễn đời sống xã hội giảm thiểu được sức lao động của con người, tăng hiệu học tập của con người Các phần mềm quản
lý cũng được đặc biệt quan tâm Chúng em đã lựa chọn đề tài “Xây dựng ứng dụng web quản lý dịch vụ sức khỏe” Nội dung của đồ án đi vào việc quản lý chương trình đào tạo,thông tin sinh viên, lớp và lập kế hoạch đào tạo Chúng em sẽ phân tích thiết kế hệ thống quản lý phòng khám nha khoa.
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
4
Trang 5Danh sách thông tin bác sĩ
Trường Loại Mô tả 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
Ngành Label Chuyên ngành Thông tin Label Thông tin
Sửa button Nút sửa Xóa button Nút xóa Danh sách thông tin tài khoản
Trường Loại Mô tả
5
Trang 6Họ 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 Sửa button Nút sửa Xóa button Nút xóa
Danh sách thông tin thuốc
Trường Loại Mô tả Tên thuốc Label Tên thuốc
Mã vạch Label Mã vạch thuốc Gía bán Label Giá
Số lượng Label Số lượng kho Công ty sản
xuất Label Tên cty sxuat Ngày sản
xuất
Label Ngày sản xuất
Mô tả Label Mô tả thuốc
Sửa button Nút sửa Xóa button Nút xóa Danh sách thông tin dịch vụ
6
Trang 7Trường Loại Mô tả
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 Sửa button Nút sửa
Xóa button Nút xóa
7
Trang 8CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ TEST
2.1 Unit test case
2.1.1 Phương pháp, kỹ thuật
Unit Test là một kỹ thuật kiểm thử phần mềm được áp dụng cho các đơn vị (unit) hoặc thành phần riêng lẻ của phần mềm Mục tiêu của Unit Test là xác minh tính chính xác và hoạt động hiệuquả của từng đơn vị code, đảm bảo chúng hoạt động đúng như mong muốn trước khi tích hợp vào
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
- Phương pháp:
Các phương pháp Unit Test phổ biến:
Kiểm thử hộp đen: Kiểm tra hộp đen tập trung vào việc kiểm tra đầu vào và đầu ra của đơn vị code 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ộp trắng tập trung vào việc kiểm tra cấu trúc bên trong của đơn vị code, đảm bảo tất cả các phần code đều được thực thi
Kiểm thử dựa trên hành vi: Kiểm thử dựa trên hành vi tập trung vào việc kiểm tra hành vi của đơn vị code, đảm bảo nó hoạt động đúng như mong muốn
- Kỹ thuật:
Kỹ thuật Unit Testing được phân loại thành 3 phần gồm: Black box testing (kiểm thử hộp đen) với chức năng kiểm tra giao diện người dùng cùng đầu ra và đầu vào Whitebox testing (Kiểm thử hộp trắng) gồm kiếm tra hành vi chức năng của ứng dụng phần mềm Còn Gray box te sting (kiểm thử hộp xám) dùng để thực hiện: test suites, test methods, test cases và thực hiện phântích rủi ro
Code coverage là phương pháp đánh giá được dùng để mô tả mức độ mà source code của mộtchương trình đã được thực thi khi một bộ test cụ thể chạy Nói cách khác thì nó đảm bảo tằng kiểm thử của bạn đang thực sự test Codes của bạn Những kỹ thuật code coverage được sử dụng trong Unit Test gồm:
Statement Coverage hay còn gọi là bao đảm bảo các dòng lệnh trong mã nguồn đã được kiểm tra ít nhất một lần trong Statement coverage = (số lượng lệnh code được kiểm tra / tổng số lệnh code) x100
Decision Coverage: với mỗi lệnh if, case, do – while,… được coi là một decision Nó bao gồm 2 đầu ra là TRUE hoặc FALSE được gọi là decision outcome Để đảm bảo 100% coverage thì mỗi đầu ra TRUE FALSE phải được test ít nhất 1 lần Với công thức tính là
8
Trang 9Decision 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 đượckiể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
Nó gồm tất cả kết quả có thể xảy ra (đúng hoặc sai) của mỗi điều kiện của điểm quyết định ít 1 lần Đây là một ký thuật kiểm tra hộp trắng đảm bảo mọi nhánh của mỗi điểm quyết định phải được thực thi
Condition Coverage: Gồm tỷ lệ của điều kiện đầu ra đã được thực thi bởi bộ kiểm thử 100% điều kiện bao phủ (condition coverage) yêu cầu mỗi điều kiện đơn riêng lẻ trong mỗi câu quyết định (decision statement) phải được thực thi như là True hay False
Finite State Machine Coverage: Đưa ra các khái niệm về trạng thái và lịch sử hoạt động của nó Bao gồm hữu hạn các trạng thái của hệ thống, lưu trữ cách hệ thống đi đến trạng thái đó như thế nào Có cách xử lý dữ liệu đầu vào (input) khác nhau dựa trên trạng thái hiện tại Có thể thay đổi trạng thái dựa trên input và sự thay đổi này 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:
9
Trang 10- Unit test case thêm thuốc:
10
Trang 11- Unit test case thêm khách hàng
11
Trang 132.2 Integration test case
2.2.1 Phương pháp, kỹ thuật
Integration Test Case là phương pháp thiết kế các trường hợp kiểm thử (test case) cho việc kiểm thử tích hợp (integration testing) Integration testing tập trung vào việc 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 của hệ thống sau khi chúng được tíchhợp lại với nhau
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
- Phương pháp:
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
- Kỹ thuật:
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
13
Trang 14 Kiểm thử giao diện: Tập trung vào việc kiểm tra các giao diện giữa các module, 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
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ữ,
14
Trang 15Ghi chú Input Date Không Hạn sử dụng
thuốc Đặt lịch
hẹn
đặt lịch
● Điều kiện ràng buộc :
- 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
Bắt buộc Mô tả
Số điện
thoại
Mật khẩu Input Varchar 20 Không Mật khẩu
admin
15
Trang 16● Điều kiện ràng buộc :
- 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
16
Trang 17Trườ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 kiện ràng buộc :
- 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ự
17
Trang 18+) Thêm bác sĩ
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
Thêm vào
danh sách
18
Trang 19● Điều kiện ràng buộc :
- Không được để trống input
19
Trang 20+) Thêm khách hàng
Trường Loại Kiểu dữ
liệu
Độ dài tổi đa
Bắt buộc
Mô tả
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
20
Trang 21Thông tin Input Varchar 500 Không Thông tin
Thêm vào danh
sách
● Điều kiện ràng buộc :
● Không được để trống input
+) Thêm thuốc
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
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
21
Trang 22Thêm vào
danh sách
● Điều kiện ràng buộc :
- 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
22
Trang 23Thêm dịch vụ
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
● Điều kiện ràng buộc :
- 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.
2.3 System test case
Trang 24 Sơ đồ luồng dữ liệu: Sử dụng sơ đồ luồng dữ liệu để xác định các đường dẫn dữ liệu trong
hệ thống và thiết kế các trường hợp thử nghiệm để kiểm tra các đường dẫn này
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
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ú
Trang 25ghi 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
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ạihoặ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
Thuốc mới sẽ được thêm vào hệ thống.Yêu cầu thông tin như tên thuốc, mã vạch, giá bán, số lượng, công ty sản xuất, ngày sảnxuất, mô tả, hình
số lượngcông ty sản xuất25
Trang 26ngà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
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ạihoặc kiểm tra lại thông tin
Nếu thông tin bị thiếu, hệ thống sẽ yêu Quảntrị viên nhập đủ thông tin cần thiết
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
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
26
Trang 27Alternative Flows N/A
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ạihoặc kiểm tra lại thông tin
Nếu thông tin bị thiếu, hệ thống sẽ yêu Quảntrị viên nhập đủ thông tin cần thiết
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
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
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ạihoặc kiểm tra lại thông tin
27
Trang 28Nếu thông tin bị thiếu, hệ thống sẽ yêu Quảntrị viên nhập đủ thông tin cần thiết
sĩ mới sẽ được thêm vào hệ thống.Yêu cầu thông tin 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
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ạihoặc kiểm tra lại thông tin
28
Trang 29Nếu thông tin bị thiếu, hệ thống sẽ yêu Quảntrị viên nhập đủ thông tin cần thiết
Notes
29
Trang 30CHƯƠNG 3 : THỰC THI TEST VÀ BÁO CÁO KẾT QUẢ TEST
3.1 Các kết quả test
Sdt+ mk null : Pass
30
Trang 31Null+ null: Pass
Sđt chứa ký tự đặc biệt và chữ + mk: Pass
31
Trang 32Sđt null+ mk: Pass
Sđt đúng+ mk đúng: Pass
Not input+ null input: Fail
32
Trang 33Fail
33
Trang 34Trang chủ:
34
Trang 35Null+ null: Pass
Bảng giá
Trang tạo đơn hàng.
35
Trang 36Trang quản trị.
Null+ null: Pass
36
Trang 37Kết quả chạy phần Trang chủ.
Trang thông tin thuốc.
Null+ null: Pass
Trang Thêm khách hàng.
37
Trang 383.2 Danh sách các lỗi
Trang quản trị.
Trang thêm khách hàng
38
Trang 39Trang chủ:
Trang Đặt hẹn.
39
Trang 4040