Bối cảnh và vấn đề nghiên cứu
Trong quy trình phát triển phần mềm hiện đại, việc duy trì kênh giao tiếp và phối hợp quản lý hiệu quả giữa các nhóm phát triển (developer), nhóm kiểm thử (tester) và người quản lý dự án (project leader/project manager) là yếu tố mang tính quyết định đến sự thành bại của dự án. Tuy nhiên, theo ghi nhận của nhóm tác giả, công tác theo dõi các trường hợp sử dụng (use cases), quản lý lỗi (bugs/defects), lập kế hoạch kiểm thử (test plans) và kiểm soát tỷ lệ đạt/không đạt (pass/fail ratios) trong thực tế thường gặp nhiều trở ngại do thiếu một công cụ giao tiếp tập trung được thiết kế chuyên biệt cho các yêu cầu này.
Cụ thể, các nhà quản lý dự án cần nắm bắt chính xác tiến độ công việc thông qua các báo cáo trực quan về số lượng tính năng đã hoàn thiện, số lượng lỗi còn tồn đọng và mức độ phần mềm vượt qua các bài kiểm thử để đưa ra quyết định kịp thời. Đồng thời, nhóm kiểm thử cần một nền tảng rõ ràng để xây dựng kế hoạch kiểm thử, ghi nhận kết quả và chia sẻ dữ liệu chất lượng phần mềm cho toàn bộ các bên liên quan. Xuất phát từ thực tiễn đó, đề tài "Developing a Project Management System Website Using SpringBoot and ReactJS" (Xây dựng trang web hệ thống quản lý dự án sử dụng Spring Boot và ReactJS) đã được nhóm sinh viên Lý Hồng Khanh và Phạm Vũ Đăng Khoa lựa chọn thực hiện dưới sự hướng dẫn của TS. Lê Văn Vinh tại Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh.
Mục tiêu của đề tài là xây dựng một trang web quản lý dự án tích hợp, phục vụ quy trình phát triển và kiểm thử phần mềm. Văn bản xác định hệ thống các yêu cầu và nhiệm vụ nghiên cứu cụ thể như sau:
- Yêu cầu phi chức năng: Đảm bảo giao diện người dùng trực quan, thẩm mỹ, thuận tiện thao tác ("beautiful and easy to use") và tốc độ phản hồi của hệ thống nhanh chóng ("fast response speed").
- Quản lý người dùng (User Management): Hiện thực hóa tính năng đăng ký tài khoản với các vai trò Admin, Project Manager, Tester, Developer; cơ chế đăng nhập bảo mật tích hợp OAuth2; tính năng khôi phục mật khẩu thông qua thư điện tử; kiểm soát truy cập dựa trên vai trò (Role-Based Access Control - RBAC) nhằm phân định phạm vi hiển thị và quyền thao tác (tạo, chỉnh sửa, xóa dự án/nhiệm vụ).
- Quản lý dự án (Project Management): Cung cấp thẩm quyền cho Project Manager khởi tạo, chỉnh sửa, xóa các dự án, chương trình (programs), yêu cầu (requirements) và kế hoạch kiểm thử; xác định các thuộc tính dự án như tên gọi, mô tả, thời hạn; hỗ trợ phân công dự án cho nhóm hoặc từng cá nhân, thêm hoặc xóa thành viên khỏi dự án.
- Quản lý tác vụ (Task Management): Khởi tạo tác vụ với đầy đủ tiêu đề, mô tả, hạn hoàn thành, độ ưu tiên và gắn nhãn phân loại; phân công tác vụ cho lập trình viên; theo dõi trạng thái tác vụ theo các mức ("To Do", "In Progress", "Completed"); hỗ trợ đính kèm tệp tin và bình luận; thiết lập quan hệ phụ thuộc giữa các tác vụ (Task Dependencies) và tự động phát cảnh báo khi tác vụ phụ thuộc bị tắc nghẽn hoặc trễ hạn.
Về đối tượng và phạm vi nghiên cứu, đề tài tập trung vào quy trình điều phối dự án phần mềm và quản lý vòng đời kiểm thử chất lượng. Phạm vi chủ thể của hệ thống phân định rõ ràng 4 nhóm tác nhân tham gia:
- Super Admin: Chịu trách nhiệm quản lý tài khoản và toàn bộ hệ thống.
- Project Manager: Giám sát toàn bộ tiến độ dự án, khởi tạo dự án, chương trình, yêu cầu, kế hoạch kiểm thử, đồng thời giao tiếp và giao việc cho Tester và Developer.
- Tester (QA): Tham gia toàn bộ quy trình kiểm thử do Project Manager thiết lập, đồng thời phân bổ các bước kiểm thử (test steps) cho Developer.
- Developer: Tiếp nhận và thực thi các nhiệm vụ, sửa lỗi do Tester bàn giao.
Không gian nghiên cứu của đề tài được triển khai tại Khoa Đào tạo Quốc tế thuộc Trường Đại học Sư phạm Kỹ thuật TP.HCM, với khung thời gian thực hiện kéo dài từ tháng 9/2024 đến tháng 12/2024.
Cơ sở lý thuyết và phương pháp
Khóa luận áp dụng phương pháp tiếp cận kỹ thuật công nghệ kết hợp khảo sát thực tiễn để giải quyết bài toán đặt ra. Về cơ sở lý luận và khảo sát hệ thống liên quan, nhóm tác giả đã tiến hành phân tích ba nền tảng quản lý dự án thương mại phổ biến hiện nay:
- Jira (Atlassian): Cung cấp khả năng theo dõi tiến độ, quản lý lỗi và tính năng, bộ lọc nâng cao, luồng công việc tùy biến và báo cáo thống kê đa dạng. Điểm mạnh là phân quyền chi tiết đến từng tác vụ và khả năng tích hợp tốt (Excel, Email, môi trường lập trình), nhưng nhược điểm là chi phí cao, tốn thời gian và công sức thiết lập.
- Wrike: Nền tảng cộng tác đám mây hỗ trợ bảng Kanban, biểu đồ Gantt tùy biến, phân tích thời gian thực và tích hợp trí tuệ nhân tạo (AI) để dự đoán rủi ro, tối ưu hóa nguồn lực. Hạn chế của hệ thống là chi phí đắt đỏ đối với nhóm người dùng lớn, cấu hình nâng cao phức tạp, hạn chế thao tác ngoại tuyến và quá tải đối với các dự án nhỏ.
- Microsoft Project: Giải pháp chuyên sâu cho việc lập kế hoạch tiến độ, phân bổ nguồn lực, quản lý ngân sách và báo cáo phân tích nâng cao (Gantt charts, burndown charts) tích hợp trong hệ sinh thái Microsoft. Nhược điểm chính là chi phí bản quyền lớn, không phù hợp với dự án quy mô nhỏ và thiếu các tính năng cộng tác trực tiếp như hội thoại nội bộ hay đồng chỉnh sửa văn bản.
Về phương pháp kỹ thuật, đề tài sử dụng phương pháp đối sánh công nghệ (technical comparison) để lựa chọn ngăn xếp công nghệ (tech stack) tối ưu cho việc phát triển web full-stack:
- So sánh thư viện/nền tảng giao diện người dùng giữa ReactJS, VueJS và AngularJS dựa trên các tiêu chí năm phát hành, đơn vị phát triển, ngôn ngữ, cộng đồng hỗ trợ, độ phức tạp, mô hình hiển thị, phạm vi ứng dụng, khả năng tái sử dụng mã và thời gian tải trang.
- So sánh hệ quản trị cơ sở dữ liệu quan hệ giữa MySQL và Microsoft SQL Server dựa trên nền tảng hỗ trợ, ngôn ngữ lập trình tương thích, khả năng mở rộng, hiệu năng, cú pháp truy vấn, công cụ kết nối và mô hình bản quyền.
Về phương pháp phân tích và thiết kế phần mềm, nhóm tác giả vận dụng chuẩn mô hình hóa Unified Modeling Language (UML) để xây dựng hệ thống:
- Sử dụng biểu đồ ca sử dụng (Use Case Diagram) và bảng đặc tả ca sử dụng (Use Case Specifications) để mô hình hóa toàn diện tương tác của các tác nhân.
- Xây dựng 58 biểu đồ tuần tự (Sequence Diagrams) để chi tiết hóa luồng thông điệp giữa giao diện, bộ điều khiển (Controller), dịch vụ xử lý (Service) và cơ sở dữ liệu.
- Thiết kế mô hình dữ liệu quan hệ thực thể (Entity Relationship Diagram - ERD) gồm 23 bảng dữ liệu.
- Áp dụng phương pháp kiểm thử hộp đen (Black-box Testing) để thiết kế các kịch bản kiểm thử (Test Cases) xác minh tính đúng đắn của các luồng nghiệp vụ trên hệ thống đã triển khai.
Thiết kế và triển khai
Hệ thống được thiết kế theo mô hình kiến trúc ba tầng truyền thống (3-tier architecture), bao gồm: tầng trình diễn giao diện (Presentation Layer), tầng ứng dụng logic nghiệp vụ (Backend Application Layer) và tầng lưu trữ dữ liệu (Database Layer).
Luồng kiến trúc của ứng dụng gồm sáu bộ phận cơ bản: Người dùng (client) gửi yêu cầu thông qua tầng trình diễn; giao diện frontend chuyển tiếp các yêu cầu này đến backend; backend tiếp nhận yêu cầu, xử lý nghiệp vụ và truy vấn vào cơ sở dữ liệu; sau đó cơ sở dữ liệu trả dữ liệu về backend để xử lý và chuyển ngược lại frontend hiển thị theo ngữ cảnh của người dùng.
Bảng 1. So sánh ReactJS và các công nghệ giao diện được phân tích trong khóa luận
| Tiêu chí |
ReactJS |
VueJS |
AngularJS |
| Năm phát hành |
2013 |
2014 |
2010 |
| Nhà phát triển |
Facebook |
Alibaba |
Google |
| Ngôn ngữ |
JavaScript, TypeScript |
JavaScript, TypeScript |
TypeScript |
| Cộng đồng |
Rất lớn, tài liệu phong phú, nhiều tài nguyên chia sẻ |
Đang phát triển, dễ tiếp cận, được duy trì tích cực |
Lớn, cộng đồng chính thức từ Google |
| Độ khó tiếp cận |
Phù hợp người có kinh nghiệm JavaScript |
Dễ học, phù hợp người mới bắt đầu |
Đòi hỏi kiến thức chuyên sâu về TypeScript |
| Mô hình dựng giao diện |
Virtual DOM (Document Object Model ảo) |
Virtual DOM (Document Object Model ảo) |
Mô hình MVC (Model - View - Controller) |
| Phạm vi áp dụng |
Tối ưu cho trang web hiện đại và ứng dụng kết xuất native (iOS/Android) |
Phù hợp dự án nhỏ, công ty khởi nghiệp, ứng dụng đơn trang (SPA) |
Phù hợp dự án lớn, ứng dụng doanh nghiệp nhiều tính năng |
| Tái sử dụng mã nguồn |
Khả dụng |
Khả dụng |
Khả dụng |
| Thời gian tải trang |
Trung bình |
Thấp |
Cao |
Ở tầng giao diện, nhóm tác giả lựa chọn ReactJS kết hợp công cụ đóng gói và máy chủ phát triển Vite. Vite cung cấp tính năng Hot Module Replacement (HMR) tức thời và cấu hình tinh gọn. Để hỗ trợ thiết kế giao diện, khóa luận tích hợp bộ thành phần Shadcn/ui — một bộ sưu tập các thành phần giao diện không cần cài đặt nguyên gói qua npm mà cho phép sao chép, tùy biến trực tiếp mã nguồn vào dự án, giúp tối ưu hóa khả năng can thiệp thiết kế và khả năng truy cập (accessibility).
Ở tầng máy chủ, hệ thống sử dụng ngôn ngữ Java kết hợp Spring Framework và mô-đun Spring Boot. Spring Boot đóng vai trò loại bỏ cấu hình phức tạp (không yêu cầu cấu hình XML), cung cấp các gói thư viện khởi tạo (starter kits), tự động tạo cấu hình và tích hợp máy chủ web nhúng (Tomcat, Undertow hoặc Jetty) để xây dựng ứng dụng độc lập. Dịch vụ lưu trữ đối tượng đám mây Amazon S3 (Amazon Simple Storage Service) được sử dụng để quản lý, lưu trữ tệp tin đính kèm với khả năng mở rộng và mức độ bảo mật cao.
Bảng 2. So sánh MySQL và Microsoft SQL Server theo phân tích của tác giả
| Tiêu chí |
MySQL |
Microsoft SQL Server |
| Hỗ trợ nền tảng |
Hỗ trợ nhiều nền tảng hơn |
Hỗ trợ ít nền tảng hơn MySQL |
| Ngôn ngữ lập trình |
Hỗ trợ nhiều ngôn ngữ (Perl, Haskell, PHP, C, C++, Java...) |
Hỗ trợ ít ngôn ngữ hơn MySQL |
| Tính năng lọc & truy vấn |
Lọc trên nhiều cơ sở dữ liệu đồng thời; tạm dừng truy vấn không cần hủy tiến trình |
Sở hữu hệ thống kết nối và tích hợp bên thứ ba đa dạng hơn |
| Khả năng mở rộng |
Dùng kỹ thuật nén, phân vùng nâng cao, bộ nhớ in-memory |
Cung cấp tính năng mở rộng linh hoạt nhưng kém cơ động hơn |
| Hiệu năng |
Hợp nhất kết nối và bộ nhớ đệm kết quả truy vấn tốc độ cao |
Vận hành tốt trong môi trường quy mô lớn, phản hồi tốt |
| Cú pháp truy vấn |
Chuẩn SQL, sử dụng dấu backticks (`) trong cú pháp |
Chuẩn SQL, sử dụng dấu ngoặc kép (") trong cú pháp |
| Hệ thống kết nối |
Nhiều tích hợp mở rộng hơn |
Tích hợp chặt chẽ với các sản phẩm của Microsoft |
| Bản quyền & Hỗ trợ |
Phần mềm mã nguồn mở (Open-source) |
Phần mềm sở hữu độc quyền, có phí bản quyền |
| Tính năng an toàn |
Không cho phép sửa đổi hoặc truy cập tệp trực tiếp khi đang chạy |
Cho phép can thiệp cơ sở dữ liệu trong quá trình vận hành |
Từ bảng phân tích, nhóm tác giả chọn MySQL làm hệ quản trị cơ sở dữ liệu cho dự án nhờ ưu thế mã nguồn mở, độ tin cậy, tính bảo mật phù hợp với ứng dụng web truy cập qua Internet và khả năng tối ưu hóa chi phí.
Mô hình dữ liệu quan hệ thực thể (ERD) của hệ thống bao gồm 23 bảng chuyên biệt nhằm quản lý trọn vẹn chu trình dự án và quy trình kiểm thử:
db_project_management_account: Lưu trữ thông tin tài khoản xác thực.
db_project_management_user: Thông tin chi tiết của người dùng.
db_project_management_category: Phân loại danh mục dự án/tác vụ.
db_project_management_project: Thông tin tổng thể của dự án.
db_project_management_program: Các chương trình thuộc dự án.
db_project_management_project_member: Danh sách và trạng thái thành viên dự án.
db_project_management_requirement: Quản lý các yêu cầu nghiệp vụ.
db_project_management_test_plan: Kế hoạch kiểm thử tổng thể.
db_project_management_test_suite: Bộ các ca kiểm thử.
db_project_management_test_case: Thông tin các trường hợp kiểm thử.
db_project_management_test_step: Các bước thực hiện kiểm thử chi tiết.
db_project_management_test_execution: Đợt thực thi kiểm thử.
db_project_management_test_execution_turn: Lượt thực thi kiểm thử chi tiết.
db_project_management_test_case_execution: Kết quả thực thi cho từng test case.
db_project_management_test_suite_execution: Kết quả thực thi cho từng test suite.
db_project_management_test_step_execution: Kết quả thực thi cho từng test step.
db_project_management_test_case_upload: Quản lý lịch sử nạp dữ liệu kiểm thử từ tệp.
db_project_management_test_defect: Quản lý các lỗi phần mềm phát sinh.
db_project_management_test_defect_comment: Bình luận, trao đổi về lỗi phần mềm.
db_project_management_test_plan_test_suite_relation: Quan hệ giữa Test Plan và Test Suite.
db_project_management_test_suite_test_case_relation: Quan hệ giữa Test Suite và Test Case.
db_project_management_test_defect_fixed_result: Kết quả khắc phục lỗi.
db_project_management_test_defect_history: Lịch sử thay đổi và cập nhật trạng thái lỗi.
Giao diện người dùng được thiết kế hoàn chỉnh qua các màn hình: Màn hình quản lý mã nhóm (Group Code Screen), Chi tiết nhóm (Group Detail Screen), Quản lý dự án (Project Management Screen), Chi tiết dự án (Project Detail Screen), Dự án của tôi (My Project Screen), Quản lý chương trình (Program Management Screen), Quản lý yêu cầu (Requirement Management Screen), Quản lý kế hoạch kiểm thử (Test Plan Management Screen), Quản lý bộ kiểm thử (Test Suite Management Screen), Quản lý ca kiểm thử (Test Case Management Screen), Quản lý thực thi kiểm thử (Test Execution Management Screen), Chi tiết lỗi (Test Defect Detail Screen), Báo cáo kết quả thực thi kiểm thử (Test Execution Result Report Screen) và Báo cáo hiệu suất (Performance Report Screen).
Về kiểm thử, khóa luận thực hiện kiểm thử chức năng với 10 ca kiểm thử mẫu (từ TC_1 đến TC_10) bao gồm:
- TC_1: Kiểm tra chức năng đăng nhập khi người dùng nhập thông tin chính xác.
- TC_2: Kiểm tra chức năng đăng nhập khi nhập sai địa chỉ email hoặc mật khẩu.
- TC_3: Kiểm tra chức năng khởi tạo tài khoản mới.
- TC_4: Kiểm tra chức năng tạo dự án mới.
- TC_5: Kiểm tra chức năng tạo chương trình mới.
- TC_6: Kiểm tra chức năng quên mật khẩu với địa chỉ email hợp lệ.
- TC_7: Kiểm tra chức năng quên mật khẩu với địa chỉ email không hợp lệ.
- TC_8: Kiểm tra chức năng tạo đợt thực thi kiểm thử (Test Execution).
- TC_9: Kiểm tra chức năng cập nhật ca kiểm thử (Test Case).
- TC_10: Kiểm tra chức năng tạo kế hoạch kiểm thử (Test Plan).
Nội dung chính theo từng chương
Reasons for Choosing the Topic (Lý do chọn đề tài)
Chương này tập trung trình bày căn cứ thực tiễn của đề tài. Tác giả chỉ ra rằng trong vòng đời phát triển phần mềm, sự thiếu vắng một công cụ giao tiếp tập trung và chuyên dụng dẫn đến sự thiếu đồng bộ giữa các nhà phát triển và đội ngũ kiểm thử. Việc quản lý use case, theo dõi trạng thái lỗi, thiết lập kế hoạch kiểm thử và kiểm soát tỷ lệ thành công của bài kiểm tra thường xuyên bị đứt gãy. Đề tài lựa chọn hướng đi xây dựng hệ thống website quản lý dự án nhằm cung cấp các báo cáo tiến độ minh bạch cho nhà quản lý và hỗ trợ nhóm kiểm thử chuẩn hóa công tác đảm bảo chất lượng.
Expected Results to Achieve (Kết quả kỳ vọng đạt được)
Chương này đặc tả chi tiết các yêu cầu phi chức năng và chức năng của hệ thống. Về phi chức năng, hệ thống hướng tới sự tinh gọn, thẩm mỹ và tốc độ phản hồi cao. Về chức năng, hệ thống được cấu trúc thành ba phân hệ nòng cốt: Phân hệ quản lý người dùng (xác thực OAuth2, đặt lại mật khẩu qua email, kiểm soát quyền truy cập RBAC với 4 vai trò); Phân hệ quản lý dự án (tạo, chỉnh sửa, xóa dự án, chương trình, yêu cầu, kế hoạch kiểm thử và phân bổ nhân sự); Phân hệ quản lý tác vụ (thiết lập tác vụ chi tiết, quản lý trạng thái luồng công việc To Do/In Progress/Completed, đính kèm tệp tin và thiết lập quan hệ phụ thuộc công việc).
Object and Scope of the Study (Đối tượng và phạm vi nghiên cứu)
Nội dung chương phân định ranh giới trách nhiệm của 4 tác nhân chính: Super Admin, Project Manager, Tester và Developer. Điểm nhấn của chương là phần khảo sát, phân tích chuyên sâu các công cụ quản lý dự án phổ biến trên thế giới gồm Jira Dashboard, Wrike Dashboard và Microsoft Project Dashboard. Tác giả tổng hợp chi tiết các chức năng chính, ưu điểm và nhược điểm của từng hệ thống về mặt chi phí bản quyền, độ phức tạp cấu hình, khả năng mở rộng và mức độ hỗ trợ cộng tác, làm cơ sở định hình các tính năng cần thiết cho trang web được xây dựng.
System Architecture (Kiến trúc hệ thống)
Chương này trình bày toàn bộ giải pháp kỹ thuật và kiến trúc phần mềm. Tác giả phân tích mô hình kiến trúc 3 tầng và luồng dữ liệu 6 thành phần của hệ thống. Đồng thời, chương cung cấp các luận chứng kỹ thuật thông qua bảng so sánh đối đầu giữa ReactJS với VueJS, AngularJS; phân tích ưu thế của công cụ đóng gói Vite và bộ thư viện giao diện Shadcn/ui. Ở tầng backend và cơ sở dữ liệu, chương làm rõ lý do sử dụng Spring Boot (giảm cấu hình, tích hợp máy chủ nhúng), dịch vụ lưu trữ đám mây Amazon S3 và đối sánh toàn diện giữa hệ quản trị cơ sở dữ liệu MySQL và SQL Server.
Use Case Diagram & System Specifications (Biểu đồ ca sử dụng và đặc tả hệ thống)
Chương này chiếm dung lượng lớn trong khóa luận, mô hình hóa toàn bộ hành vi của hệ thống thông qua 5 biểu đồ Use Case tổng quát và chi tiết cho từng tác nhân (User common, Super Admin, Project Manager, Tester, Developer). Đi kèm với đó là các bảng đặc tả ca sử dụng chuẩn hóa (từ UC_LOGIN, UC_REGISTER, UC_LOGOUT, danh sách và chi tiết dự án, thành viên, chương trình, yêu cầu đến toàn bộ chuỗi ca sử dụng quản lý kiểm thử: Test Case, Test Step, Test Suite, Test Plan, Test Execution). Chương cũng bao gồm 58 biểu đồ tuần tự (Sequence Diagrams) mô tả luồng tương tác và xử lý dữ liệu chi tiết cho từng thao tác của người dùng.
Database Design & User Interface (Thiết kế cơ sở dữ liệu và giao diện người dùng)
Chương này cụ thể hóa mô hình quan hệ thực thể (ERD) thành 23 bảng cơ sở dữ liệu MySQL, được thiết kế chuyên biệt để theo dõi chi tiết từ giai đoạn xây dựng yêu cầu đến từng bước kiểm thử và lịch sử khắc phục lỗi phần mềm. Song song đó, chương giới thiệu toàn bộ hệ thống giao diện người dùng thực tế của ứng dụng, bao gồm bảng điều khiển, biểu đồ Gantt hỗ trợ kéo thả khoảng thời gian, màn hình quản lý nạp dữ liệu bằng tệp Excel (Upload Test Case By Excel File, Upload Program By Excel File) và hai màn hình báo cáo phân tích trực quan: Màn hình báo cáo kết quả thực thi kiểm thử và Màn hình báo cáo hiệu suất.
Implementation and Testing (Triển khai và kiểm thử)
Chương cuối cùng ghi nhận kết quả kiểm thử chức năng của hệ thống thông qua 10 kịch bản kiểm thử hộp đen (từ TC_1 đến TC_10). Các kịch bản tập trung xác minh tính đúng đắn của các quy trình quan trọng: đăng nhập hợp lệ và không hợp lệ, đăng ký tài khoản, khôi phục mật khẩu qua email, khởi tạo dự án, khởi tạo chương trình, tạo và cập nhật các thành phần trong chu trình kiểm thử phần mềm (Test Case, Test Plan, Test Execution).
Kết quả và đóng góp
Khóa luận đã hoàn thành các mục tiêu kỹ thuật đề ra với những kết quả cụ thể được ghi nhận trong văn bản:
- Xây dựng thành công hệ thống website quản lý dự án hoàn chỉnh dựa trên ngăn xếp công nghệ ReactJS, Vite, Shadcn/ui cho frontend và Spring Boot, MySQL, Amazon S3 cho backend.
- Hiện thực hóa hệ thống phân quyền 4 vai trò rõ rệt (Super Admin, Project Manager, Tester, Developer), tích hợp xác thực bảo mật OAuth2 và cơ chế khôi phục mật khẩu thông qua thư điện tử.
- Thiết kế và triển khai trọn vẹn mô hình cơ sở dữ liệu quan hệ gồm 23 bảng, chuẩn hóa quy trình quản lý chất lượng phần mềm theo phân cấp chặt chẽ: Chương trình $\rightarrow$ Yêu cầu $\rightarrow$ Kế hoạch kiểm thử $\rightarrow$ Bộ kiểm thử $\rightarrow$ Ca kiểm thử $\rightarrow$ Bước kiểm thử $\rightarrow$ Thực thi kiểm thử $\rightarrow$ Quản lý lỗi và lịch sử sửa lỗi.
- Hỗ trợ tính năng nạp dữ liệu ca kiểm thử và chương trình hàng loạt thông qua tệp tin Excel, tích hợp biểu đồ Gantt điều chỉnh tiến độ và xuất báo cáo kết quả thực thi cũng như báo cáo hiệu suất trực quan.
- Hoàn thành kiểm thử chức năng và xác nhận tính ổn định của 10 ca kiểm thử cốt lõi (TC_1 đến TC_10) liên quan đến xác thực và các thao tác nghiệp vụ quản trị dữ liệu.
Về giải pháp và đóng góp, đồ án mang lại một giải pháp phần mềm quản lý dự án tinh gọn, tập trung sâu vào giai đoạn kiểm thử chất lượng, giúp khắc phục nhược điểm chi phí cao và sự cồng kềnh, phức tạp của các nền tảng thương mại như Jira, Wrike hay Microsoft Project, đồng thời giải quyết bài toán thiếu kênh kết nối thông tin trực tiếp giữa lập trình viên và kiểm thử viên trong các dự án phần mềm.
Hạn chế và hướng nghiên cứu tiếp
Trong phần lời cảm ơn và đánh giá, nhóm tác giả thẳng thắn thừa nhận một số hạn chế của đề tài:
- Đồ án được hoàn thành trong một khoảng thời gian tương đối ngắn với kinh nghiệm thực tế về kỹ thuật và triển khai dự án phần mềm của sinh viên còn hạn chế, dẫn đến việc không thể tránh khỏi các thiếu sót trong quá trình phát triển hệ thống.
- Về phạm vi kiểm thử, tài liệu mới chỉ ghi nhận 10 kịch bản kiểm thử chức năng thủ công ở mức cơ bản; chưa triển khai các bài kiểm thử hiệu năng chịu tải, kiểm thử bảo mật nâng cao hoặc hệ thống kiểm thử tự động hóa (Automated Testing).
- Hệ thống chưa hỗ trợ các tính năng thông minh nâng cao như dự báo rủi ro tự động bằng AI (như khảo sát ở Wrike) hoặc khả năng tích hợp trực tiếp vào môi trường lập trình IDE của nhà phát triển (như khảo sát ở Jira).
Hướng nghiên cứu và phát triển tiếp theo được tác giả xác định là tiếp thu ý kiến đánh giá của giảng viên hướng dẫn và hội đồng để nâng cao kiến thức chuyên môn, tối ưu hóa các lỗ hổng kỹ thuật còn tồn tại, đồng thời hoàn thiện và bổ sung các tính năng nâng cao cho ứng dụng trong các phiên bản tiếp theo.
Giá trị tham khảo
Báo cáo khóa luận là tài liệu tham khảo có giá trị chuyên môn đối với sinh viên ngành Công nghệ Thông tin, Kỹ thuật Phần mềm và Hệ thống Thông tin đang thực hiện đồ án tốt nghiệp hoặc các dự án công nghệ phát triển web full-stack:
- Tài liệu đặc tả và thiết kế phần mềm: Hệ thống 5 ca sử dụng tổng quát, danh mục bảng đặc tả ca sử dụng chi tiết và 58 biểu đồ tuần tự (Sequence Diagrams) là tài liệu tham khảo thực tiễn chuẩn mực cho sinh viên khi học tập và thực hành môn Phân tích và Thiết kế Hướng đối tượng (OOAD).
- Thiết kế cơ sở dữ liệu chuyên ngành kiểm thử: Mô hình ERD với 23 bảng quan hệ là nguồn tham khảo hữu ích cho các đề tài cần xây dựng hệ thống quản lý kiểm thử phần mềm (Test Management Systems), giúp hình dung rõ cấu trúc dữ liệu liên kết giữa Test Plan, Test Suite, Test Case, Test Step, Test Defect và Defect History.
- Tích hợp công nghệ hiện đại: Khóa luận cung cấp các mẫu so sánh lý thuyết và kinh nghiệm triển khai thực tế khi phối hợp ReactJS, Vite, Shadcn/ui với Java Spring Boot và lưu trữ tệp trên Amazon S3.
Câu hỏi thường gặp
1. Hệ thống phân định những vai trò người dùng (actors) nào và trách nhiệm cụ thể của từng vai trò là gì?
Hệ thống phân định rõ ràng 4 nhóm tác nhân:
- Super Admin: Quản lý toàn bộ tài khoản người dùng và vận hành hệ thống.
- Project Manager: Theo dõi tiến độ tổng thể, khởi tạo dự án, chương trình, yêu cầu, kế hoạch kiểm thử, điều phối và giao nhiệm vụ cho Tester và Developer.
- Tester: Tham gia toàn bộ quy trình kiểm thử do Project Manager thiết lập và phân công các bước kiểm thử (test steps) cho Developer.
- Developer: Tiếp nhận và thực thi các nhiệm vụ, kiểm tra và khắc phục lỗi do Tester phân công.
2. Các công nghệ chính được nhóm tác giả lựa chọn để xây dựng hệ thống gồm những gì?
Hệ thống được xây dựng trên nền tảng:
- Frontend: ReactJS, công cụ đóng gói Vite và bộ thư viện thành phần giao diện Shadcn/ui.
- Backend: Java với framework Spring Boot, cung cấp các dịch vụ web service độc lập.
- Lưu trữ đối tượng: Dịch vụ đám mây Amazon S3 (Amazon Simple Storage Service).
- Cơ sở dữ liệu: Hệ quản trị cơ sở dữ liệu quan hệ MySQL.
3. Hệ thống có hỗ trợ phương thức nạp dữ liệu hàng loạt nào cho các ca kiểm thử và chương trình không?
Có. Theo thiết kế ca sử dụng và các biểu đồ tuần tự, hệ thống hỗ trợ hai tính năng nạp dữ liệu hàng loạt thông qua tệp tin bảng tính:
- Ca sử dụng
Upload Test Case By Excel File cho phép nạp danh sách các ca kiểm thử từ tệp Excel.
- Ca sử dụng
Upload Program By Excel File cho phép nạp dữ liệu chương trình từ tệp Excel. Lịch sử tải lên được theo dõi qua bảng cơ sở dữ liệu db_project_management_test_case_upload.
4. Cơ sở dữ liệu của hệ thống quản lý lỗi phần mềm (defects) thông qua các bảng thực thể nào?
Quy trình phát hiện, trao đổi và khắc phục lỗi kiểm thử được theo dõi chặt chẽ qua 4 bảng cơ sở dữ liệu chuyên biệt:
db_project_management_test_defect: Lưu trữ thông tin chi tiết về lỗi được phát hiện.
db_project_management_test_defect_comment: Ghi nhận các phản hồi, trao đổi và thảo luận giữa các thành viên về lỗi.
db_project_management_test_defect_fixed_result: Ghi nhận kết quả xử lý và khắc phục lỗi của lập trình viên.
db_project_management_test_defect_history: Lưu trữ toàn bộ lịch sử thay đổi trạng thái và tiến trình xử lý lỗi theo thời gian.
5. Khóa luận đã ghi nhận kết quả kiểm thử hệ thống cho những kịch bản (Test Cases) nào?
Tài liệu khóa luận ghi nhận kết quả thực hiện của 10 kịch bản kiểm thử chức năng mẫu từ TC_1 đến TC_10: kiểm tra đăng nhập thành công (TC_1), kiểm tra đăng nhập khi sai email hoặc mật khẩu (TC_2), kiểm tra tạo tài khoản mới (TC_3), kiểm tra tạo dự án (TC_4), kiểm tra tạo chương trình (TC_5), kiểm tra chức năng quên mật khẩu với email hợp lệ (TC_6), kiểm tra chức năng quên mật khẩu với email không hợp lệ (TC_7), kiểm tra tạo đợt thực thi kiểm thử Test Execution (TC_8), kiểm tra cập nhật ca kiểm thử Test Case (TC_9), và kiểm tra tạo kế hoạch kiểm thử Test Plan (TC_10).
Kết luận
Khóa luận tốt nghiệp "Developing a Project Management System Website Using SpringBoot and ReactJS" của sinh viên Lý Hồng Khanh và Phạm Vũ Đăng Khoa tại Trường Đại học Sư phạm Kỹ thuật TP.HCM đã giải quyết thành công bài toán xây dựng công cụ quản lý dự án phần mềm tập trung vào vòng đời kiểm thử. Công trình cung cấp giải pháp kiến trúc 3 tầng chuẩn mực kết hợp giữa ReactJS, Spring Boot, MySQL và Amazon S3, đáp ứng đầy đủ các yêu cầu quản lý từ phân quyền người dùng OAuth2 đến kiểm soát lỗi chi tiết. Bản khóa luận là tài liệu học thuật hoàn chỉnh, có giá trị ứng dụng và tham khảo cao cho sinh viên ngành Công nghệ Thông tin trong việc phân tích, thiết kế hệ thống và phát triển ứng dụng web full-stack.