1. Trang chủ
  2. » Luận Văn - Báo Cáo

(Tiểu Luận Môn Học) Hệ Thống Testing Online - Kiểm Tra Kỹ Năng Ứng Viên.pdf

29 3 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Hệ Thống Testing Online - Kiểm Tra Kỹ Năng Ứng Viên
Tác giả Nguyễn Tùng Lâm, Nguyễn Hoàng Yến
Người hướng dẫn Phạm Khắc Hoài Nam
Trường học Trường Đại Học Khoa Học Tự Nhiên Hà Nội
Chuyên ngành Hệ Thống Thông Tin
Thể loại Báo cáo môn học
Năm xuất bản 2022
Thành phố Hà Nội
Định dạng
Số trang 29
Dung lượng 1,02 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Báo cáo th�c hành T2 5/2022 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA TOÁN – CƠ – TIN HỌC **** BÁO CÁO MÔN HỌC PHÂN TÍCH THIẾT KẾ HỆ THỐNG THÔNG TIN Đề tài Hệ thống Testing Online[.]

Trang 1

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN

KHOA TOÁN – CƠ – TIN HỌC

Sinh viên thực hiện: K62A3 Nguyễn Tùng Lâm (17000026)

K63A2 Nguyễn Hoàng Yến (18001016)

Trang 2

Lời nói đầu

Để hoàn thành kỳ thực tập cũng như báo cáo này, ngoài sự nỗ lực phấn đấu củabản thân thì một phần không nhỏ đóng góp nên thành công ấy là nhờ sự hướngdẫn tận tình của các thầy cô trong trường Đại học Khoa học Tự Nhiên Hà Nội,cùng với sự giúp đỡ nhiệt tình từ các anh/chị tại Công ty Cổ phần Giải phápthanh toán VNPay Đầu tiên chúng em xin gửi lời cảm ơn chân thành đến

thầy/cô trong khoa Toán – Cơ – Tin học đã kết nối tạo điều kiện thuận lợi nhất

để em được tiếp nhận thực tập tại công ty Tiếp theo, em cũng xin gửi lời cảm

ơn sâu sắc đến các anh/chị trong công ty VNPAY, đặc biệt là anh Đỗ Vũ Tuấn,anh Phạm Khắc Hoài Nam, anh Quang Hà và anh Bình Jax – những người đãtrực tiếp hướng dẫn chúng em Trong thời gian thực tập, mặc dù công việc bậnrộn nhưng các anh/chị luôn tận tình hướng dẫn cũng như giải đáp các thắc mắctrong công việc Cuối cùng, chúng em xin gửi lời cảm ơn đến gia đình, bạn bè

đã động viên, đóng góp ý kiến và giúp đỡ trong quá trình học tập, nghiên cứuhoàn thành kỳ thực tập này Kỳ thực tập đã mang tới cho chúng em hiểu biết,quá trình, kiến thức về Môn học “Phân tích thiết kế hệ thống”, hiểu thế nào đểphát triển một phần mềm, các giai đoạn để hình thành lên ý tưởng cho đến phầnmềm được triển khai đến người sử dụng Quá trình thực tập, tham gia và học hỏinày sẽ còn giúp chúng em không chỉ là việc học tập mà còn sẽ định hình ngànhnghề trong tương lai tới

Tuy nhiên, do thời gian có hạn và năng lực còn hạn chế nên chúng em không thểtránh khỏi những thiếu sót Chính vì vậy, em rất mong nhận được sự góp ý từcác thầy/cô và các bạn để học hỏi thêm và tiếp tục hoàn thiện đề tài của mình.Chúng em xin chân thành cảm ơn!

Hà Nội, tháng 5 năm 2022

Trang 4

I Giới thiệu

1 Mục tiêu

