PHÁT TRIỂN PHẦN MỀM THEO LỚP BÀI TOÁN QUẢN LÝ NHÂN SỰ CHO MỘT CƠ QUAN DOANH NGHIỆP THEO CÔNG NGHỆ PHẦN MỀM
I THIỆU
Tổng quan về đê tài
Cổ phần đầu tƣ công nghệ Thiên Hoàng hoạt động trong lĩnh vực công nghệ và dịch vụ liên quan đến máy tính ƣợc thành lập từ 2020 ban đầu với phân xưởng nhỏ vài công nhân, nhân viên, ít chiếc máy để sản xuất đến nay đã hiện đại hóa thành nhà máy với dây chuyền sản xuất tiên tiến, máy móc hiện đại… tuy nhiên cũng cần số lƣợng công nhân và nhân viên đáng kể (50 người) để điều khiển vận hành các máy này, cũng như một số viêc phải làm tay nhƣ: công đoạn kiểm tra,vận chuyển các thiết bị Số lƣợng nhân công không hề nhỏ nhƣng hiện tại chƣa áp dụng phần mềm vào việc quản lý thông tin nhân sự tại công ty Nên quản lý công ty mong muốn có phần mềm quản lý thông tin nhân sự tại công ty.
Giới thiệu bài toán
Bài toán Quản lý nhân sự đặt ra các vấn đề cơ bản nhƣ sau: Thể hiện đƣợc mô hình tổ chức quản lý nhân viên theo chức vụ, theo trình độ văn hóa, theo trình độ ngoại ngữ… Hệ thống còn phải cho phép tạo ra các báo cáo từ lí lịch Nhằm phục vụ công tác điều hành nhân viên và sắp xếp lịch cho nhân viên làm việc một cách khoa học và đạt hiệu quả cao nhất In Danh sách nhân viên, in danh mục chức vụ, in danh mục tỉnh thành…
Bài toán đặt ra cho công ty là tìm cách tổ chức một hệ thống mới quản lý thông tin nhân sự công ty một cách chặt chẽ nhế Hệ thống mới phải làm sao giải quyết đƣợc các vấn đề nêu trên, phù hợp với điều kiện của công ty
Quản lý thông tin nhân sự là một nhiệm vụ quan trọng, bao gồm các khía cạnh như quản lý lương nhân viên, hồ sơ nhân viên, lương, hợp đồng lao động, chức vụ, phòng ban, bảo hiểm và tuyển dụng.
Mục tiêu đề tài
Phần mềm quản lý nhân sự là giải pháp hiệu quả cho việc quản lý thông tin hồ sơ nhân viên, lương nhân viên và nhiều thông tin khác Với giao diện thân thiện, thao tác đơn giản, phần mềm giúp tiết kiệm thời gian, tăng hiệu quả công việc và hỗ trợ tối ưu quá trình quản lý.
Mục tiêu là xây dựng một hệ thống quản lý bán hàng mới hiệu quả, dễ sử dụng và phù hợp với nhu cầu của người dùng Hiểu rõ các mảng cần quản lý trong hệ thống là điều cần thiết để ứng dụng phù hợp với thực tiễn kinh doanh.
Giúp quản lý công ty trở nên tối ƣu hơn, công tác quản lý dễ dàng tiện lợi hơn, tiết kiệm thời gian và chi phí nhân công
Thiết kế giao diện tương tác với người dùng là một cách hiệu quả để rèn luyện khả năng sáng tạo và tư duy, giúp bạn vận dụng kiến thức vào thực tiễn, từ đó phát triển kỹ năng và nâng cao năng lực bản thân.
Các đề tài/ hệ thống liên quan
1.4.1 Phần mềm quản lý nhân sự MISA AMIS
Phần mềm nhân sự MISA AMIS HRM là bộ giải pháp quản lý nguồn nhân lực toàn diện đến từ Công ty công nghệ MISA – Đơn vị cung ứng phần mềm hàng đầu Việt Nam Phần mềm phù hợp sử dụng cho các doanh nghiệp vừa và lớn do có khả năng giải quyết đƣợc nhiều nghiệp vụ nhân sự chuyên sâu
Tính đến nay, sản phẩm sở hữu 13 phân hệ con bao gồm:
- Phân hệ Tuyển dụng: Hỗ trợ quá trình tuyển dụng tại doanh nghiệp chuyên nghiệp và hiệu quả hơn
- Phân hệ Chấm công: Tự động lưu trữ dữ liệu chấm công theo thời gian thực Phù hợp với cả chấm công hành chính và theo ca kíp
- Phân hệ Tiền lương: Đồng bộ dữ liệu chấm công giúp rút gọn thời gian tính lương rườm rà, phức tạp cho doanh nghiệp
Phân hệ Thông tin nhân sự giúp quản lý hoạt động miễn nhiệm, thuyên chuyển một cách dễ dàng, trở thành công cụ giữ chân nhân tài hiệu quả mà doanh nghiệp không thể bỏ qua.
- Phân hệ Đánh giá nhân sự: Trợ thủ đắc lực giúp doanh nghiệp xây dựng khung năng lực đánh giá khách quan
- Phân hệ Đào tạo: Tổ chức hoạt động đào tạo cho cán bộ nhân viên Xây dựng đội ngũ cán bộ thừa kế có kiến thức chuyên môn cao
- Phân hệ Thuế TNCN, BHXH, …
Lơi ích khi sử dụng phần mềm MISA AMIS HRM
- Phần mềm cung cấp cho lãnh đạo có góc nhìn toàn diện 360 độ về tình hình tiền lương & các chính sách phúc lợi
Tự động hóa các quy trình thủ công như sàng lọc, nhập liệu hồ sơ, nhắc nhở hợp đồng và hợp báo cáo giúp nâng cao hiệu suất và độ chính xác, tiết kiệm thời gian và công sức.
- Thay vì phải quản lý cùng lúc nhiều phân mềm riêng biệt, nhân viên IT có thể dễ dàng quản lý nhiều nghiệp vụ khác nhau trên cùng 1 hệ thống phần mềm Toàn bộ dữ liệu sau khi nhập khẩu lên sẽ được lưu trữ trên Cloud, phân quyền sử dụng tài nguyên
- Trong quá trình dùng AMIS Nhân sự, nhân viên C&B có thể tự động chuyển Bảng tổng hợp chi trả & Bảng phân bổ lương cho kế toán qua phần mềm Các công thức gợi ý giúp doanh nghiệp dễ dàng tính lương và các khoản khấu trừ theo quy định mới nhất của pháp luật
BambooHR đƣợc sử dụng để tối ƣu hóa quy trình tuyển dụng, quản lý thông tin và thời gian làm việc của nhân viên cho các doanh nghiệp có từ 25 đến
Năm 2008, ý tưởng về một phần mềm nhân sự lóe lên với mục đích
“không phải để kiếm tiền” mà là đem đến những trải nghiệm tốt nhất cho các doanh nghiệp và người lao động đã được triển khai bởi hai nhà sáng lập người
Mỹ là Ben Peterson và Ryan Sanders
Các tính năng của phần mềm BambooHR
- Tuyển dụng: Đƣợc trang bị khả năng ATS (Applicant Tracking System – hệ thống quản trị tuyển dụng), BambooHR hỗ trợ người tuyển dụng dễ dàng hơn trong việc đăng tin tuyển dụng và quản lý thông tin nhân viên có nhu cầu ứng tuyển BambooHR sẽ tạo trang đích cho bài đăng tuyển dụng cùng với các liên kết có thể chia sẻ đƣợc Đồng thời, bạn cũng có thể dễ dàng đăng lên các trang khác thông qua những tiện ích đƣợc tích hợp với BambooHR
- Hỗ trợ công việc: BambooHR còn hỗ trợ người dùng tạo lập các quy trình làm việc, tạo điều kiện để người quản lý dễ dàng phê duyệt các dự án, ý tưởng của phòng ban Đồng thời, BambooHR giúp tạo các báo cáo đẹp mắt cực kỳ nhanh chóng, vì vậy bạn có thể phân tích dữ liệu nhân sự của mình và đƣa ra các quyết định một cách chủ động và có chiến lƣợc
- Tác vụ tích hợp BambooHR: Tạo và chỉnh sửa nhiệm vụ rất dễ dàng Bạn có thể chọn tên của nhiệm vụ, mô tả và quyết định ngày hoàn thành và giao cho một ứng viên mà bạn muốn Hơn nữa, bạn có thể phân loại nhiệm vụ cho các nhân viên theo phòng ban Điều này có nghĩa là các nhân viên trong từng phòng ban sẽ biết rõ những nhiệm vụ mà họ cần làm
- Quản lý nhân viên: Hồ sơ và dữ liệu của nhân viên sẽ đƣợc cập nhật đầy đủ và nhanh chóng, tạo điều kiện cho việc quản lý tập trung của doanh nghiệp Đồng thời, tình trạng onboard và offboard của nhân viên cũng đƣợc biểu thị trên BambooHR.
Phương phát phát triển
Phần mềm là tập hợp các chỉ thị hoặc câu lệnh được viết bằng ngôn ngữ lập trình, giúp máy tính thực hiện các tác vụ cụ thể.
12 xếp theo một trật tự xác định, và các dữ liệu hay tài liệu liên quan nhằm tự động thực hiện một số nhiệm vụ, chức năng hoặc giải quyết một vấn đề cụ thể nào đó Tất cả các chương trình chạy máy tính đều gọi là phần mềm Phần mềm thực hiện các chức năng của nó bằng cách gửi các chỉ thị trực tiếp đến phần cứng hoặc cung cấp các dữ liệu để phục vụ chương trình hay phần mềm khác
1.5.2 Khái niệm công nghệ phần mềm
Công nghệ phần mềm (hay còn đƣợc gọi kỹ thuật phần mềm) Đó là những khái niệm trong ngành công nghệ thông tin, có sự liên quan mật thiết tới các khía cạnh của quá trình sản xuất phần mềm Công nghệ đƣợc áp dụng một cách có hệ thống cho sự phát triển, sử dụng cũng nhƣ để bảo trì các phần mềm hệ thống
Công nghệ phần mềm là một phần không thể thiếu của quy trình công nghệ hệ thống, bao gồm việc phát triển ứng dụng, hạ tầng, cơ sở dữ liệu và điều khiển hệ thống Các kỹ sư phần mềm phải tuân thủ quy định của hệ thống, tổ chức công việc hiệu quả và sử dụng kỹ thuật, công cụ phù hợp với từng vấn đề và tài nguyên sẵn có.
Khác với khoa học máy tính, công nghệ phần mềm không chỉ đề cập tới lý thuyết và các vấn đề cơ bản, mà nó còn tập trung vào hoạt động xây dựng chế tạo ra các sản phẩm phần mềm hệ thống hay phần mềm ứng dụng hữu ích với con người Sự phát triển mạnh mẽ của ngành kỹ thuật phần mềm đã vượt xa hơn hẳn những lý thuyết khoa học máy tính tích góp nhỏ giọt [2]
1.5.3 Đặc điểm của phần mềm
Phần mềm là phần tử của hệ thống logic chƣa không phải hệ thống vật lý
Do vậy, phần mềm có một số đặc trƣng khác biệt đáng kể đối với đặc trƣng của phần cứng
Đặc trƣng 1: Phần mềm đƣợc phát triển hay đƣợc kỹ nghệ hóa , nó không đƣợc chế tạo theo nghĩa cổ điển
Mặc dù có một số điểm tương đồng giữa phát triển phần mềm và chế tạo phần cứng, hai hoạt động này về cơ bản là khác nhau Trong cả hai hoạt động này , chất lƣợng cao đƣợc đạt tới thông qua thiết kế tốt, nhƣng giai đoạn chế tạo phần cứng có thể đƣa vào vấn đề mà chất lƣợng không tồn tại ( hay dễ đƣợc sửa đổi ) cho phần mềm Cả hai hoạt động này đều phụ thuộc vào con người, nhưng quan hệ giữa người được áp dụng và công việc được thực hiện hoàn toàn khác
Cả hai hoạt động này đòi hỏi việc xây dựng " sản phẩm " , nhƣng cách tiếp cận là hoàn toàn khác Phần mềm đƣợc chế tạo ra là hoàn toàn mới, không có tiền lệ trước và nó cũng chỉ được tạo ra 1 lần duy nhất
Đặc trƣng 2: Phần mềm không hỏng đi
Phần mềm không cảm ứng với khiếm khuyết môi trường vốn gây cho phần cứng mòn cũ đi Phần mềm nếu cứ với các bộ dữ liệu đầu vào hợp lý thì nó luôn cho kết quả có ý nghĩa giống nhau, không thay đổi theo thời gia, điều kiện khí hậu,
Hình 1: Đường cong hỏng hóc của phần cứng
Hình 2: Đường cong hỏng hóc của phần mềm
Đặc trƣng 3: Phần lớn phần mềm đƣợc xây dựng theo đơn đặt hàng chứ ít khi đƣợc lắp ráp từ các thành phần có sẵn
Cách thiết kế và xây dựng phần cứng điều kiển cho một sản phẩm dựa trên bộ vi xử lý [3]
Hình 3: Đường cong hỏng hóc thực tế của phần mềm 1.5.4 Phương pháp nghiên cứu
- Nghiên cứu cơ sở lý thuyết về phân tích và thiết kế hệ thống thông tin
- Nghiên cứu tài liệu phần mềm
- Tham khảo nghiên cứu thêm các tài liệu trên trang web, báo cáo tìm hiểu tình hình thực trạng đề tài
- Tìm xem các đồ án khoá luận tốt nghiệp của các anh chị khoá trước đã thực hiện
Vai trò của các thành viên
R: Khảo sát, xác định yêu cầu
STT Họ và tên RAI DT
Bảng phân công nhiệm vụ
Bảng 1: Bảng phân công nhiệm vụ
STT Nội dung công việc Thời gian
- Xác định phương pháp phát triền
- Xây dựng vai trò của các thành viên trong dự án
- Phân công nhiệm vụ cho các thành viên trong dự án
- Xác định kế hoạch triển khai
2 - Khảo sát yêu cầu nghiệp vụ chức năng quản lý hồ sơ nhân viên
- Phân tích hệ thống chức năng quản lý hồ sơ nhân viên
- Lập trình chức năng quản lý hồ sơ nhân viên
3 - Khảo sát yêu cầu nghiệp vụ chức năng quản lý lương
- Phân tích hệ thống chức năng quản lý lương
- Lập trình chức năng quản lý lương
4 - Khảo sát yêu cầu nghiệp vụ chức năng quản lý bảo hiểm, quản lý tuyển dụng
- Phân tích hệ thống chức năng quản lý bảo hiểm, quản lý tuyển dụng
- Lập trình chức năng quản lý bảo hiểm, quản lý tuyển dụng
5 - Khảo sát yêu cầu nghiệp vụ chức năng quản lý chức vụ, quản lý phòng ban
- Phân tích hệ thống chức năng quản lý chức vụ, quản lý phòng ban
- Lập trình chức năng quản lý chức vụ, quản lý phòng ban
6 - Khảo sát yêu cầu nghiệp vụ chức năng quản lý khen thưởng kỷ luật, quản lý bảo hiểm
- Phân tích hệ thống chức năng quản lý khen thưởng kỷ luật, quản lý bảo hiểm
- Lập trình chức năng quản lý khen thưởng kỷ luật, quản lý bảo hiểm
7 - Thiết kế hệ thống chức năng quản lý hồ sơ nhân viên
- Kiểm thử chức năng quản lý hồ sơ nhân viên
8 - Thiết kế hệ thống chức năng quản lý lương
- Kiểm thử chức năng quản lý lương
9 - Thiết kế hệ thống chức năng quản lý tuyển dụng
- Kiểm thử chức năng quản lý bảo hiểm, quản lý tuyển dụng
10 - Thiết kế hệ thống chức năng quản lý chức vụ, quản lý phòng ban
- Kiểm thử chức năng quản lý chức vụ, quản lý phòng ban
11 - Thiết kế hệ thống chức năng quản khen thưởng kỷ luật, quản lý bảo hiểm
- Kiểm thử chức năng quản lý khen thưởng kỷ luật, quản lý bảo hiểm
S N PHẦM CHUYỂN GIAO GIỮA CÁC PHA VÀ TIÊU CHUẨ Đ
Danh mục tài liệu sản phẩm
Bảng 2: Danh mục tài liệu tham khảo
STT Loại tài liệu/Sản phẩm
Tập danh sách yêu cầu người dùng
- Tài liệu đặc tả yêu cầu
2 Kế hoạch dự án Kế hoạch xây dựng sản phẩm theo yêu cầu người dùng
3 Tài liệu đặc tả yêu cầu Đặc tả yêu cầu cho từng chức năng của phần mềm
- Yêu cầu để viết đƣợc bổ testcase hoàn chỉnh cho các chức năng
Chiến lƣợc kiểm thử phần mềm
Thời gian thực hiện viết testcase
5 Tập testcase Tập testcase cho các chức năng trong phần mềm
6 Tài liệu kết thúc Tài liệu kết thúc dự án
STT Loại tài liệu/Sản phẩm
7 Tài liệu hướng dẫn sử dụng
Tài liệu hướng dẫn sử dụng phần mềm
Xác định mục tiêu chất lƣợng dự án
Bảng 3: Xác định mục tiêu dự án
STT Tên độ đo Ý nghĩa Công thức/cách đo Đo chất lượng Thước đo cách thức sản phẩm phù hợp với yêu cầu, là sự phù hợp với mức độ sử dụng dự kiến
- Kiểm định các gói công việc đã hoàn thành cũng nhƣ đang thực hiện
- Chất lƣợng gói công việc kiểm tra chất lương sản phẩm
- Biến động về chất lƣợng để xác định nguyên nhân sâu xa của vấn đề
- Phân tích tầm quan trọng của bất kỳ biến động nào
- Kết quả của đo chất lƣợng: quyết định nghiệm thu sản phẩm, làm lại, điều chỉnh quá trình thực hiện Đo cấp độ Thước đo mức độ mà sản phẩm
- Các nội dung kế hoạch đề ra có đáp ứng đƣợc thời gian
STT Tên độ đo Ý nghĩa Công thức/cách đo dự kiến sẽ thực hiện dự kiến hoàn thành không
- Các nội dung có đúng đủ kế hoạch đề ra
- Đúng hạn bàn giao sản phẩm cho khách hàng
X ĐỊNH YÊU CẦU
Vai trò của việc xác định yêu cầu đối với dự án phần mềm
Vai trò của việc xác định yêu phân tích và định rõ yêu cầu là bước trong quy trình phát triển 1 dự án phần mềm Công việc ở bước này là tìm hiểu xem chúng ta phải phát triển cái gì, chứ không phải là phát triển nhƣ thế nào Đích cuối cùng của khâu phân tích là tạo ra đặc tả yêu cầu, là tài liệu ràng buộc giữa khách hàng và người phát triển và là cơ sở của hợp đồng
Hoạt động phân tích là hoạt động phối hợp giữa khách hàng và người phân tích (bên phát triển) Khách hàng phát biểu yêu cầu và người phân tích hiểu, cụ thể hóa và biểu diễn lại yêu cầu Hoạt động phân tích giữ một vai trò đặc biệt quan trọng trong phát triển phần mềm, giúp cho đảm bảo chất lƣợng của phần mềm Phần mềm thực hiện đƣợc chính xác, đầy đủ yêu cầu của người sử dụng Nếu phân tích không tốt dẫn đến hiểu lầm yêu cầu thì việc sửa chữa sẽ trở nên rất tốn kém Chi phí để sửa chữa sai sót về yêu cầu sẽ tăng lên gấp bội nếu nhƣ sai sót đó đƣợc phát hiện muộn.cầu đối với dự án phần mềm
Các hoạt động phân tích yêu cầu
- Làm rõ yêu cầu (Eliciting requirements): giao tiếp với khách hàng và người sử dụng để xác định các yêu cầu của họ
- Xem xét yêu cầu (Analyzing requirements): xác định xem các yêu cầu đƣợc đặt ra có ở tình trạng không rõ ràng, không hoàn chỉnh, đa nghĩa, hoặc mâu thuẫn hay không, và giải quyết các vấn đề đó
Các yêu cầu có thể được ghi lại theo nhiều hình thức, bao gồm tài liệu ngôn ngữ tự nhiên, tình huống sử dụng, câu chuyện người dùng hoặc đặc tả tiến trình.
Phân tích yêu cầu là một bước quan trọng và phức tạp trong việc phát triển hệ thống mới, đòi hỏi sự phối hợp của nhiều kỹ năng Sự thay đổi của hệ thống ảnh hưởng đến môi trường và mối quan hệ giữa con người, vì vậy việc xác định vai trò của các bên liên quan, nắm bắt nhu cầu của họ và đảm bảo họ hiểu rõ tác động của hệ thống mới là điều cần thiết.
Phương pháp đánh giá chất lượng yêu cầu
Yêu cầu phần mềm là tất cả các yêu cầu về phần mềm do khách hàng (người sử dụng phần mềm) nêu ra, bao gồm các chức năng của phần mềm, hiệu năng của phần mềm, các yêu cầu về thiết kế và giao diện, các yêu cầu đặc biệt khác Mục đích của yêu cầu phần mềm là xác định khả năng đáp ứng của phần mềm với các yêu cầu và mong muốn cuả khách hàng (người sử dụng phần mềm) Để xây dựng một phần mềm tốt, cần phải có một yêu cầu phần mềm tốt Có thể dựa vào một số tiêu chí để đánh giá yêu cầu phần mềm
Các đặc tính chất lƣợng để đánh giá yêu cầu phần mềm
Mỗi yêu cầu cần mô tả rõ ràng chức năng được giao, bao gồm đầy đủ thông tin cần thiết cho nhà phát triển Nếu thiếu thông tin về yêu cầu mềm, hãy đánh dấu để bổ sung đầy đủ trước khi chuyển sang giai đoạn phân tích và thiết kế.
Không có khách hàng nào yêu cầu chúng ta cần phải làm rõ toàn bộ các yêu cầu trước khi bắt đầu xây dựng yêu cầu đó Trong thực tế, chúng ta sẽ không bao giờ xác định đƣợc đầy đủ các yêu cầu phần mềm Mỗi dự án, cho dù theo bất cứ mô hình phát triển phần mềm nào, là mô hình sử dụng lặp đi lặp lại hoặc mô hình gia tăng cũng cần xác định đầy đủ các yêu cầu cho mỗi
24 lần lặp lại vòng đời phần mềm là quá nhiều, đặc biệt khi các yêu cầu phần mềm ban đầu không đầy đủ Sự đa dạng người dùng với những thói quen và quyền lợi khác nhau đòi hỏi sự chi tiết trong yêu cầu Việc truyền đạt bằng lời nói thay vì văn bản gây khó khăn cho các nhà phân tích, phát triển và kiểm thử trong việc hiểu rõ yêu cầu phần mềm.
Mỗi yêu cầu phải mô tả chính xác các chức năng mà nó cần đƣợc xây dựng Cần phân tích để xác định chính xác đâu là nơi có thể cung cấp các yêu cầu phần mềm chính xác, là người sử dụng thông thường hay người dùng cao câp của hệ thống Một yêu cầu phần mềm mâu thuẫn với yêu cầu cao hơn nó là một yêu cầu phần mềm không chính xác Chỉ có đại diện người sử dụng thực tế mới có thể xác định chính xác các yêu cầu của người sử dụng , đó cũng là lý do người sử dụng phải xem xét và duyệt lại các yêu cầu phần mềm
Yêu cầu phần mềm phải khả thi trong các giới hạn về kinh phí, thời gian, nhân lực, cũng nhƣ khả năng của nền tảng phát triển Để tránh các yêu cầu phần mềm không thể đạt đƣợc, những kĩ sƣ phần mềm cần phải liên tục kiểm tra những gì có thể và không thể đƣợc thực hiện về mặt kỹ thuật hoặc vượt quá chi phí Mô hình gia tăng và mô hình chế thử là một phương pháp tốt để liên tục đánh giá tính khả thi của yêu cầu phần mềm
Mỗi yêu cầu nên phản ánh một khả năng thiết yếu mà các bên liên quan cần, hoặc một khả năng cần thiết để đáp ứng yêu cầu của hệ thống bên ngoài hoặc tiêu chuẩn Tất cả các yêu cầu phải được xác định bởi một nguồn có thẩm quyền để đảm bảo tính chính xác Theo dõi chặt chẽ từng yêu cầu cụ thể của khách hàng.
25 chẳng hạn như một trường hợp sử dụng, một nguyên tắc kinh doanh, hoặc một số nguồn gốc khác
Việc ưu tiên thực hiện cho từng yêu cầu chức năng, tính năng, trường hợp sử dụng hoặc câu chuyện người dùng là rất quan trọng để xác định rõ ràng tính cấp thiết của một thông cáo sản phẩm cụ thể Nếu tất cả các yêu cầu được coi là ngang bằng nhau, việc quản lý dự án sẽ gặp khó khăn trong việc đối phó với cắt giảm ngân sách, vượt kế hoạch, thiếu nhân sự hoặc các yêu cầu mới được thêm vào trong quá trình phát triển Ưu tiên là chìa khóa cho sự thành công của phát triển lặp đi lặp lại.
Tất cả yêu cầu nên đƣợc định nghĩa một cách duy nhất, giải thích phù hợp, sqr dụng ngôn ngữ tự nhiên rất dễ bị mơ hồ Viết yêu cầu trong ngôn ngữ đơn giản, ngắn gọn, đơn giản phù hợp với lĩnh vực người dùng
"Hiểu" là một mục tiêu chất lƣợng yêu cầu liên quan tới "rõ ràng": người đọc phải có khả năng hiểu những gì từng yêu cầu được nói Xác định tất cả về chuyên môn và các điều khoản có thể gây nhầm lẫn trong một thuật ngữ
Xem liệu ta có thể đƣa ra một vài bài kiểm tra hoặc sử dụng các phương pháp xác minh khác, chẳng hạn như thanh tra, kiểm thử, để xác định xem sản phẩm đúng cách thực hiện từng yêu cầu Nếu một yêu cầu là không thể kiểm chứng đƣợc, cần xác định liệu nó sẽ đƣợc thực hiện một cách chính xác hay sẽ trở thành một vấn đề, không phân tích khách quan Yêu cầu đó là không đầy đủ, không phù hợp, không khả thi, hoặc không rõ ràng cũng chƣa đƣợc kiểm chứng
Yêu cầu phải phù hợp, không mâu thuẫn với các yêu cầu khác cùng loại hoặc với tiêu chuẩn kinh doanh cao cấp, hệ thống, hoặc nhu cầu người dùng Mâu thuẫn giữa các yêu cầu cần được giải quyết trước khi bắt đầu phát triển Nếu phát hiện ra xung đột, có thể chưa xác định được yêu cầu chính xác cho đến khi nghiên cứu thêm Ghi lại nguồn gốc của từng yêu cầu để dễ dàng liên lạc khi cần giải quyết xung đột.
Chúng ta phải có khả năng sửa đổi các SRS khi cần thiết để duy trì một lịch sử thay đổi đƣợc thực hiện với từng nhu cầu Điều này nói lên rằng mỗi yêu cầu đƣợc dán nhãn duy nhất và thể hiện riêng rẽ với các yêu cầu khác để ta có thể đề cập đến nó một cách rõ ràng Mỗi yêu cầu sẽ xuất hiện chỉ một lần trong SRS
Việc tạo ra mâu thuẫn có thể dễ dàng xảy ra khi chỉ thay đổi một phiên bản của một yêu cầu nhân đôi Thay vì sao chép các yêu cầu, hãy xem xét chéo tham khảo trường hợp tiếp theo trở lại báo cáo ban đầu Bảng nội dung và chỉ số sẽ giúp SRS dễ dàng thay đổi Lưu trữ yêu cầu trong cơ sở dữ liệu hoặc công cụ quản lý yêu cầu thương mại giúp chúng có thể tái sử dụng.
Một yêu cầu theo dõi có thể đƣợc liên kết ngƣợc đến nguồn gốc của nó và chuyển tiếp đến các yếu tố thiết kế và mã nguồn mà thực hiện nó và với các trường hợp thử nghiệm kiểm tra việc thực hiện là đúng Yêu cầu truy xuất nguồn gốc đƣợc dán nhãn duy nhất với định danh liên tục Chúng đƣợc viết theo một cách có cấu trúc liền mạch trái ngƣợc với đoạn tự sự dài Tránh gộp
27 nhiều yêu cầu lại với nhau, các yêu cầu cá nhân có thể theo dõi để thiết kế khác nhau [5]
Danh sách các yêu cầu của hệ thống
Tác nhân tác động và hệ thống Admin
Các yêu cùa nghiệp vụ khác
Màn hình Yêu cầu Đăng nhập - Đăng nhập đúng tài khoản thì đăng nhập thành công vào hệ thống vào màn hình bán hàng
- Nếu đăng nhập không đúng thông tin hiển thị cảnh báo:” Mật khẩu hoặc tên đăng nhập không đúng”
- Nếu người dung đăng nhập đúng tài khoản đăng nhập vào trang chủ của hệ thống
- Các trường thông tin cần quản lý: mã nhân viên, mã phòng ban, mã tuyển dụng, mã công việc,… Giao diện giống thiết kế
- Combo mã phòng ban, mã tuyển dụng, mã CV load dữ liệu từ trong danh mục
- Các chức năng đƣợc phép thực hiện trên màn hình: Thêm, Sửa, Xóa, Lưu
- Khi thay đổi dữ liệu thì dữ liệu cập nhật trên danh sách
- Chức năng xuất Excel thực hiện xuất các trường thông tin hiển thị trên màn hình
- Các trường thông tin cần quản lý: mã nhân viên, lương, ngày bắt đầu, ngày kết thúc Giao diện giống thiết kế
- Combo mã nhân viên load dữ liệu từ trong danh mục
- Các chức năng đƣợc phép thực hiện trên màn hình:
- Khi thay đổi dữ liệu thì dữ liệu cập nhật trên danh sách
- Các trường thông tin cần quản lý: mã lương, mã nhân viên, số ngày công, lương, tháng/ năm Giao diện giống thiết kế
- Combo mã nhân viên load dữ liệu từ trong danh mục
- Khi chọn nhân viên sẽ load lên dữ liệu lương theo phần quản lý hợp đồng đã thiết lập
- Các chức năng đƣợc phép thực hiện trên màn hình: Thêm, Sửa, Xóa, Lưu
- Khi thay đổi dữ liệu thì dữ liệu cập nhật trên danh sách
- Chức năng xuất Excel thực hiện xuất các trường thông tin hiển thị trên màn hình
- Các trường thông tin cần quản lý: mã chức vụ, tên chức vụ, phụ cấp
- Các chức năng đƣợc phép thực hiện trên màn hình: Thêm, Sửa, Xóa, Lưu
- Khi thay đổi dữ liệu thì dữ liệu cập nhật trên danh sách
- Các trường thông tin cần quản lý: mã phòng ban, tên phòng ban, số điện thoại
- Các chức năng đƣợc phép thực hiện trên màn hình: Thêm, Sửa, Xóa, Lưu
- Khi thay đổi dữ liệu thì dữ liệu cập nhật trên danh sách
- Các trường thông tin cần quản lý: mã bảo hiểm, tên bảo hiểm, tỷ lệ bảo hiểm
- Các chức năng đƣợc phép thực hiện trên màn hình: Thêm, Sửa, Xóa, Lưu
- Khi thay đổi dữ liệu thì dữ liệu cập nhật trên danh sách
- Các trường thông tin cần quản lý: mã tuyển dụng, tên tuyển dụng
- Các chức năng đƣợc phép thực hiện trên màn hình: Thêm, Sửa, Xóa, Lưu
- Khi thay đổi dữ liệu thì dữ liệu cập nhật trên danh sách
Quản lý quy định khen thưởng, kỷ luật
- Các trường thông tin cần quản lý: mã khen thưởng kỷ luật, tên quyết định, số tiền
- Các chức năng đƣợc phép thực hiện trên màn hình: Thêm, Sửa, Xóa, Lưu
- Khi thay đổi dữ liệu thì dữ liệu cập nhật trên danh sách
Quản lý danh sách khen thưởng kỷ luật
- Các trường thông tin cần quản lý: mã khen thưởng kỷ luật, mã nhân viên
- Mã khen thưởng và mã nhân viên load từ danh mục tương ứng
- Các chức năng đƣợc phép thực hiện trên màn hình: Thêm, Sửa, Xóa, Lưu
- Khi thay đổi dữ liệu thì dữ liệu cập nhật trên danh sách
Quản lý danh sách bảo hiewmer
- Các trường thông tin cần quản lý: tên bảo hiểm, tên nhân viên, ngày bắt đầu, ngày kết thúc, số tiền đóng hàng thnasg
- Tên bảo hiểm và tên nhân viên load từ danh mục tương ứng
- Các chức năng đƣợc phép thực hiện trên màn hình: Thêm, Sửa, Xóa, Lưu
- Khi thay đổi dữ liệu thì dữ liệu cập nhật trên danh sách
Kết quả đánh giá chất lƣợng yêu cầu
- Yêu cầu đã đáp ứng đƣợc các nghiệp vụ cơ bản của phần mềm
- Chƣa đáp ứng đƣợc việc truyền dữ liệu từ các màn hình với nhau
- Tài liệu đủ để lập trình viên, nhân viên kiểm soát chất lƣợng xây dựng phần mềm và thực hiện viết testcase
K ẾN TRÚC PHẦN MỀM
Vai trò của kiến trúc phần mềm với quá trình phát triển dự án phần mềm 31 4.2 Các mẫu kiến trúc phần mềm phổ biến
Các xu hướng hiện tại trong kiến trúc phần mềm cho rằng thiết kế phát triển theo thời gian và một kiến trúc sư phần mềm không thể biết trước mọi thứ để kiến trúc đầy đủ một hệ thống Thiết kế thường phát triển trong các giai đoạn triển khai của hệ thống Kiến trúc sƣ phần mềm (Software Architect) phải liên tục học hỏi và kiểm tra thiết kế dựa trên các yêu cầu của thực tế
Kiến trúc đóng vai trò nhƣ bản thiết kế cho một hệ thống Nó cung cấp một cái nhìn tổng thể để quản lý độ phức tạp của hệ thống, thiết lập một cơ chế giao tiếp và phối hợp giữa các thành phần
Một số vai trò chính của kiến trúc phần mềm bao gồm:
- Giúp các bên liên quan hình dung, hiểu và phân tích hệ thống
- Kiến trúc phần mềm giúp phác họa cấu trúc của phần mềm
- Nó có thể được sử dụng để dự trù kinh phí trong một dự án trước khi chúng đƣợc thực hiện
- Nó đƣợc sử dụng làm cơ sở để đƣa ra các quyết định cốt lõi nhằm đảm bảo chất lƣợng công việc
4.2 Các mẫu kiến trúc phần mềm phổ biến
Khi người dùng thực hiện hành động trong ứng dụng được xây dựng bằng cách tiếp cận EDA (Exploratory Data Analysis – Phân tích Khám phá
Dữ liệu), sự thay đổi trạng thái sẽ xảy ra và phản ứng đƣợc tạo ra đƣợc gọi là sự kiện
Ví dụ: Một người dùng mới điền vào biểu mẫu đăng ký và nhấp vào nút đăng ký trên Facebook và sau đó một tài khoản đƣợc tạo cho anh ta, đó là một sự kiện
Hình 4: Mô hình Event-Driven
Kiến trúc hướng sự kiện là một phương pháp phát triển nhanh chóng, cho phép kích hoạt các dịch vụ phần mềm thông qua các sự kiện Mô hình này phù hợp với việc xây dựng trang web bằng JavaScript và đặc biệt hữu ích cho các trang thương mại điện tử.
Mô hình Microservices là tập hợp các dịch vụ nhỏ đƣợc kết hợp để tạo thành ứng dụng thực tế Thay vì xây dựng một ứng dụng lớn hơn, các chương trình nhỏ đƣợc xây dựng cho mọi dịch vụ (chức năng) của ứng dụng một cách độc lập Và những chương trình nhỏ đó được gộp lại với nhau để trở thành một ứng dụng chính thức
Các mô-đun trong ứng dụng của các mẫu Microservices đƣợc ghép nối một cách lỏng lẻo Vì vậy, bạn có thể dễ dàng sửa đổi và mở rộng
Netflix là một trong những ví dụ phổ biến nhất về kiến trúc Microservices tích hợp sẵn phần mềm [6]
Mô hình Microkernel có hai thành phần chính: một hệ thống cốt lõi và các mô-đun (Module) plug-in
- Hệ thống cốt lõi xử lý các hoạt động cơ bản của ứng dụng
- Các mô-đun plug-in xử lý các chức năng mở rộng (nhƣ các tính năng bổ sung) và xử lý tùy chỉnh
Mô hình microkernel chủ yếu đƣợc ƣu tiên để phát triển ứng dụng dựa trên sản phẩm và các ứng dụng lập lịch trình Chẳng hạn nhƣ Instagram, YouTube Shorts…
Các thành phần trong mô hình kiến trúc phần mềm đƣợc tách thành các lớp nhiệm vụ con và chúng đƣợc sắp xếp chồng lên nhau Mỗi lớp có các nhiệm vụ duy nhất để thực hiện và tất cả các lớp đều độc lập với nhau Vì mỗi lớp đều độc lập nên người ta có thể sửa đổi mã bên trong một lớp mà không ảnh hưởng đến các lớp khác
Hình 6: Mô hình phân lớp Đây là mẫu đƣợc sử dụng phổ biến nhất để thiết kế phần lớn các phần mềm, điển hình là trang thương mại điện tử Amazon Lớp này còn được gọi là
„kiến trúc N-tier‟ Về cơ bản, mẫu này có 4 lớp:
- Lớp giao diện (nơi chúng ta xem và nhập dữ liệu vào ứng dụng.)
- Lớp xử lý logic nghiệp vụ (lớp này chịu trách nhiệm thực thi logic nghiệp vụ theo yêu cầu.)
- Lớp ứng dụng (lớp này hoạt động như một phương tiện giao tiếp giữa
“lớp trình bày” và “lớp dữ liệu”)
- Lớp dữ liệu (lớp này có cơ sở dữ liệu để quản lý dữ liệu.)
Mô hình này có hai thực thể chính: một máy chủ và nhiều máy khách Ở đây máy chủ có tài nguyên (dữ liệu, tệp hoặc dịch vụ) và máy khách yêu cầu máy chủ cung cấp một tài nguyên cụ thể Sau đó, máy chủ xử lý yêu cầu và phản hồi lại tương ứng
Mô hình này phù hợp để phát triển loại phần mềm nhƣ: E-mail, ứng dụng chia sẻ tệp, ngân hàng, …
Kiến trúc tổng thể hệ thống
Mọi hệ thống đều sở hữu kiến trúc vật lý riêng và được chia thành hai phần chính: CLIENT (trình duyệt web) và SERVER (máy chủ) SERVER là một máy tính chứa RAM, CPU, ổ cứng và các phần mềm cần thiết cho phát triển web.
Máy bình thường cũng có thể trở thành 1 máy chủ nếu nó được cài phần mềm Server Software và kết nối vs internet
Hình 7: Mô hình Client- Server
Với hệ thống nhỏ thì tất cả sẽ làm trong 1 máy chủ (webserver, database server) tức là server chúng ta sẽ chứa và đảm nhiệm cũng nhƣ xử lý hết các công việc từ trình duyệt yêu cầu
Hình 8: Mô hình hệ thống nhỏ
Lựa chọn công nghệ phát triển cho hệ thống
Phần mềm sử dụng: Winform và SQL Server
Winform hay còn gọi là Windows form là giải pháp chạy trên nền Windows Winform là công nghệ của Microsoft, cho phép lập trình các ứng dụng Windows trên PC Winform ra đời năm 2003 và chính thức bị Microsoft khai tử năm 2014
Winform là một loại ứng dụng được phát triển bằng NET Framework và sở hữu giao diện người dùng Windows Forms Mỗi cửa sổ trong ứng dụng cung cấp một giao diện tương tác cho người dùng, gọi là giao diện đồ họa (GUI).
Là các ứng dụng windows chạy trên máy tính – mã lệnh thực thi ngay trên máy tính: Microsoft, Word, Excel, Access, Calculator, yahoo, Mail… là các ứng dụng Windows Forms Ƣu điểm các phần mềm trên Winform Đa phần lập trình viên C# NET nào cũng từng học/sử dụng Winform Bởi vì: Giao diện kéo thả dễ sử dụng; Gắn các event cho các button chỉ cần double click, lại hỗ trợ quá trời event nhƣ click, hover, …; Việc viết code cũng vô cùng trực quan: từ việc lấy text từ TextBox cho tới show dữ liệu bằng MessageBox, hoặc dùng Grid để kết nối SQL WinForm rất dễ học và dễ dạy
Vì dễ code, chỉ cần kéo thả, lại có nhiều component có sẵn, WinForm rất phù hợp để làm các phần mềm quản lý, tính tiền, thống kê… Đây cũng là loại ứng dụng mà các công ty/doanh nghiệp vừa và nhỏ cần Ngoài ra, chỉ cần sử dụng component nhƣ TelerikUI hoặc DevExpress (Ở Việt Nam, hầu nhƣ chúng ta đều dùng crack nên các component này hoàn toàn miễn phí), WinForm có thể tạo ra các giao diện hiện đại, đẹp
- Tốc độ xử lý dữ liệu nhanh chóng
- Đảm bảo an toàn, bảo mật thông tin
- Có thể chạy trên các phiên bản Windows khác nhau
- Thao tác trên nhiều giao diện
Nhƣợc điểm của phần mềm trên winform
- Phần mềm chạy trên nền tảng Windows đó chính là người dùng muốn dùng phần mềm sẽ phải sử dụng máy tính đã cài phần mềm Do vậy,
38 bạn phải mang theo mình chiếc máy tính cá nhân để phục vụ cho công việc
- Winform chỉ phù hợp các ứng dụng trên desktop: ứng dụng quản lý thông tin, ứng dụng tương tác trực tiếp với người dùng
- Đồ họa trên winform không cao nên giao diện phần mềm sẽ thiếu tính trực quan, hơi khó thao tác, không thân thiện với người dùng [7]
SQL server chính là cụm từ viết tắt của Structure Query Language đƣợc sử dụng nhiều trong các lĩnh vực bởi chức năng quản lý dữ liệu Các ngôn ngữ cấp cao nhƣ: Visual C, Oracle, Visual Basic, … đều có trình hỗ trợ là SQL Những ứng dụng khi chạy phải sử dụng SQL khi người dùng truy cập tới cơ sở dữ liệu thì không cần sử dụng trực tiếp SQL
SQL Server chính là một hệ quản trị dữ liệu quan hệ sử dụng câu lệnh SQL để trao đổi dữ liệu giữa máy cài SQL Server và máy Client Một Relational Database Management System – RDBMS gồm có: databases, datase engine và các chương trình ứng dụng dùng để quản lý các bộ phận trong RDBMS và những dữ liệu khác
Các thành phần cơ bản trong SQL Server
SQL Server offers a comprehensive data management solution through a combination of core components: Reporting Services for creating reports, Database Engine for data storage and retrieval, Integration Services for data movement, Notification Services for event-driven communication, and Full Text Search Service for efficient data searching These integrated components enable streamlined data analysis and storage, making it easier to manage and extract insights from your data.
- Database Engine: Đây là một engine có khả năng chứa dữ liệu ở các quy mô dưới dạng support và table Ngoài ra, nó còn có khả năng tự điều chỉnh ví dụ: trả lại tài nguyên cho ệ điều hành khi một user log off và sử dụng thêm các tài nguyên của máy khi cần
Dịch vụ tích hợp là tập hợp các đối tượng lập trình và công cụ đồ họa cho việc sao chép, di chuyển và chuyển đổi dữ liệu Khi làm việc trong các công ty lớn, dữ liệu thường được lưu trữ ở nhiều nơi khác nhau như Oracle, SQL Server, DB2, Microsoft Access, v.v Integration Services giúp bạn dễ dàng di chuyển dữ liệu giữa các server này và định dạng dữ liệu trước khi lưu vào cơ sở dữ liệu.
- Analysis Services: Đây là một dịch vụ phân tích dữ liệu rất hay của Microsoft Dữ liệu khi được lưu trữ vào trong database mà bạn không thể lấy đƣợc những thông tin bổ ích thì coi nhƣ không có ý nghĩa gì Chính vì thế, công cụ này ra đời giúp bạn trong việc phân tích dữ liệu một cách hiệu quả và dễ dàng bằng cách dùng kỹ thuật khai thác dữ liệu – datamining và khái niệm hình khối nhiều chiều – multi dimendion cubes
Dịch vụ thông báo là nền tảng cho việc phát triển và triển khai các ứng dụng soạn và gửi thông báo Nền tảng này cho phép gửi thông báo theo lịch trình đến hàng ngàn người dùng đăng ký trên nhiều thiết bị khác nhau.
Reporting Services là một công cụ mạnh mẽ cho phép tạo, quản lý và triển khai báo cáo, bao gồm cả server và client Nó cũng đóng vai trò là nền tảng cho việc phát triển và xây dựng các ứng dụng báo cáo.
Dịch vụ tìm kiếm đầy đủ văn bản là một thành phần quan trọng trong việc truy vấn và lập chỉ mục dữ liệu văn bản không cấu trúc được lưu trữ trong các cơ sở dữ liệu SQL Server.
- Service Broker: là một môi trường lập trình cho việc tạo ra các ứng dụng trong việc nhảy qua các Instance [8]
4.5 Kiến trúc của hệ thống
Hình 9: Hệ thống sử dụng kiến trúc Client- Server
Khi nói đến Client (khách hàng), thì nó có nghĩa là một người hay một tổ chức sử dụng một dịch vụ cụ thể nào đó Trong thế giới kỹ thuật số cũng tương tự như vậy Client là một máy tính (Host), tức là có khả năng nhận thông tin hoặc sử dụng một dịch vụ cụ thể từ các nhà cung cấp dịch vụ (Server)
Server thì nó có nghĩa là một máy chủ hay một phương tiện phục vụ các dịch vụ nào đó Trong lĩnh vực công nghệ thì Server là một máy tính từ xa Nó cung cấp các thông tin (dữ liệu) hoặc quyền truy cập vào các dịch vụ cụ thể
XÂY ỰNG VÀ KIỂM THỬ HỆ THỐNG
Giao diện phần mềm
5.1.1 Giao diện màn hình đăng nhập
Hình 10: Giao diện màn hình đăng nhập 5.1.2 Giao diện trang chủ
Hình 11: Giao diện trang chủ
42 5.1.3 Giao diện màn hình quản lý nhân viên
Hình 12: Giao diện màn hình quản lý nhân viên
43 5.1.4 Giao diện màn hình quản lý hợp đồng
Hình 13: Giao diện màn hình quản lý hợp đồng
44 5.1.5 Giao diện màn hình quản lý lương
Hình 14: Giao diện màn hình quản lý lương
5.1.6 Giao diện màn hình quản lý chức vụ
Kết quả xây dựng 01 module/nhóm chức năng
- Quản lý quy định khen thưởng kỷ luật
- Quản lý danh sách khen thưởng kỷ luật
- Quản lý dnah sách bảo hiêm
Kiểm thử hệ thống
Kiểm thử phần mềm là phương pháp kiểm tra xem sản phẩm phần mềm đó trên thực tế có phù hợp với các yêu cầu đã đặt ra hay không, và đảm bảo rằng không có lỗi hay khiếm khuyết Nó bao gồm việc kiểm tra, phân tích, quan sát và đánh giá các khía cạnh khác nhau của sản phẩm Người kiểm thử phần mềm (Tester) sử dụng kết hợp các công cụ thủ công và tự động Sau khi tiến hành kiểm thử, Tester báo cáo kết quả cho team phát triển Mục đích là xác định các lỗi, khiếm khuyết hoặc các yêu cầu còn thiếu so với yêu cầu thực tế
Cần hiểu đƣợc tầm quan trọng của việc kiểm thử đối với mỗi công ty phát triển phát mềm Với kiểm thử phần mềm, nếu có bất kỳ lỗi nào, nó có thể được xác định sớm và giải quyết trước khi giao sản phẩm
Nhiều công ty phát triển phần mềm thường bỏ qua bước này vì ngân sách eo hẹp và cho rằng nó sẽ không dẫn đến hậu quả lớn Nhƣng để tạo những trải nghiệm tốt nhất cho khách hàng, chất lƣợng sản phẩm cần phải đƣợc đặt lên hàng đầu Và vì vậy, việc kiểm thử sản phẩm để tìm lỗi là điều gần nhƣ bắt buộc Doanh nghiệp chỉ có thể mang đến giá trị cho khách hàng khi sản phẩm cung cấp được coi là lý tưởng Và để đạt được điều đó, các công ty phải đảm bảo rằng người dùng không gặp phải bất kỳ vấn đề nào khi sử dụng sản phẩm của mình Cách tốt nhất để làm điều đó là tạo ra sản phẩm không có lỗi
Khi khách hàng sử dụng sản phẩm, họ rất có thể phải tiết lộ một số thông tin cá nhân Để ngăn chặn tin tặc nắm đƣợc dữ liệu này, việc kiểm tra bảo mật là điều bắt buộc trước khi phần mềm đến tay người dùng Sản phẩm phần mềm đƣợc kiểm thử kỹ càng qua quy trình phù hợp sẽ đảm bảo độ tin cậy, bảo mật, giúp tiết kiệm thời gian, chi phí, mang đến sự hài lòng cho khách hàng
Việc kiểm tra ngày càng trở nên quan trọng bởi nó giúp phát hiện khả năng tương thích với nhiều thiết bị và nền tảng khác nhau Ví dụ, khi phát triển website, Tester cần kiểm tra xem trang web hoạt động tốt trên các độ phân giải thiết bị khác nhau, các trình duyệt khác nhau hay không Điều này dẫn đến nhu cầu kiểm tra trình duyệt chéo, đảm bảo ứng dụng hoạt động tương thích trên nhiều trình duyệt.
5.3.1 Lợi ích của Kiểm thử phần mềm
- Hiệu quả về chi phí: Đây là một trong những lợi ích quan trọng của kiểm thử phần mềm Thực tế cho thấy rằng các lỗi thiết kế khó có thể đƣợc loại trừ hoàn toàn đối với bất kỳ hệ thống nào Đó không phải là lỗi bất cẩn của Developer mà đôi khi do sự phức tạp của hệ thống Nếu các vấn đề về thiết kế không đƣợc phát hiện, thì việc tìm ra và sửa các lỗi/khiếm khuyết sẽ trở nên khó khăn và tốn kém hơn Kiểm thử bất kỳ dự án IT nào cũng sẽ giúp công ty tiết kiệm, việc xác định lỗi trong giai đoạn đầu sẽ giúp quá trình sửa chữa tốn ít chi phí hơn
- Bảo mật: Đây là điểm nhạy cảm và dễ bị tấn công nhất của kiểm thử phần mềm Kiểm thử giúp loại bỏ các rủi ro và vấn đề trong sản phẩm Cùng với đó, tất cả khách hàng đều đang tìm kiếm những sản phẩm đáng tin cậy
- Chất lƣợng sản phẩm: Đây là yêu cầu thiết yếu của bất kỳ sản phẩm phần mềm nào Kiểm thử phần mềm giống nhƣ việc củng cố danh tiếng công ty bằng cách cung cấp các sản phẩm chất lƣợng cho khách hàng
- Sự hài lòng của khách hàng: Trong bất kỳ hoạt động kinh doanh sản phẩm nào, mục tiêu cuối cùng đều là mang đến cho khách hàng trải nghiệm tốt nhất Sự hài lòng của khách hàng rất quan trọng trong quá trình hợp tác lâu dài
5.3.2 Phân loại kiểm thử phần mềm
- Kiểm thử chức năng (Functional testing)
- Kiểm thử phi chức năng (Non-functional testing)
- Kiểm thử cấu trúc (Structural testing)
- Kiểm thử liên quan đến các thay đổi (Change related testing)
Mô hình kiểm thử đƣợc áp dụng trong đề tài
Mô hình kiểm thử đƣợc áp dụng: Kiểm thử theo module và kiểm thử tích hợp và hệ thống
Kiểm thử module (hay kiểm thử đơn vị) là quá trình kiểm tra từng thành phần nhỏ nhất của chương trình, đảm bảo chúng hoạt động độc lập và chính xác Việc này giúp phát hiện lỗi sớm, dễ dàng sửa chữa và nâng cao chất lượng sản phẩm phần mềm.
- Kiểm thử đơn vị là 1 cách quản lý nhiều phần tử cần kiểm thử, bắt đầu tập trung chú ý trên từng phần tử nhỏ của chương trình
- Kiểm thử đơn vị giúp dễ dàng việc debug chương trình
- Kiểm thử đơn vị tạo cơ hội tốt nhất cho ta thực hiện kiểm thử đồng thời bởi nhiều người
Mục đích của kiểm thử đơn vị: so sánh chức năng thực tế của từng module với ₫ặc tả chức năng hay đặc tả interface của module đó Sự so sánh này có tính chất
Kiểm thử tích hợp (Integration testing) hay còn gọi là tích hợp và kiểm thử (integration and testing, viết tắt: I&T) là một giai đoạn trong kiểm thử phần mềm Mỗi môđun phần mềm riêng biệt đƣợc kết hợp lại và kiểm thử theo nhóm
Kiểm thử tích hợp diễn ra sau kiểm thử đơn vị và trước kiểm thử xác nhận Quá trình này kết hợp các môđun đã được kiểm thử đơn vị thành các nhóm lớn hơn, áp dụng các trường hợp kiểm thử được xác định trong kế hoạch kiểm thử tích hợp và cung cấp đầu ra cho hệ thống tích hợp.
Kế hoạch kiểm thử
Bảng 4: Bảng kế hoạch kiểm thử
STT Chức năng cần kiểm thử Mức độ ƣu tiên Thời gian thực hiện
2 Quản lý nhân viên Cao 0.5 tuần
3 Quản lý hợp đồng Cao 0.5 tuần
4 Quản lý lương Cao 0.5 tuần
5 Quản lý phòng ban Cao 0.5 tuần
6 Quản lý bảo hiểm Cao 0.5 tuần
7 Quản lý tuyển dụng Cao 0.5 tuần
8 Quản lý quy định khen thưởng kỷ luật
9 Quản lý danh sách khen thưởng kỷ luạt
10 Quản lý danh sách bảo hiểm Cao 0.5 tuần
Kết quả kiểm thử
- Các chức năng đều hoạt động đúng yêu cầu nghiệp vụ
- Không có chức năng lỗi nghiệp vụ hệ thống
- Có thể bàn giao cho khách hàng
KẾ
Đánh giá chất lƣợng phần mềm
- Phần mềm đã đáp ứng đƣợc các yêu cầu do khách hàng đƣa ra
- Đã đáp ứng đƣợc các testcase cho nhân viên kiểm soát viết
- Có thể thực hiện bàn giao cho khách hàng
Hướng phát triển
- Viết thêm testcase validate chức năng của phần mềm
- Đưa ra yêu cầu chi tiết cho từng trường thông tin trên phần mềm để khách hàng dễ sử dụng hơn
- Khảo sát thêm yêu cầu nghiệp vụ của khách hàng và có hướng phát triển