Lời mở đầu Ngày nay, trong thời kỳ cách mạng công nghệ 4.0, với sự phát triển vũ bão của công nghệ thông tin thì nhu cầu về phần mềm đối với các cá nhân, tổ chức và xã hội ngày càng nâng cao. Trong khi đó, các doanh nghiệp sản xuất phần mềm cũng ngày càng đưa ra nhiều sản phẩm phần mềm phục vụ nhu cầu của người dùng. Tuy nhiên, để những phần mềm này đáp ứng một cách đúng và hiệu quả nhất đối với nhu cầu của người sử dụng, các doanh nghiệp sản xuất phần mềm cần phải có một quy trình sản xuất và đảm bảo chất lượng tốt cho phần mềm. Hơn thế nữa, có một chiến lược đảm bảo chất lượng phần mềm tốt giúp cho đội ngũ phát triển và vận hành đưa ra những quyết định đúng đắn để đảm bảo cho sự thành công chung của sản phẩm phần mềm.
Chính vì vậy, trong báo cáo này, chúng tôi sẽ thực hiện việc xây dựng chiến lược Đảm bảo chất lượng phần mềm cho hệ thống tìm kiếm việc làm 4.0 sử dụng công nghệ web (NodeJS, VueJS) và ứng dụng di động (React Native). Hệ thống cho phép những nhà tuyển dụng nhanh chóng tìm được nguồn nhân lực theo yêu cầu của doanh nghiệp cũng như dự án. Song song với đó, người tìm việc cũng tốn ít thời gian và công sức hơn để đạt được mục đích công việc mà mình mong muốn. Tất cả những bước từ thông báo tuyển dụng, ứng tuyển, nộp CV, thậm chí là phỏng vấn đều được thực hiện trên hệ thống trang web và ứng dụng di động.
Điều này không những giúp việc tuyển dụng tốn ít thời gian công sức hơn mà còn giảm thiểu tiếp xúc gần và tập trung đông người trong thời kỳ bình thường mới và con người phải sống chung với dịch bệnh Covid-19. Đây không phải là một chủ đề mới, tuy nhiên nhóm chúng tôi mong rằng, việc kết hợp chủ đề này với những kiến thức của học phần “Đảm bảo chất lượng phần mềm” sẽ giúp chúng tôi có thể hiểu được tầm quan trọng của Đảm bảo chất lượng trong quy trình phát triển phần mềm. Góp phần vào sự phát triển của ngành công nghệ phần mềm tại Việt Nam nói riêng và thế giới nói chung. Nhóm 1 lớp 17PFIEV3 Tieu luan 4 Đảm bảo chất lượng phần mềm 3.
Phân chia công việc STT Họ và Tên Công việc thực hiện Ghi chú - Tìm hiểu và đóng góp lý thuyết 1 Nguyễn Viết Danh - Thực hiện Usecase “Quản lý công việc” - Đóng góp thực hiện báo cáo - Tìm hiểu lý thuyết 2 Nguyễn Văn Đạt - Thực hiện Usecase “Tìm kiếm và apply CV” - Đóng góp thực hiện báo cáo - Tìm hiểu và đóng góp lý thuyết 3 Lê Văn Đức - Thực hiện Usecase “Quản lý người dùng” - Đóng góp thực hiện báo cáo - Thực hiện phần Cơ sở lý thuyết 4 Lê Đức Lương - Thực hiện Usecase “Đăng ký” - Đóng góp thực hiện báo cáo - Tìm hiểu và đóng góp lý thuyết 5 Ngô Hoàng Minh - Thực hiện Usecase “Đăng nhập” - Thực hiện báo cáo Tieu luan Nhóm 1 – 17 PFIEV3 5 4. Cơ sở lý thuyết Đảm bảo chất lượng phần mềm 4. Ý nghĩa của Đảm bảo chất lượng phần mềm Là bao gồm các hoạt động, quy trình nhằm hoạt động phát triển phần mềm tuân thủ các quy trình áp dụng cho dự án, tuân thủ phương thức, các hoạt động. Là hoạt động giám sát việc tuân thủ của quy trình phát triển phần mềm theo đúng các quy chuẩn ví dụ như ISO 900, CMMI model, ISO 15504.
Đảm bảo chất lượng phần mềm là các hoạt động nhằm mục tiêu là sản xuất ra phần mềm có chất lượng cao hơn. Phải đảm bảo chất lượng phần mềm vì: ❖ Từ nhu cầu của khác hàng. ❖ Từ nhà sản xuất: đảm bảo tính đồng đều của sản phầm làm ra ❖ Giúp nhà phân tích có được đặc ta chất lượng cao.- Giúp nhà thiết kế có được thiết kế chất lượng cao. ❖ Theo dỗi chất lượng phần mềm ❖ Đánh giá ảnh hưởng của thay đổi về phương pháp luận và thủ tục lên chất lượng phần mềm.
❖ SQA có những lợi ích sau: - Phần mềm có ít các khiếm khuyết tiềm ẩn hơn và do đó mất ít công sức và thời gian kiểm thử và bảo trì. - Độ tin cậy cao hơn và do đó khác hàng thỏa mãn hơn - Giảm phí tổn bảo trì. - Giảm phí tỏn tổng thể toàn bộ vòng đời của phần mềm ❖ SQA đóng vai trò trong một doanh nghiệp phát triển phần mềm ❖ Đảm bảo chất lượng là một hoạt đọng cốt yêu trong bất kì một doanh nghiệp nào làm ra sản phẩm được người khác dùng. Các hoạt động cơ bản Lập kế hoạch (creating an SOA Management Plan): Đưa ra kế hoạch đầy đủ chi tiết về việc chúng ta cần làm việc gì vào thời điểm nào… Output của hoạt động đấy là gì dựa qua output để đánh giá kế hoạch đó thành công hay k.
Thiết lập các checkpoint (setting the checkpoint): Cần xác định thời điểm trong quá trình để xem xét mình đang làm đúng hay sai để sửa lại cách làm việc. Sử dụng các kĩ thuật (Apply Software Engineering Techniques): Sử dụng các kĩ thuật giúp đẩy nhanh quá trình đảm bảo chất lượng. Review về technical (excuting Formal Technical Reviews): Giúp sớm phát hiện ra lỗi, hay các vấn đề mà không phù hợp của sản phẩm trong quá trình thực hiện Đưa ra chiến lược test khác nhau (Having a Multi-Testing Strategy): Chiến lược test dựa vào các loại. Chiến lược phân tích, chiến lược về model, chiến lược về mô hình - Analytical strategy Tieu luan 6 Đảm bảo chất lượng phần mềm - Model based strategy - Methodical strategy - Standards compliant or Process compliant strategy - Reactive strategy - Consultative strategy - Regression averse strategy Đảm bảo việc tuân thủ (Enforcing Process compliance): Tuân thủ quy trình phần mềm.
Có 2 hoạt động chính: ❖ Đánh giá sản phẩm (product Evaluation) - Người ta sẽ đánh giá phần mềm có đúng với yêu cầu chúng ta đã đề ra lúc đầu từ đó phát ra điểm sai lệch so với yêu cầu. - Đánh giá từng thời điểm trong quá trình phát triển sản phẩm ❖ Giám sát quy trình (process Monitoring) Kiểm soát sự thay đổi (controlling Change) Đo lường sự thay đổi (measure change Impact) Performing SQA Audits: Giúp kiểm tra sản phẩm có tuân thủ theo quy trình hay không. Đảm bảo tính tổ chức dự án. Tổ chức các Record và report (maintaining Records and Reports) Giữ mối quan hệ giữa QA và team Phát triển phần mềm 4.
Các kỹ thuật Đảm bảo chất lượng Phần mềm Các kỹ thuật kiểm thử cơ bản ❖ Kiểm thử hộp đen: Là một phương pháp kiểm thử phần mềm được thực hiện mà không biết được cấu tạo bên trong của phần mềm, là cách mà các tester kiểm tra xem hệ thống như một chiếc hộp đen, không có cách nào nhìn thấy bên trong của cái hộp. ❖ Kiểm thử hộp trắng: Kiểm thử hộp trắng (While box test) là phương pháp thử nghiệm phần mềm, trong đó các thiết kế, cấu trúc giải thuật bên trong, và việc thực hiện các công việc đều được biết đến ❖ Kiểm thử tăng tiến: Hay còn gọi là Kiểm thử tích hợp tăng tiến, là một trong các phương pháp thực hiện Kiểm thử tích hợp, trong đó có sự kết hợp của các nguyên lý và khái niệm căn bản. Kĩ thuật này giống như là sự kết hợp giữa hai phương pháp Kiểm thử đơn vị (Module Testing) và kiểm thử tích hợp. Tieu luan Nhóm 1 – 17 PFIEV3 7 Khi thực hiện kĩ thuật test này, chúng ta sẽ kiểm thử từng module riêng biệt trong giai đoạn kiểm thử đơn vị (unit).
Sau đó, các module sẽ được tích hợp dần dần vào và kiểm tra kĩ càng, để đảm bảo rằng, giao tiếp (interface) và tương tác giữa các module được mượt mà. ❖ Thread Testing: Thread Testing là một kỹ thuật test phần mềm được sử dụng trong giai đoạn test integration để kiểm tra khả năng hoạt động của các chức năng chính. Loại kỹ thuật này rất hữu ích khi test ứng dụng có sử dụng kiến trúc client server. Được thực hiện bởi các tester.
Bảng tổng hợp các kỹ thuật test được sử dụng theo từng giai đoạn White box Black box Incremental Thread Unit Testing Integration Testing System Testing Acceptance Testing Tieu luan 8 Đảm bảo chất lượng phần mềm 5. Giới thiệu về Dự án 5. Đối tượng và mô tả tổng quan các đối tượng. Ứng dụng gồm có 4 đối tượng chính: - Admin (quản trị viên): người có quyền cao nhất trong hệ thống.
Admin thực hiện các chức năng quản lý người dùng; quản lý, kiểm duyệt nội dung; ngoài ra, admin còn có trách nhiệm thực hiện theo dõi an ninh, bảo mật hệ thống cũng như cài đặt, cấu hình và quản lý các công cụ và dịch vụ của hệ thống. - Contributor (nhà tuyển dụng): Khi nhà tuyển dụng đăng ký và được hệ thống xác nhận thì họ có thể quản lý, chỉnh sửa thông tin của công ty; đăng bài tuyển dụng; quản lý bài đăng tuyển dụng; quản lý các bài ứng tuyển vào của người xin việc. - User (người sử dụng): là những người đi tìm kiếm công việc trong hệ thống. Sau khi đăng ký và đăng nhập, họ có thể thay đổi thông tin cá nhân, gửi CV tới các bài đăng tuyển dụng và quản lý những công việc đã ứng tuyển.
- Guest (khách): là những người chưa đăng ký cũng như đăng nhập vào hệ thống, họ có thể xem các bài đăng tuyển dụng nhưng để nộp CV và thực hiện các chứ năng khác thì họ cần đăng ký tài khoản và đăng nhập vào hệ thống. Mô tả chức năng 5. Dành cho admin ❖ Đăng nhập dưới quyền admin: - Phải thực hiện đăng nhập bằng tài khoản Admin thì mới có thể sử dụng toàn bộ các chức năng và quyền lợi mà vai trò này sở hữu. ❖ Quản lý thông tin người dùng: - Admin có quyền xem, thêm, sửa, xóa, tìm kiếm một tài khoản người dùng.
- Admin còn có thể cấp quyền cho người dùng. - Admin xác nhận thông tin đến từ một công ty và có thể chấp nhận 1 đăng ký đến từ công ty đó. Sau đó, một email sẽ được gửi từ hệ thống để cung cấp mật khẩu cho tài khoản công ty vừa đăng ký. ❖ Quản lý thông tin của công việc - Admin có thể xem, sửa, xóa, tìm kiếm một công việc bất kì đã tồn tại trong hệ thống.
- Khi Admin nhận được 1 yêu cầu đăng bài từ 1 công ty, admin có thể chấp nhận hoặc từ chối bài đăng tuyển dụng sau khi xác nhận những thông tin là đúng.