Một hệ thống test online thay thế cho cách test trực tiếp, có các chức năngdành cho nhân sự tuyển dụng để sau khi thảo luận kế hoạch với phòngban và ứng viên họ có thể tạo mới, cài đặt, chỉnh sửa các kế hoạch test vàcác bài test cho các ứng viên apply vào công ty Kết quả làm bài của ứngviên sẽ được nhân sự đại diện của phòng ban chấm điểm trên hệ thống

2 Yêu cầu

- Hiển thị các lịch test dự kiến theo hai dạng: bảng và lịch

- Hệ thống bao gồm 3 loại bài test: test Tiếng anh, test Kiến thứcchung, test Kỹ năng code và 2 dạng câu hỏi: trắc nghiệm, tự luận.Phân bổ theo các cấp độ mà ứng viên ứng tuyển

- Các bài test đều có thể set up thời gian làm bài

- Chỉ các nhân sự phòng ban mà ứng viên ứng tuyển mới có quyềnchấm cho ứng viên đó trên hệ thống

- Ứng viên tham gia test đăng nhập bằng một mã code được gửi quaGmail/SMS

- Tái sử dụng được các câu hỏi

- Giảm thiểu rủi ro việc ứng viên trong quá trình test ứng viên có thểsao lưu lại nội dung test để đảm bảo an toàn thông tin quy trìnhtuyển dụng

- Dễ dàng phát hiện và sửa lỗi hơn.

- JS hoạt động trên nhiều trình duyệt, nền tảng.

- Kiểm tra input và giảm thiểu việc kiểm tra thủ công khi truy xuất qua

database Giúp website tương tác tốt hơn với khách truy cập.

Trang 5

- Nhanh và nhẹ hơn một số ngôn ngữ lập trình khác.

Nhược điểm :

- Dễ bị khai thác.

- Không có khả năng xử lí đa luồng.

- Chỉ chạy được trong trình duyệt web.

- Dễ bị sử dụng để thực thi mã độc trên máy người sử dụng.

b) NodeJs

NodeJS là một nền tảng được xây dựng trên “V8 Javascript engine” đượcviết bằng c++ và Javascript Nền tảng này được phát triển bởi RyanLienhart Dahl vào năm 2009

Node.js ra đời khi các developer đời đầu của JavaScript mở rộng nó từmột thứ bạn chỉ chạy được trên trình duyệt thành một thứ bạn có thể chạytrên máy của mình dưới dạng ứng dụng độc lập

Ưu điểm :

- Có tốc độ xử lý nhanh nhờ cơ chế xử lý bất đồng bộ (non-blocking) Bạn có thể dễ dàng xử lý hàng ngàn kết nối trong khoảng thời gian ngắn nhất.

- Giúp bạn dễ dàng mở rộng khi có nhu cầu phát triển website.

- Nhận và xử lý nhiều kết nối chỉ với một single-thread Nhờ đó, hệ thống xử lý

sẽ sử dụng ít lượng RAM nhất và giúp quá trình xử Nodejs lý nhanh hơn rất nhiều.

- Có khả năng xử lý nhiều Request/s cùng một lúc trong thời gian ngắn nhất Có khả năng xử lý hàng ngàn Process cho hiệu suất đạt mức tối ưu nhất.

- Phù hợp để xây dựng những ứng dụng thời gian thực như các ứng dụng chat, mạng xã hội

Nhược điểm :

- Nodejs gây hao tốn tài nguyên và thời gian Nodejs được viết bằng C++ và JavaScript nên khi xử lý cần phải trải qua một quá trình biên dịch Nếu bạn cần xử

lý những ứng dụng tốn tài nguyên CPU thì không nên sử dụng Nodejs.

- Nodejs so với các ngôn ngữ khác như PHP, Ruby và Python sẽ không có sự chênh lệch quá nhiều Nodejs có thể sẽ phù hợp với việc phát triển ứng dụng mới Tuy nhiên khi xây dựng và triển khai dự án quan trọng thì Nodejs không phải là sự lựa chọn hoàn hảo nhất.

