Bối cảnh và vấn đề nghiên cứu
Trường Đại học Quảng Nam là cơ sở đào tạo tiếp nhận hàng ngàn sinh viên đến từ nhiều tỉnh thành trên cả nước cùng các lưu học sinh nước ngoài. Nhằm giải quyết nhu cầu ăn ở, sinh hoạt phức tạp và tạo môi trường giáo dục an toàn, ổn định để sinh viên an tâm học tập, nhà trường đã đầu tư xây dựng khu ký túc xá sinh viên ngay trong khuôn viên trường. Tuy nhiên, công tác quản lý một số lượng lớn sinh viên nội trú trong thời gian dài vẫn được thực hiện chủ yếu bằng phương pháp thủ công dựa trên sổ sách và văn bản giấy. Cách thức quản lý này bộc lộ nhiều bất cập như: việc lưu trữ cồng kềnh, khâu tra cứu và cập nhật dữ liệu tốn nhiều thời gian, dễ xảy ra sai sót hoặc thất lạc thông tin.
Khảo sát thực tiễn tại đơn vị cho thấy 4 vấn đề hạn chế cơ bản trong hệ thống quản lý hiện hành:
- Thiếu phương tiện và công cụ quản lý hiện đại có tính hệ thống.
- Chu trình xử lý nghiệp vụ kéo dài, đặc biệt là khâu tiếp nhận, thẩm định và xét duyệt hồ sơ đăng ký ở ký túc xá của sinh viên.
- Tốn kém nhiều nhân lực và chi phí trong công tác kiểm soát, theo dõi phòng ở và tìm kiếm thông tin.
- Xử lý thông tin hoàn toàn thủ công; ứng dụng công nghệ thông tin chưa phát huy được vai trò hỗ trợ quản trị rõ rệt.
Song song với nhu cầu tin học hóa quy trình quản lý, tác giả cũng chỉ ra thực trạng phát triển phần mềm hiện nay: khi số lượng ứng dụng gia tăng, các lỗi hỏng hóc phần mềm tiềm ẩn nếu không được kiểm thử cẩn thận sẽ gây ra thiệt hại về kinh tế và nguy cơ mất an toàn thông tin cá nhân. Do đó, việc xây dựng phần mềm quản lý phải đi đôi với công tác kiểm thử phần mềm chặt chẽ.
Từ bối cảnh trên, đề tài xác định các mục tiêu nghiên cứu cụ thể:
- Xây dựng một phần mềm ứng dụng nhằm phục vụ công tác quản lý ký túc xá tại Trường Đại học Quảng Nam.
- Ứng dụng các kiến thức về kiểm thử phần mềm để tiến hành đánh giá chất lượng và sự chính xác của phần mềm đã xây dựng.
Đối tượng và phạm vi nghiên cứu của đề tài bao gồm:
- Đối tượng nghiên cứu: Phần mềm quản lý ký túc xá và phương pháp thiết kế trường hợp kiểm thử (testcase) để đánh giá phần mềm.
- Phạm vi nghiên cứu:
- Về nghiệp vụ: Tin học hóa các quy trình quản lý nội trú tại Trường Đại học Quảng Nam (đăng ký lưu trú, quản lý sinh viên, phòng ở, tài sản, các khoản thu phí, tìm kiếm và thống kê báo cáo).
- Về kỹ thuật: Áp dụng phương pháp thiết kế testcase theo mức đơn vị (Unit Testing) để đánh giá các thành phần chức năng của phần mềm theo kỹ thuật kiểm thử hộp đen (Black box testing).
- Về thời gian: Đề tài được triển khai nghiên cứu từ tháng 12/2016 đến tháng 4/2017 và hoàn thiện báo cáo tốt nghiệp vào tháng 4/2018.
Cơ sở lý thuyết và phương pháp
Đề tài sử dụng khung lý thuyết về phân tích thiết kế hệ thống hướng đối tượng (OOAD) thông qua ngôn ngữ mô hình hóa thống nhất (UML) kết hợp với nền tảng lý thuyết kiểm thử phần mềm tiêu chuẩn.
Khung lý thuyết và khái niệm kiểm thử phần mềm
Khóa luận hệ thống hóa các khái niệm, cấp độ và nguyên tắc cốt lõi trong kiểm thử phần mềm:
- Khái niệm: Kiểm thử phần mềm là quy trình thi hành phần mềm với ý định tìm kiếm các lỗi theo tinh thần "hủy diệt", đồng thời chứng minh sản phẩm phần mềm phù hợp với đặc tả yêu cầu chức năng với chi phí và nỗ lực tối thiểu.
- Các mức độ kiểm thử:
- Kiểm thử đơn vị (Unit Testing): Kiểm tra sự hiện thực chi tiết của từng đơn vị nhỏ nhất trong mã nguồn (hàm, lớp).
- Kiểm thử module (Module Testing): Kiểm tra các dịch vụ của từng module có phù hợp với đặc tả riêng của module đó.
- Kiểm thử tích hợp (Integration Testing): Kiểm tra sự tương tác và đảm bảo sự liên kết giữa các phân hệ theo thiết kế.
- Kiểm thử hệ thống (System Testing): Đánh giá các yêu cầu phi chức năng như hiệu suất, an toàn, bảo mật và khả năng chịu tải.
- Kiểm thử độ chấp nhận của người dùng (Acceptance Testing): Kiểm tra mức độ chấp thuận sử dụng của người dùng cuối.
- Kiểm thử hồi quy (Regression Testing): Thực hiện sau mỗi lần hiệu chỉnh hoặc nâng cấp nhằm đảm bảo các chức năng cũ không bị ảnh hưởng.
- Cấu trúc trường hợp kiểm thử (Testcase): Mỗi testcase được chuẩn hóa theo bộ 3 thành phần thông tin:
{Tập dữ liệu đầu vào (Input), Trạng thái thành phần phần mềm (tạo bởi giá trị tiền tố prefix và hậu tố postfix), Tập kết quả kỳ vọng (Expected Output)}.
- Phương pháp kiểm thử: Kiểm thử hộp đen (Black box testing - tiếp cận theo góc nhìn hành vi người dùng, không can thiệp cấu trúc mã) và Kiểm thử hộp trắng (White box testing - tiếp cận từ cấu trúc mã nguồn, độ bao phủ lệnh, nhánh và điều kiện).
| Mức độ kiểm thử |
Kỹ thuật kiểm thử áp dụng |
| Unit Testing |
White Box, Black Box |
| Integration Testing |
Black Box, White Box |
| Functional Testing |
Black Box |
| System Testing |
Black Box |
| Acceptance Testing |
Black Box |
- Nguyên tắc và giới hạn kiểm thử: Khóa luận nhấn mạnh nguyên tắc kiểm thử độc lập (lập trình viên không nên tự kiểm thử module do mình viết), kiểm thử không thể vét cạn toàn bộ các trường hợp, thiết kế testcase phải bao phủ cả dữ liệu hợp lệ và không hợp lệ, đồng thời tránh việc sử dụng các testcase dùng một lần rồi bỏ ("throwaway").
Phương pháp nghiên cứu
Tác giả kết hợp đồng thời 4 phương pháp nghiên cứu:
- Phương pháp nghiên cứu tự luận: Thu thập, tổng hợp tài liệu chuyên ngành về phân tích hướng đối tượng và kỹ thuật kiểm thử phần mềm qua sách báo và các diễn đàn công nghệ.
- Phương pháp tổng kết kinh nghiệm: Đúc kết kinh nghiệm làm việc thực tế từ quá trình thực tập tại các doanh nghiệp phần mềm.
- Phương pháp lấy ý kiến chuyên gia: Tiếp thu ý kiến đóng góp chuyên môn từ cán bộ hướng dẫn và các giảng viên bộ môn Công nghệ thông tin để chuẩn hóa quy trình và thiết kế.
- Phương pháp khảo sát, phân tích và thiết kế hệ thống: Trực tiếp khảo sát thực địa tại ký túc xá Trường Đại học Quảng Nam, mô hình hóa nghiệp vụ bằng các biểu đồ UML.
Thiết kế và triển khai
Hệ thống quản lý ký túc xá được phân tích và thiết kế theo kiến trúc hướng đối tượng, phân tách rõ ràng thành ba nhóm lớp: Lớp thực thể (Entity), Lớp biên (Boundary) và Lớp điều khiển (Control).
Phân tích kiến trúc và cấu trúc dữ liệu
- Tác nhân hệ thống (Actors):
- Cán bộ quản lý ký túc xá: Đăng nhập hệ thống, duyệt hồ sơ đăng ký, sắp xếp phòng ở, chuyển phòng, quản lý thông tin sinh viên, quản lý tài sản, thu phí nội trú, thu tiền điện nước, tìm kiếm và xuất thống kê báo cáo.
- Sinh viên: Cung cấp thông tin cá nhân, nộp đơn đăng ký ở ký túc xá, thực hiện các thủ tục nội trú và nộp các khoản phí theo quy định.
- Các lớp thực thể (Entity Classes):
TaiKhoan (tenND, matKhau)
SinhVien (maSV, tenSV, ngaySinh, gioiTinh, soDT, diaChi, khoaHoc, TruongPhong, ngayVao, ngayRa)
HoSoDK (maDK, ngayDK, gioDK, tinhTrangDK)
Phong (maPhong, soGiuong, soGiuongTrong)
TaiSan (maTaiSan, tenTaiSan, soLuong)
Khoa (maKhoa, tenKhoa)
Nganh (maNganh, tenNganh)
PhiNoiTru (soTien, hocKy, ngayThu)
PhiDienNuoc (chiSoDienDau, chiSoDienCuoi, chiSoNuocDau, chiSoNuocCuoi, ngayDau, ngayCuoi, soTienDien, soTienNuoc, ngayThu)
- Các lớp biên (Boundary Classes) chính:
I_DN (Đăng nhập), I_SV_DKKTX (Đăng ký KTX), I_QLDKKTX (Quản lý đăng ký), I_TTSV (Thông tin sinh viên), I_QL_QLPhong (Quản lý phòng), I_QL_QLKT (Quản lý khoản thu), I_TKTT (Tìm kiếm thông tin), I_QL_TKBC (Thống kê báo cáo)...
- Các lớp điều khiển (Control Classes):
C_DN, C_SV_DKKTX, QL, C_QL_TTSV, C_QL_QLPhong, C_QL_QLKT, C_QL_TKBC.
Thiết kế hành vi hệ thống
Hệ thống được mô hình hóa hành vi thông qua chuỗi biểu đồ tuần tự, biểu đồ trạng thái và biểu đồ hoạt động:
- Biểu đồ trạng thái: Xây dựng vòng đời trạng thái cho 3 thực thể cốt lõi:
- SinhVien: Trạng thái từ
Dang ky -> Duoc chap nhan / Khong chap nhan -> Cho nop phi noi tru -> Da nop phi noi tru hoặc Huy don dang ky.
- HoSoDK: Trạng thái chuyển đổi từ
Dang ky -> Duoc chap nhan / Khong chap nhan -> Cho sap xep Phong, lam thu tuc -> Cap nhat HSDK.
- Phong: Trạng thái thay đổi tương ứng theo số lượng giường trống:
Phong trong hoan toan <-> Phong con cho <-> Phong day.
- Biểu đồ hoạt động phương thức: Chi tiết hóa luồng xử lý cho các phương thức trọng yếu:
kiemTraTK(tenDN, matKhau), themHSDK(), capNhatHSDK(maDK), chuyenSV(maSV), themSua(maPhong), capNhatTS(maTS), capNhatPhiDN(maPhong), capNhatPhiNT(maSV).
Nội dung chính theo từng chương
Chương 1: Khảo sát hệ thống quản lý ký túc xá trường Đại học Quảng Nam
Chương này tập trung khảo sát hiện trạng cơ sở vật chất, phân khu ký túc xá (khu giáo viên, sinh viên, nhân viên, bảo vệ) và đặc tả chi tiết 5 quy trình nghiệp vụ nội trú:
| Mã quy trình |
Tên quy trình |
Trách nhiệm và hồ sơ liên quan |
| QTQLĐK |
Đăng ký ở ký túc xá |
Cán bộ quản lý tiếp nhận Phiếu đơn đăng ký, giấy báo nhập học; ký hợp đồng nội trú, biên bản bàn giao tài sản, đăng ký tạm trú, thanh lý hợp đồng và lưu trữ hồ sơ. |
| QTQSV |
Quản lý thông tin sinh viên |
Lập bảng tên khu, số phòng, số giường; lập hồ sơ sinh viên theo phòng và lưu trữ theo quy định. |
| QTQLP |
Quản lý thông tin phòng |
Lập danh sách phòng theo khu, số giường từng phòng, danh sách phòng đã có sinh viên và vị trí giường của sinh viên. |
| QTQLKT |
Quản lý các khoản thu |
Tiếp nhận quy định lệ phí, lập báo cáo thu nộp phòng Kế hoạch - Tài chính, lập phiếu thu và quản lý tiền phòng, điện nước. |
| QTQLTK |
Quản lý tìm kiếm – thống kê |
Tiếp nhận yêu cầu tra cứu; thực hiện thống kê danh sách sinh viên nội trú, sinh viên chuyển đi và tổng hợp các khoản thu. |
Các quy định về mặt thời gian được xác lập: thời hạn phản hồi hồ sơ tối đa là 15 ngày; thời hạn hoàn tất thủ tục sau khi thông báo tiếp nhận là 7 ngày; đơn đăng ký có hiệu lực theo từng học kỳ; thông báo trước 1 tháng khi hợp đồng nội trú hết hạn. Phần tiếp theo của chương trình bày toàn diện cơ sở lý thuyết kiểm thử phần mềm, phân loại các cấp độ kiểm thử, cấu trúc testcase và các quan niệm sai lầm cần tránh trong kiểm thử.
Chương 2: Phân tích và thiết kế hệ thống quản lý ký túc xá
Chương 2 mô hình hóa toàn diện hệ thống quản lý ký túc xá bằng phương pháp phân tích hướng đối tượng:
- Thiết lập sơ đồ Use case tổng quát và đặc tả chi tiết 7 Use case: Đăng nhập, Đăng ký ở ký túc xá, Quản lý đăng ký ở ký túc xá, Quản lý Sinh viên, Quản lý Phòng, Quản lý Khoản thu, Tìm kiếm - Thống kê.
- Xây dựng các kịch bản ngoại lệ: xử lý nhập sai mật khẩu quá 3 lần thì khóa phiên; thông báo lỗi khi duyệt hồ sơ đã được phê duyệt từ trước; ngăn chặn hủy bỏ các hồ sơ đã được duyệt hoàn tất.
- Xây dựng mô hình cấu trúc hệ thống gồm biểu đồ lớp thực thể, biểu đồ lớp biên và lớp điều khiển cho từng ca sử dụng.
- Thiết lập hệ thống biểu đồ tuần tự chi tiết cho các ca sử dụng nghiệp vụ (xếp phòng, chuyển phòng, thu phí nội trú, thu tiền điện nước, tra cứu và kết xuất báo cáo thống kê).
- Hoàn thiện mô hình cơ sở dữ liệu quan hệ và mô tả chi tiết các thuộc tính của từng bảng dữ liệu.
Chương 3: Xây dựng phần mềm quản lý ký túc xá
Chương 3 trình bày kết quả hiện thực hóa phần mềm trên môi trường máy tính:
- Thiết lập sơ đồ phân rã chức năng phần mềm và đặc tả các yêu cầu chức năng nghiệp vụ.
- Hiện thực hóa giao diện người dùng đảm bảo tính thân thiện, dễ sử dụng, truy cập dữ liệu nhanh chóng và an toàn.
- Hoàn thiện các phân hệ giao diện chính của chương trình:
- Giao diện Đăng nhập và Quản lý tài khoản đăng nhập.
- Giao diện tiếp nhận Đăng ký ở ký túc xá và Quản lý duyệt/hủy hồ sơ đăng ký.
- Giao diện Quản lý hồ sơ thông tin sinh viên nội trú.
- Giao diện Quản lý phòng ở, bố trí giường và quản lý trang thiết bị tài sản phòng.
- Giao diện Quản lý khoản thu (lập phiếu thu phí nội trú, ghi nhận chỉ số và tính tiền điện nước theo phòng).
- Giao diện Tra cứu, Tìm kiếm đa tiêu chí và Thống kê báo cáo định kỳ.
Chương 4: Thiết kế testcase để kiểm thử phần mềm
Chương 4 thực hiện thiết kế bộ trường hợp kiểm thử (testcase) hoàn chỉnh ở mức Unit Testing theo kỹ thuật Black box nhằm đánh giá toàn diện các module của phần mềm:
- Xây dựng testcase kiểm thử chức năng Đăng nhập và Quản lý đăng nhập (kiểm tra tài khoản hợp lệ, sai mật khẩu, tài khoản không tồn tại, kiểm tra giới hạn số lần nhập).
- Xây dựng testcase cho chức năng Đăng ký và Quản lý đăng ký ở ký túc xá (kiểm tra nhập thiếu trường thông tin, duyệt hồ sơ hợp lệ, từ chối hồ sơ, hủy đơn).
- Xây dựng testcase cho chức năng Quản lý Sinh viên (thêm mới, chỉnh sửa thông tin, xóa sinh viên, chuyển phòng).
- Xây dựng testcase cho chức năng Quản lý Phòng (thêm/sửa phòng, kiểm tra giới hạn số giường, cập nhật và phân bổ tài sản).
- Xây dựng testcase cho chức năng Quản lý Khoản thu (tính toán phí nội trú, kiểm tra tính đúng đắn của công thức tính tiền điện nước dựa trên chỉ số đầu/cuối).
- Xây dựng testcase cho chức năng Tìm kiếm và Thống kê (tra cứu theo mã sinh viên, theo phòng, theo trạng thái hồ sơ, xuất báo cáo danh sách và tổng hợp doanh thu).
Kết quả và đóng góp
Kết quả chính
- Chuẩn hóa và mô hình hóa thành công 5 quy trình nghiệp vụ quản lý nội trú đặc thù tại Trường Đại học Quảng Nam thành tài liệu phân tích hệ thống chi tiết.
- Hoàn thành bản thiết kế hướng đối tượng hoàn chỉnh bao gồm đầy đủ hệ thống biểu đồ Use case, biểu đồ lớp (thực thể, biên, điều khiển), biểu đồ tuần tự, biểu đồ trạng thái, biểu đồ hoạt động và sơ đồ cơ sở dữ liệu quan hệ.
- Xây dựng thành công phần mềm Quản lý ký túc xá với các phân hệ chức năng vận hành đồng bộ: quản lý hồ sơ, sắp xếp phòng ở, theo dõi tài sản, quản lý các khoản thu phí nội trú/điện nước, tra cứu và kết xuất báo cáo.
- Thiết kế và thực thi thành công bộ testcase kiểm thử đơn vị theo phương pháp hộp đen, xác thực tính đúng đắn của các chức năng phần mềm so với yêu cầu đặc tả ban đầu.
Giải pháp và đóng góp của đề tài
- Giải pháp: Chuyển đổi phương thức quản lý ký túc xá từ ghi chép sổ sách thủ công sang ứng dụng phần mềm tin học hóa, rút ngắn thời gian xử lý hồ sơ và nâng cao độ chính xác trong việc lưu trữ dữ liệu.
- Đóng góp tác giả tự nêu:
- Bước đầu cung cấp một công cụ ứng dụng công nghệ thông tin giúp cán bộ quản lý ký túc xá giảm tải khối lượng công việc, nâng cao hiệu suất làm việc nghiệp vụ.
- Hệ thống hóa lý thuyết kiểm thử và chứng minh tầm quan trọng của việc xây dựng testcase chuẩn mực trong chu trình phát triển phần mềm, tạo nền tảng đảm bảo chất lượng cho các sản phẩm ứng dụng.
Hạn chế và hướng nghiên cứu tiếp
- Hạn chế:
- Phạm vi nghiệp vụ của phần mềm được thiết kế tối ưu hóa theo mô hình quản lý nội bộ riêng của Trường Đại học Quảng Nam, chưa khảo sát mở rộng mô hình ký túc xá của các trường đại học khác.
- Công tác kiểm thử trong khóa luận mới chỉ dừng lại ở mức kiểm thử đơn vị (Unit Testing) sử dụng kỹ thuật hộp đen (Black box), chưa thực hiện kiểm thử hộp trắng, kiểm thử tích hợp sâu, kiểm thử hiệu năng/chịu tải hoặc kiểm thử bảo mật nâng cao.
- Hướng nghiên cứu tiếp:
- Tiếp tục nâng cấp, hoàn thiện thêm các tính năng tiện ích mở rộng cho phần mềm để phục vụ tốt hơn nhu cầu quản trị ký túc xá.
- Nghiên cứu mở rộng các cấp độ kiểm thử khác (Integration Testing, System Testing) và ứng dụng các công cụ kiểm thử tự động (Automation Testing) để nâng cao độ bao phủ và tối ưu hóa thời gian kiểm thử.
Giá trị tham khảo
Khóa luận là tài liệu tham khảo hữu ích cho:
- Sinh viên chuyên ngành Công nghệ thông tin, Kỹ thuật phần mềm đang thực hiện đồ án hoặc khóa luận tốt nghiệp về xây dựng hệ thống phần mềm quản lý hoặc chuyên đề kiểm thử chất lượng phần mềm.
- Người nghiên cứu có thể tham khảo trực tiếp cấu trúc phân tích thiết kế hướng đối tượng chuẩn mực 3 lớp (Boundary - Control - Entity) cùng phương pháp xây dựng các biểu đồ UML chi tiết (Sequence, State, Activity).
- Cung cấp mẫu tham khảo thực tế về phương pháp phân tích nghiệp vụ quản lý ký túc xá đại học và kỹ thuật thiết kế bảng testcase kiểm thử đơn vị hộp đen cho các biểu mẫu phần mềm.
Câu hỏi thường gặp
1. Khóa luận quy định thời hạn tối đa để giải quyết và phản hồi hồ sơ đăng ký ký túc xá của sinh viên là bao lâu?
Theo quy trình khảo sát tại Trường Đại học Quảng Nam, Phòng Công tác sinh viên có trách nhiệm xem xét và phản hồi kết quả tiếp nhận hoặc không tiếp nhận cho sinh viên trong thời hạn tối đa là 15 ngày kể từ ngày nhận đủ hồ sơ. Trường hợp từ chối phải thông báo và nêu rõ lý do.
2. Hệ thống quản lý ký túc xá trong đề tài bao gồm những quy trình nghiệp vụ cốt lõi nào?
Hệ thống gồm 5 quy trình chính: QTQLĐK (Đăng ký ở ký túc xá), QTQSV (Quản lý thông tin sinh viên), QTQLP (Quản lý thông tin phòng), QTQLKT (Quản lý các khoản thu) và QTQLTK (Quản lý tìm kiếm – thống kê).
3. Khóa luận áp dụng kỹ thuật và mức độ kiểm thử nào để đánh giá phần mềm?
Đề tài áp dụng kỹ thuật kiểm thử hộp đen (Black box testing) ở cấp độ kiểm thử đơn vị (Unit Testing) để thiết kế các testcase đánh giá các chức năng của phần mềm.
4. Một trường hợp kiểm thử (Testcase) theo định nghĩa trong khóa luận gồm những thành phần thông tin nào?
Mỗi testcase gồm bộ 3 thành phần: Tập dữ liệu đầu vào (Input), Trạng thái của thành phần phần mềm (xác định bởi các giá trị prefix và postfix) và Tập kết quả kỳ vọng (Expected Output).
5. Mô hình cấu trúc lớp của hệ thống được phân chia thành những nhóm lớp nào?
Hệ thống được thiết kế hướng đối tượng gồm 3 nhóm lớp: Lớp thực thể (Entity: TaiKhoan, SinhVien, Phong, TaiSan, HoSoDK, Khoa, Nganh, PhiNoiTru, PhiDienNuoc), Lớp biên (Boundary: I_DN, I_TTSV, I_QL_QLPhong...) và Lớp điều khiển (Control: C_DN, C_QL_TTSV, C_QL_QLPhong...).
Kết luận
Khóa luận tốt nghiệp của tác giả Trịnh Trình Kim Chi đã giải quyết thành công bài toán tin học hóa công tác quản lý ký túc xá tại Trường Đại học Quảng Nam, khắc phục các nhược điểm của phương thức quản lý sổ sách thủ công trước đây. Đề tài kết hợp chặt chẽ giữa quy trình phân tích thiết kế hướng đối tượng bằng UML với việc áp dụng các nguyên tắc kiểm thử hộp đen ở mức đơn vị. Kết quả nghiên cứu không chỉ mang lại giá trị ứng dụng thực tế cho công tác quản trị nội trú của nhà trường mà còn đóng vai trò là tài liệu tham khảo chi tiết về quy trình xây dựng và kiểm thử phần mềm cho sinh viên ngành Công nghệ thông tin.