- Lập kế hoạch ban đầu và hàng tuần bổ sung kế hoạch thực tế cho đề tài.
- Các tài liệu phân tích, thiết kế website.
- Tài liệu test plan để lập kế hoạch kiểm thử và các test report để báo cáo các kết quả test.
- Chương trình hiện thực website được viết bằng Node.js Platform kết hợp với Express Framework và các library khác.
Bên cạnh đó, qua việc thực hiện ứng dụng website quản lý trường học, nhóm đã tìm hiểu về các dịch vụ AWS (Amazon Web Service) cung cấp rất nhiều dịch vụ cho người dùng có thể sử dụng trực tiếp trên nền tảng Cloud như các dịch vụ về lưu trữ (S3), các dịch vụ hỗ trợ người phát triển ứng dụng (Developer tools), về
compute (EC2, Lamda,…) hay về cơ sở dữ liệu (RDS, DynamoDB), cơ sở dữ liệu không cấu trúc (NoSQL), để hiểu về sự khác nhau của NoSQL và SQL thông thường, biết được lợi ích của NoSQL trong việc phát triển ứng dụng hiện nay cùng với BigData.
Bên cạnh việc tìm hiểu về các dịch vụ AWS, nhóm cũng đã áp dụng một số kiến thức tìm hiểu được vào ứng dụng quản lý trường phổ thông như:
- Sử dụng AWS EC2 để tạo một môi trường máy ảo triển khai server, một cách nhanh chóng và ít tốn kém chi phí.
- Sử dụng cơ sở dữ liệu AWS DynamoDB để thực hiện tổ chức cơ sở dữ liệu theo dạng NoSQL cho dữ liệu của ứng dụng.
- Sử dụng AWS S3 để lưu trữ tài nguyên, source code, ứng dụng của nhóm trên Cloud.
- Sử dụng Node.js cùng với các framework hỗ trợ để tạo nên web server cho ứng dụng cung cấp với tốc độ thực thi tốt.
Từ việc sử dụng các công nghệ đó vào xây dựng ứng dụng, nhóm đã thực hiện các chức năng của ứng dụng như: Quản lý học sinh, giáo viên với các chức năng
- Chưa tối ưu được dữ liệu và hiệu năng xử lý cao cho website.
- Giao diện chưa được hoàn thiện.
5.3 Hướng phát triển
- Điều chỉnh lại logic của chương trình cho hợp lý.
- Website sẽ phát triển thêm các nghiệp vụ của quản lý học sinh, giảng dạy, thiết bị, khoản thu, thư viện, giáo viên, y tế, văn thư, thanh toán tiền học phí trực tuyến.
- Ràng buộc dữ liệu chặt chẽ hơn và tối ưu truy xuất tới dữ liệu.
- Sử dụng thêm các dịch vụ của AWS để ứng dụng trở nên dễ dàng sử dụng hơn ở mọi lúc mọi nơi mà chi phí cũng được xem là hợp lý.
TÀI LIỆU THAM KHẢO
[1]. https://nodejs.org/en/docs/
[2]. https://expressjs.com/en/guide/routing.html [3]. https://expressjs.com/en/starter/generator.html [4]. https://socket.io/docs/
[5]. https://docs.aws.amazon.com/en_us/amazondynamodb/latest/developerguide/G ettingStarted.NodeJs.html
[6]. https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp- relational-modeling.html
[7]. https://www.youtube.com/watch?v=HaEPXoXVf2k [8]. https://ejs.co/#docs
[9]. http://www.passportjs.org/docs/
[10]. https://sweetalert2.github.io
Nâng cao mức độ tiện lợi của ứng dụng quản lý trường phổ thông.
Đảm bảo ứng dụng không còn lỗi khi đưa ra cho người sử dụng.
1.2. Phân tích ứng dụng
Đối tượng sử dụng Website: Phụ huynh, học sinh, giáo viên, admin.
Mục tiêu của website là thực hiện các chức năng quản lý hồ sơ (thêm, cập nhật, tìm kiếm) học sinh, giáo viên, điểm. Bên cạnh đó có các chức năng khác như chat dành cho trao đổi thông tin giữa nhà trường và phụ huynh, xem tình hình học tập của học sinh. Giúp cho giáo viên có thể dễ dàng quản lý các thông tin của học sinh và phụ huynh có thể quản lý việc học của con em mình.
Cách website hoạt động:
Hình 48. Cách website hoạt động.
o Đầu tiên người dùng nhập vào trình duyệt một địa chỉ có dạng:
https://localhost:3000, thực ra bạn chỉ cần gõ localhost:3000 là trình duyệt sẽ tự hiểu và đổi thành đường dẫn ở trên.
o Trình duyệt gửi yêu cầu đến máy chủ DNS.
o Hệ thống DNS trả kết quả phân tích tên miền trong đường dẫn đã gửi, nó có địa chỉ máy chủ ví dụ như là 210.211.113.
o Sau khi nhận được địa chỉ IP – nơi lấy dữ liệu, trình duyệt sẽ tìm đến địa chỉ IP đã nhận – tức máy chủ chứa nội dung website.
o Máy chủ web nhận được yêu cầu truy xuất nội dung website và nó gửi một tập hợp các file bao gồm HTML, CSS, các tập tin đa phương tiện khác như âm thanh, hình ảnh (nếu có) cho trình duyệt.
o Trình duyệt biên dịch các file mà máy chủ đã gửi thành trang web mà chúng ta nhìn thấy trên màn hình.
Yêu cầu phần cứng:
o Bộ vi xử lý: Intel Dual Core hoặc cao hơn.
o Mạng: Máy tính cá nhân có kết nối mạng LAN.
o Bộ nhớ trong (RAM): 4GB hoặc tốt nhất là 4GB trở lên.
o Ổ đĩa cứng: 100GB trống hoặc nhiều hơn.
o Màn hình: Độ phân giải 1366x768 hoặc tốt hơn.
Yêu cầu phần mềm:
o Hệ điều hành Microsoft Windows 10 (64 bit).
o Visual Studio Code.
o Postman.
o Bộ gõ tiếng việt Unikey.
1.3. Phạm vi kiểm thử
Theo yêu cầu ứng dụng, đề tài quản lý trường phổ thông tập trung vào kiểm thử tất cả các chức năng và giao diện bên ngoài của website (trên các trình duyệt khác nhau như Firefox, Chrome, Microsoft Edge,...).
Không thực hiện kiểm thử mức độ hiệu suất ứng dụng, logic cơ sở dữ liệu.
1.4. Các ràng buộc về quy trình kiểm thử
Môi trường kiểm thử, các điều kiện liên quan.
STT Tài nguyên Mô tả
1 Máy chủ - Server cài đặt ứng dụng web được kiểm thử.
- Database Server.
2 Công cụ
- Postman dùng để kiểm thử các phương thức gửi dữ liệu lên website.
3 Mạng - Internet.
4 Máy tính Client - Có các trình duyệt (chrome, firefox, internet explorer,...) để truy cập website.
5 Các tài nguyên
khác - Tài khoản AWS (AWS Starter).
Bảng 0-16. Môi trường kiểm thử
Các ràng buộc về tài nguyên, lịch trình, công cụ.
o Sử dụng 3 dịch vụ trên Cloud Computing Platform với AWS:
Compute (EC2), Storage (S3), Database (DynamoDB).
o Sử dụng công cụ phát triển ứng dụng với Cloud Computing: Visual Studio Code.
o Sử dụng Node.js Platform để xây dựng được website kết hợp với DynamoDB.
o Sử dụng Socket.io Library để thực hiện việc trao đổi giao tiếp thông qua kênh chat ở thời gian thực.
1.5. Rủi ro
Rủi ro Giải pháp
Các thành viên trong nhóm thiếu các kỹ năng cần thiết để kiểm thử ứng
Tự học hỏi, tìm hiểu thêm, để nâng cao kỹ năng của các thành viên
dụng website. nhóm
Chưa có kinh nghiệm thực tế về thiết kế giao diện, giao diện chưa tối ưu, chưa dễ sử dụng đối với người dùng mới sử dụng.
Tìm hiểu thêm về cách thiết kế, học các trang web online.
Kế hoạch thực hiện đề tài trong thời gian ngắn, công việc cũng khá nhiều, công nghệ tiếp cận là mới nên rất khó để hoàn thành ứng dụng đúng hạn.
Đặt mức độ ưu tiên kiểm thử cho từng hoạt động kiểm thử.
Các thành viên trong nhóm chưa có kinh nghiệm về việc bảo mật trang web, vì vậy có thể dễ dàng bị mất dữ liệu và nhiều rủi ro khác.
Các thành viên tìm hiểu thêm về các cách bảo mật trang web cũng như là các phương thức tấn công mà website thường mắc phải.
Gặp khó khăn trong quá trình
thiết kế cơ sở dữ liệu. Tìm hiểu và tự học thêm.
Thiếu kinh nghiệm trong việc quản lý các dự án thực tế.
Học và tìm hiểu về môn quản lý dự án, áp dụng các kiến thức cần thiết vào ứng dụng.
Không có nhiều kinh nghiệm, hiểu biết về các nghiệp vụ quản lý trường học vì thế có thể thiếu sót một số test case chức năng.
Tìm kiếm các ứng dụng về quản lý trường học, học hỏi những nghiệp vụ quan trọng về quản lý trường học.
Bảng 0-17. Các rủi ro
1. Xem tình hình học tập
Khi phụ huynh hoặc học sinh nhập mã học sinh do trường cấp vào ô tìm kiếm trên hệ thống. Hệ thống sẽ trả về thông tin ứng với mã học sinh đó
4
- Nhập ký tự đặc biệt.
- Không nhập.
- Nhập đúng.
- Nhập mã học sinh không tồn tại.
2. Chat
Thực hiện việc trao đổi thông tin thông qua chatbox khi giáo viên phụ trách của nhà trường online trên hệ thống.
2
- Nhập câu lệnh truy xuất dữ liệu.
- Nhập ký tự, câu bình thường.
3. Nhập điểm Nhập điểm môn học cho từng học sinh trong danh sách học sinh theo từng lớp.
5
- Nhập số trong khoảng 0 đến 10.
- Nhập số < 0 - Nhập số >
10
- Không nhập.
- Nhập chữ, ký tự đặc biệt.
4. Cập nhật điểm
Cập nhật điểm môn học cho học sinh trong danh sách học sinh.
5
- Nhập số trong khoảng 0 đến 10.
- Nhập số < 0 - Nhập số >
10
- Không nhập.
- Nhập chữ, ký tự đặc biệt.
5.
Báo cáo thống kê xếp loại học sinh.
Giáo viên chọn năm học, học kỳ và lớp.
Nếu là admin có thể chọn phạm vi thống kê là toàn trường còn giáo viên giảng dạy lớp nào thì sẽ thống kê được lớp đó.
4
- Không chọn năm học.
- Không chọn học kì.
- Không chọn lớp.
- Chọn đầy đủ.
6. Báo cáo thống kê điểm học sinh
Giáo viên chọn năm học, học kỳ, lớp và môn học. Nếu là admin có thể chọn phạm vi thống kê là
4
- Không chọn năm học.
7. Thêm học sinh
Thêm thông tin học sinh bao gồm: mã học sinh(tự phát sinh), họ tên, địa chỉ, số điện thoại, giới tính, dân tộc.
6
- Nhập đúng yêu cầu tất cả thông tin cần thiết.
- Không nhập (không nhập tất cả thông tin, không nhập từng thông tin).
- Họ tên: nhập số, kí tự đặc biệt.
- Số điện thoại: nhập chữ, kí tự đặc biệt.
- Địa chỉ:
nhập kí tự đặc biệt (ngoại trừ:
“/”).
- Dân tộc:
nhập số, kí tự đặc biệt.
8. Cập nhật học sinh
Cập nhật thông tin học sinh khi có sự thay đổi về thông tin bao gồm: họ tên, địa chỉ, số điện thoại, giới tính, dân tộc, nhưng không thể thay đổi mã học sinh.
5
- Nhập đúng yêu cầu tất cả thông tin cần thiết.
- Không nhập (không nhập tất cả thông tin, không nhập từng thông tin).
- Họ tên: nhập số, kí tự đặc biệt.
- Số điện thoại: nhập chữ, kí tự đặc biệt.
- Địa chỉ:
nhập kí tự đặc biệt (ngoại trừ:
“/”).
9. Tìm kiếm học sinh
Tìm kiếm thông tin học sinh theo các trường thông tin của học sinh.
4
- Nhập đúng mã học sinh.
- Không nhập.
- Nhập kí tự đặc biệt.
- Nhập các câu lệnh truy xuất dữ liệu.
10. Thêm giáo viên
Thêm thông tin giáo viên bao gồm: mã giáo viên (tự phát sinh), họ tên, địa chỉ, số điện thoại, giới tính, dân tộc.
- Không nhập (không nhập tất cả thông tin, không nhập từng thông tin).
- Họ tên: nhập số, kí tự đặc biệt.
- Số điện thoại: nhập chữ, kí tự đặc biệt.
- Địa chỉ:
nhập kí tự đặc biệt (ngoại trừ:
“/”).
- Dân tộc:
nhập số, kí tự đặc biệt.
11. Cập nhật giáo viên
Cập nhật thông tin giáo viên khi có sự thay đổi về thông tin bao gồm: họ tên, địa chỉ, số điện thoại, giới tính, dân tộc, nhưng không thể thay đổi mã giáo viên.
6
- Nhập đúng yêu cầu tất cả thông tin cần thiết.
- Không nhập (không nhập tất cả thông
tin, không nhập từng thông tin).
- Họ tên: nhập số, kí tự đặc biệt.
- Số điện thoại: nhập chữ, kí tự đặc biệt.
- Địa chỉ:
nhập kí tự đặc biệt (ngoại trừ:
“/”).
- Nhập mật khẩu sai định dạng.
12. Tìm kiếm giáo viên
Tìm kiếm thông tin giáo viên theo các trường thông tin của giáo viên.
4
- Nhập đúng mã giáo viên.
- Không nhập.
- Nhập kí tự đặc biệt.
- Nhập các câu lệnh truy xuất dữ liệu.
13. Đăng nhập Nhập username, password để đăng nhập vào hệ thống.
4
- Nhập đúng
sai mật khẩu).
- Nhập câu lệnh truy xuất dữ liệu.
14. Phân công giảng dạy
Phân công giảng dạy môn học cho từng giáo viên dạy ở những lớp nào trong nhà trường trên danh sách các giáo viên đang dạy tại nhà trường.
3
- Không chọn môn dạy.
- Không chọn lớp dạy.
- Chọn đầy đủ.
Bảng 0-18. Danh sách các chức năng kiểm thử 2.2. Điều kiện chấp nhận
Danh sách các tiêu chí để xác định mức chất lượng kiểm thử là đủ để chuyển sang giai đoạn thử nghiệm tiếp theo:
Phạm vi bao phủ của Test (Test coverage): test toàn bộ các chức năng.
Test coverage thành công.
Số lượng các trường hợp kiểm thử:
o Đơn vị: 14.
o Tích hợp: 9.
o Các trường hợp thử nghiệm hệ thống: 0.
Số lượng lỗi/Trọng số lỗi: 60/62.
III. Kỹ thuật kiểm thử 3.1. Kiểm thử đơn vị
STT Tên thành viên thực
hiện Chức năng thực hiện
1 Phạm Nhựt Tân Thêm, cập nhật, tìm kiếm học sinh, giáo viên.
2 Trịnh Đức Duy Phân công giảng dạy, chat, nhập điểm, cập nhật điểm.
3 Lương Nguyễn Đức
Trọng
Đăng nhập, báo cáo thống kê (điểm, xếp loại), xem tình hình học tập.
3.2. Kiểm thử Module/chức năng
Mục tiêu Đảm bảo chức năng kiểm thử với mục tiêu thích hợp, bao gồm dữ liệu đầu vào, navigation, quá trình xử lý và kết quả nhận được
Kỹ thuật
Thực thi mỗi use case, luồng hoạt động cho use-case, hoặc chức năng, dùng dữ liệu đúng, dữ liệu không đúng để xác định:
- Kết quả mong muốn khi dữ liệu đưa vào là đúng.
- Các thông báo lỗi, cảnh báo hiển thị khi dữ liệu không chính xác đưa vào.
- Quy tắc nghiệp vụ áp dụng cho trường hợp test.
Tiêu chí hoàn thành chức năng
- Tất cả các kế hoạch kiểm thử cho chức năng được thực hiện - Phát hiện được các lỗi và chỉnh sửa các lỗi đã phát hiện.
Điều kiện
đặc biệt. - Xác định hoặc mô tả các mục hoặc vấn đề (bên trong hoặc bên ngoài) mà có ảnh hưởng đến việc triển khai và thực hiện kiểm
Mục tiêu
Để kiểm thử các vấn đề như di chuyển từ cửa sổ giao diện này sang cửa sổ giao diện khác, từ field này sang field khác khi dùng phím tab, phím enter hay di chuyển chuột hoặc các tổ hợp phím khác.
Kỹ thuật
Tạo hoặc sửa đổi các kiểm thử cho mỗi cửa sổ để xác minh điều hướng và trạng thái đối tượng thích hợp cho từng cửa sổ ứng dụng:
- Kiểm thử xác thực màn hình giao diện.
- Xác minh tất cả điều hướng.
- Kiểm tra khả năng sử dụng.
- Xác minh tính toàn vẹn dữ liệu.
- Xác minh trạng thái đối tượng.
Tiêu chí hoàn
thành chức năng
- Tất cả các vấn đề kiểm thử cho mỗi cửa sổ được xác minh thành công để duy trì sự phù hợp với phiên bản chuẩn trong thiết kế đã đưa ra hoặc có thể là trong tiêu chuẩn chấp nhận được.
Điều kiện đặc biệt
- Không thể để tất cả các thuộc tính cho các đối tượng và bên thứ ba có thể truy cập.
Bảng 0-20. Kiểm thử giao diện ứng dụng 3.4. Kiểm thử hệ thống
Kiểm thử hệ thống thuộc loại Black Box Testing, tức là chỉ có các tính năng làm việc bên ngoài của phần mềm được đánh giá trong quá trình kiểm thử này, nó không đòi hỏi bất kỳ kiến thức nội bộ nào về lập trình, thiết kế,... và hoàn toàn dựa trên quan điểm của người dùng.
Kiểm thử hệ thống được thực hiện khi hệ thống đã được tích hợp đầy đủ các chức năng bao gồm cả các thiết bị bên ngoài, kiểm thử các thành phần tương tác với nhau và với toàn bộ hệ thống.
Tạo kịch bản kiểm thử cuối cùng: Kiểm thử mọi đầu vào và đầu ra mong muốn.
Kiểm thử trải nghiệm của người sử dụng đối với ứng dụng.
1 Duy Nhóm trưởng
- Quản lý toàn bộ việc kiểm thử ứng dụng.
- Xác định tài
nguyên phù hợp cho việc kiểm thử
- Xây dựng và đảm bảo môi trường kiểm thử, tài nguyên được quản lý và duy trì.
- Hỗ trợ các thành viên sử dụng môi trường kiểm thử để thực hiện kiểm thử.
2 Tân Thành viên
- Thực hiện các test cases, test program, test suite...
- Phụ trách đảm bảo chất lượng cho ứng dụng phần
mềm/website.
3 Trọng Thành viên - Thực hiện các kiểm thử, log kết quả, báo cáo các lỗi.
- Kiểm thử để xác nhận xem quy trình kiểm thử có đáp ứng các yêu cầu đã được