c) Java

Java là một ngôn ngữ lập trình có mục đích chung và hướng đối tượngđược phát triển cho môi trường phân tán và phát triển phần mềm cho cácthiết bị điện tử tiêu dùng như TV, VCR, Ngôn ngữ lập trình Java là mộtngôn ngữ độc lập với nền tảng, có nghĩa là không có giới hạn đối với bất

kỳ phần cứng hoặc hệ điều hành cụ thể nào Nó cung cấp cho người dùng

cơ sở để 'viết một lần, chạy ở mọi nơi Nhiều hệ điều hành như Sun

Solaris, RedHat, Windows, v.v., hỗ trợ Java

Trang 6

Ưu điểm :

- Java là nền tảng độc lập vì chúng ta có thể chạy mã Java trên bất kỳ máy nào

mà không cần cài đặt bất kỳ phần mềm đặc biệt nào, JVM thực hiện điều đó Cung cấp sẵn các thư viện.

- Java là hướng đối tượng vì các lớp và đối tượng của nó.

- Lý do chính để Java được bảo mật là con trỏ, Java không sử dụng con trỏ.

- Trong Java, chúng ta có thể thực thi nhiều chương trình đồng thời, do đó, có thể đạt được đa luồng.

- Java mạnh mẽ vì nó có nhiều tính năng như thu gom rác, không sử dụng con trỏ rõ ràng, xử lý ngoại lệ.

- Java là một ngôn ngữ cấp cao giúp nó dễ hiểu.

- Quản lý bộ nhớ hiệu quả được thực hiện bằng Ngôn ngữ lập trình Java.

Nhược điểm :

- Là một ngôn ngữ cấp cao, nó phải xử lý các cấp độ biên dịch và trừu tượng của một máy ảo Java thể hiện hiệu suất kém, nguyên nhân chính là do bộ thu gom rác, cấu hình bộ nhớ đệm không hợp lệ và bế tắc giữa các quy trình.Không hỗ trợ thự viện GUI.

- Java có rất ít trình tạo GUI – Swing, SWT, JSF và JavaFX trong số những trình xây dựng phổ biến hơn.Fix bug gặp nhiều khó khăn.

- Để viết mã để thực hiện một tập hợp các hoạt động đơn giản, bạn có thể phải viết những đoạn mã dài và phức tạp Điều này có thể ảnh hưởng đến khả năng đọc nhưng đảm bảo rằng các lập trình viên nhập chính xác những gì cần phải làm.

d) PostgreSQL

PostgreSQL là một hệ thống quản trị cơ sở dữ liệu quan hệ-đối tượng(object-relational database management system) có mục đích chung, hệthống cơ sở dữ liệu mã nguồn mở tiên tiến nhất hiện nay

Ưu điểm :

- Có thể chạy các trang web và ứng dụng web động với LAMP.

- Một cơ sở dữ liệu có khả năng chịu lỗi cao.

- Có sẵn miễn phí theo giấy phép nguồn mở.

- Hỗ trợ các đối tượng địa lý để bạn có thể sử dụng nó cho các dịch vụ dựa trên

vị trí Hạn chế việc bảo trì hệ thống.

Nhược điểm :

Nhiều ứng dụng nguồn mở hỗ trợ MySQL, nhưng có thể không hỗ trợ PostgreSQL.

Về số liệu hiệu suất, nó chậm hơn MySQL.

e) Docker

Docker là nền tảng phần mềm cho phép bạn dựng, kiểm thử và triểnkhai ứng dụng một cách nhanh chóng Docker đóng gói phần mềm vàocác đơn vị tiêu chuẩn hóa được gọi là container có mọi thứ mà phầnmềm cần để chạy, trong đó có thư viện, công cụ hệ thống, mã và thời

Trang 7

gian chạy Bằng cách sử dụng Docker, bạn có thể nhanh chóng triển khai

và thay đổi quy mô ứng dụng vào bất kỳ môi trường nào và biết chắcrằng mã của bạn sẽ chạy được

Ưu điểm :

- Thiết lập ban đầu hiệu quả và dễ dàng

- Cho phép theo dõi các biên bản vùng chứa để kiểm tra các biến thể

- Giảm sự cố khi đưa lên sản phẩm

Định dạng JSON sử dụng các cặp key – value để dữ liệu sử dụng Nó hỗtrợ các cấu trúc dữ liệu như đối tượng và mảng

- Cấu trúc JSON rất đơn giản và dễ đọc Bất kể ngôn ngữ lập trình bạn đang sử dụng là gì, bạn vẫn có thể dễ dàng ánh xạ các miền đối tượng.

- JSON sử dụng cấu trúc dữ liệu bản đồ, trong khi XML tuân theo cấu trúc cây Các cặp Key-Value bị giới hạn nhiệm vụ nhưng tạo điều kiện thuận lợi cho mô hình

dự đoán và tương đối dễ hiểu.

Nhược điểm

Vì không có schema, bạn có thể linh hoạt để trình bày dữ liệu theo bất kỳ cách nào bạn muốn Nhưng ngược lại, bạn có thể vô tình tạo ra dạng dữ liệu bị sai

Do JSON sử dụng định dạng Số thực dấu phẩy động IEEE-754 Điều này làm bạn

không thể tận dụng các loại số đa dạng và nhiều sắc thái có sẵn trong nhiều ngôn ngữ lập trình Thiếu sót này có nghĩa khiến các nhà phát triển phải sử dụng chuỗi biểu thị ngày, dẫn đến sự khác biệt về định dạng hoặc phải biểu diễn ngày ở dạng mili giây Điều này khiến bạn không thể yêu cầu tài liệu bổ sung và tăng khả năng hiểu nhầm.

Trang 8

Mặc dù JSON ngắn hơn XML, nhưng đây vẫn chưa phải là định dạng trao đổi dữ liệu ngắn gọn nhất Vì vậy, đối với các dịch vụ có khối lượng lớn hoặc có mục đích đặc biệt, bạn sẽ muốn sử dụng các định dạng dữ liệu hiệu quả hơn là JSON.

g) Postman

Postman là một công cụ cho phép chúng ta thao tác với API, phổ biến nhất là REST Postman hiện là một trong những công cụ phổ biến nhất được sử dụng trong thử nghiệm các API Với Postman, ta có thể gọi Rest API mà không cần viết dòng code nào.

Postman hỗ trợ tất cả các phương thức HTTP (GET, POST, PUT, PATCH, DELETE,

…) Bên cạnh đó, nó còn cho phép lưu lại lịch sử các lần request, rất tiện cho việc sử dụng lại khi cần.

- Postman có thể hỗ trợ cho cả RESTful services và SOAP services

- Postman đem đến chức năng giúp tài liệu API.

Nhược điểm

Bên cạnh những ưu điểm trên thì Postman còn có một số hạn chế nhất định.

Đó chính là những bản phải trả phí, Postman có thể hỗ trợ cho người sử

dụng các tính năng có thể nâng cao trình độ làm việc của nhóm, giúp hỗ trợ

trực tiếp… Điều này tạo ra sự bất tiện cho người dùng vì mất một khoản

chi phí không nhỏ chỉ để dùng thêm những tính năng của Postman.

4 Công việc triển khai

Phân tích yêu cầu Thu thập và phân tích yêu cầu, vẽ

các biểu đồ mô tả cho hệ thốngPhát hiện các thực thể trên hệ

thống Phân tích, thiết kế mối liên quancủa các thực thể trong hệ thốngThiết kế giao diện hệ thống bằng

tool Figma Mockup giao diện (bao gồm cácmàn hình chính, popup, cửa sổ

lỗi)

Xây dựng Front-end và Back-end Đã thể hiện trên Demo

Deploy

Trang 9

II Phân tích - thiết kế hệ thống

1 Phân tích yêu cầu

a Tác nhân (Actor) trong hệ thống:

b Quy trình nghiệp vụ trong hệ thống

Dựa vào các giai đoạn chuẩn bị, trong và sau khi hoàn thành bài test, quytrình hệ thống được tóm tắt như sau:

1 Set up kế

hoạch test trong hệ thống

Nhân sự (tuyển dụng)/Nhân sự (phòng ban)

Set up lịch test - Khung giờdự kiến

- Họ tên

- Email/SMS

- Vị trí ứng tuyển

- Trình độ (level)

Thông tin ứng viên

Nhân sự (phòng ban) Set up bàitest - Nội dungcâu hỏi

- Thời gian quy định

- Khung điểm

Bài test

Trang 10

2 Tiến hành

bài test Ứng viên Làm cácbài test

- Tiếng Anh

- Kiến thức chung

- Đăng nhập hệ thống bằng mã: Ứng viên sử dụng mã được gửi quaEmail/SMS để đăng nhập hệ thống

- Làm bài test: Thực hiện các bài test trong thời gian hợp lệ của bài test

Các chức năng của actor Nhân sự:

- Đăng nhập hệ thống bằng tài khoản: Sử dụng username-password đượcthiết lập để đăng nhập trên hệ thống

Trang 11

- Quản lý ứng viên: Bao gồm thêm/sửa/xóa thông tin ứng viên (Tên,

Email/SMS vị trí ứng tuyển, level, lịch làm bài, bài test tương ứng)

- Set up bài test: Bao gồm thêm/sửa/xóa câu hỏi, bài test, set thời gian làmbài test

- Chấm điểm bài làm

Biểu đồ Trình tự cho chức năng làm bài

Ứng viên tham gia bài test bắt đầu bằng việc đăng nhập vào hệ thống bằng mã

đã nhận Hệ thống sau khi kiểm tra mã sẽ đưa ra 2 trường hợp:

- Mã đã nhập là hợp lệ: Chuyển sang màn hình bài làm và bắt đầu đếm thờigian làm bài trong hệ thống Bài làm trong thời gian hợp lệ được lưu trữcho tới khi ghi nhận kết thúc (chuyển sang màn kết thúc), khi thời gianlàm bài kết thúc hệ thống làm sẽ thoát và chuyển sang màn kết thúc

- Mã đã nhận không hợp lệ: Không cho đăng nhập vào hệ thống (vẫn ởmàn đăng nhập)

Trang 12

Biểu đồ Trình tự cho chức năng chỉnh sửa lịch test

Màn hình Lịch test thể hiện các dữ kiện liên quan đến kế hoạch test của phòngban, bao gồm các thông tin về actor Ứng viên (Tên, Email/SMS vị trí ứngtuyển, level, lịch làm bài, bài test tương ứng), thời gian các ứng viên sẽ test(trong ba trạng thái “Sắp tới”, “Hôm nay”, “Quá hạn”)

Khi muốn chỉnh sửa thông tin của ứng viên, actor Nhân sự trước hết phải đăngnhập theo account đã lập, tới màn hình lịch test Hành động Thêm/sửa/xóa vềthông tin ứng viên hay lịch sẽ được Hệ thống thu nhận và kiểm tra hợp lệ(Thông tin chỉnh sửa có hợp lệ theo định dạng hay không), sau đó sẽ hiển thịcửa sổ lỗi (nếu sai) hoặc duyệt và hiển thị cập nhật lại trên màn lịch test

Trang 13

Biểu đồ Trình tự cho chức năng chấm điểm các bài làm

Màn hình Đã hoàn thành thể hiện các bài làm mà ứng viên đã làm

Khi muốn chấm điểm cho bài làm của ứng viên, actor Nhân sự (với điều kiệnphải có cùng phòng ban với ứng viên) trước hết phải đăng nhập theo account đãlập, tới màn hình Đã hoàn thành Hành động chấm điểm sẽ được Hệ thống thunhận và hiển thị theo dạng chart

Trang 14

Biểu đồ Trình tự cho chức năng set up các bài test

Màn hình Câu hỏi thể hiện các dữ kiện liên quan đến câu hỏi/bài test (Loại câuhỏi, phạm vi câu hỏi, cấp độ câu hỏi, Tên bài test, cấp độ bài test, thời gian bàitest, Mã ứng viên tham gia bài test)

Khi muốn chỉnh sửa thông tin của ứng viên, actor Nhân sự trước hết phải đăngnhập theo account đã lập, tới Câu hỏi Hành động Thêm/sửa/xóa về câu hỏi/bàitest sẽ được Hệ thống thu nhận và kiểm tra hợp lệ (Thông tin chỉnh sửa có hợp

lệ theo định dạng hay không), sau đó sẽ hiển thị cửa sổ lỗi (nếu sai) hoặc duyệt

và hiển thị cập nhật lại trên màn Câu hỏi

Trang 15

Biểu đồ trạng thái của Ứng viên từ khi được thêm

tới khi hoàn thành ứng tuyển

Trang 16

viênphone: varchar(255) Số điện thoại của ứng

viênposition: varchar(255) Vị trí ứng tuyểnavatar: varchar(255)

id_level (FK): int Mã level ứng tuyểnis_done: int Trạng thái bài test

Trang 17

english_mark: double Điểm bài test tiếng

anhcoding_mark: double Điểm bài test kỹ năng

codingknowledge_mark:

subjects

Mỗi thực thể là một

loại bài test

ID (PK): int Mã loại bài testname: varchar(255) Tên loại bài test

question

Mỗi thực thể đại diện

cho các câu hỏi

ID (PK): int Mã câu hỏicontent: varchar(255) Nội dung câu hỏiimg: varchar(255) Hình ảnh

id_level (FK): int Mã cấp độ cho câu hỏiid_subject (FK): int Mã loại câu hỏi

id_type (FK): int Mã kiểu câu hỏi

question_type

Mỗi thực thể là một

kiểu câu hỏi

ID (PK): int Mã kiểu câu hỏiname: varchar(255) Tên kiểu câu hỏi

mc_question ID (PK): int Mã câu hỏi

Trang 18

câu hỏi dạng tự luận

ID (PK): int Mã câu hỏianswer: varchar(255) Câu trả lờiquestion_id (FK): int Mã câu hỏi

test_question

Mỗi thực thể đại diện

cho các câu hỏi trong

Mỗi thực thể đại diện

cho kết quả từng bài

test của ứng viên

ID (PK): Long Mã kết quảanswer: varchar(255) Câu trả lờiid_answer: int Mã câu trả lờiid_candidate: int Mã ứng viên

varchar(255) Phòng ban của nhânviênemail: varchar(255) Địa chỉ email của

nhân viênusername:

Trang 19

image: varchar(255)role: varchar(255) Chức vụ

3 Thiết kế giao diện hệ thống bằng tool Figma

Link demo bằng Figma:

https://www.figma.com/proto/de5QiA7TUgxKwzrSagJUwu/Testing-Online?node-id=97%3A1890&sc aling=min-zoom&page-id=0%3A1&starting-point-node-id=2%3A2

Tác dụng:

- Rõ ràng được các yêu cầu về hệ thống

- Thể hiện được cách sắp xếp các chức năng trong hệ thống

- Hiển thị hóa luồng hoạt động trong hệ thống

- Giúp cho việc xây dựng FE, BE được trở nên dễ dàng hơn

Màn hình đăng nhập

Ngày đăng: 18/04/2023, 10:16

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w