Trong quá trình phát triển cũng như khi thực hiện triển khai thí điểm phần mềm quản lý cấp trường thì các thành viên trong nhóm phát triển tiếp tục thực hiện các chức năng hỗ trợ cho quản lý cấp phòng, cấp sở và cấp bộ. Các kỹ thuật kiểm soát cũng được thực hiện để đảm bảo chất lượng cho sản phẩm.
Do phần mềm đáp ứng được khả năng mở rộng nên việc mở rộng chức năng không gặp phải khó khăn trong quá trình phát triển. Phần mềm luôn thay đổi từng ngày từng giờ nên các thành viên trong nhóm phát triển phải thực hiện cập nhật dữ liệu thường xuyên. Trong suốt quá trình phát triển phần mềm, một kỹ thuật hỗ trợ đắc lực cho kiểm soát chất lượng phần mềm nữa mà đội sử dụng là kỹ thuật kiểm soát phiên bản Subversion (SVN). Nhóm phát triển của viện đã thực hiện các bước như sau:
- Trước hết trên máy chủ cài đặt Subversion server, thiết lập các mục cần thiết để hỗ trợ cho việc quản lý và thực hiện phân quyền cho các thành viên trong nhóm phát triển.
- Trên máy cá nhân thì cài đặt TortoiseSVN để có thể trao đổi dữ liệu với server.
- Trên mỗi client thực hiện tạo hai thư mục: một thư mục phục vụ cho việc update dữ liệu từ server và một thư mục dùng phục vụ cho việc phát triển của cá nhân để commit dữ liệu lên server.
- Các thanh viên sau khi cài đặt và tạo xong các thư mục cần thiết và đã kết nối với máy chủ thông qua tài khoản được cấp thì bắt đầu thực hiện công việc của mình, tạo ra các file cần thiết trong mô đun của mình.
Khi cả máy server và client cài đặt phần mềm ứng dụng này hoàn thành và tạo ra các thư mục cần thiết thì thực hiện giao tiếp với nhau thông qua mạng nội bộ theo tài khoản và phân quyền mà mình được cấp.
Các thành viên thực hiện thêm, bớt, sửa, xóa trên các file đã lấy về trong thư mục phát triển, khi các file đó hoàn thiện thì thực hiện commit lên server. Nhưng cũng như đã đề cập ở trên thì trước khi thực hiện commit các thành viên phải thực hiện update để tránh xung đột có thể xảy ra. Mỗi lần thực hiện commit sẽ tạo một phiên bản mới trên Repository nên cần thực hiện commit sau khi đã kiểm tra file của mình cẩn thận. Để có thể thực hiện commit thì bạn phải được người quản trị phân cho mình quyền đó, nếu không được phân quyền cho phép commit thì bạn không thể thực hiện commit tài liệu. Và khi thực hiện commit ta chỉ commit những file sử dụng chung còn những file sử dụng riêng thì không lên commit. Một số hình ảnh khi thực hiện update và commit được Subversion lưu lại trên Repository của server.
Thực hiện update
Nhắp chuột phải vào file hoặc thư mục cần cập nhật chọn SVN Update thì cửa sổ xuất hiện và đợi cho việc cập nhật thông tin diễn ra đến khi hoàn thành như sau:
Hình 3.2: Danh sách các file Update
Nếu nhấn OK thì quá trình cập nhật hoàn tất. Lúc này trên client đã có phiên bản mới nhất của thư mục đã chọn trong quá trình phát triển phần mềm của đội.
Nếu bạn muốn biết ai đã thực hiện thay đổi các thư mục đó ta nhấn chọn vào mục “Show log …” bảng như sau xuất hiện và hiển thị tên, thời điểm, phiên bản người đó thực hiện commit những thay đổi đồng thời thể hiện phần nào được thêm vào, phần nào xóa bỏ, phần nào thay đổi và thời gian thực hiện những thay đổi đó.
Hình 3.3: Chi tiết thay đổi
Với thao tác này sẽ giúp cho các thành viên trong nhóm có thể lắm bắt được thay đổi một cách dễ dàng, thường xuyên, liên tục. Từ đó giúp các thành viên có thông tin kịp thời để xử lý công việc.
Nhắp chuột phải vào thư mục hoặc file cần commit chọn SVN commit sẽ xuất hiện
Hình 3.4: Các file được chọn Commit
Nhìn vào cửa sổ trên ta thấy có 4 file được chọn để commit. Nhấn chọn OK thì bảng sau xuất hiện:
Hình 3.5: Chi tiết thay đổi khi commit
Cửa sổ trên hiển thị 1 file thêm vào, 1 file bị xóa và 2 file thay đổi. Để hoàn thành quá trình commit ta chọn OK.
Trong các file được gửi lên server có cả những file do đội test thực hiện gưi danh sách các lỗi gặp phải. Nhờ công cụ hỗ trợ kiểm soát chất lượng Subversion, người
quản trị và các thành viên trong đội phát triển dựa vào danh sách các lỗi mà người kiểm thử đưa lên thực hiện phân tích các lỗi, xem xét lỗi xuất hiện ở phần việc của thành viên nào, trong file nào và ở vị trí nào với thao tác rất đơn giản đó là nhắp chọn vào lỗi cần kiểm tra theo thứ tự các bước như sau:
B1: chạy phân hệ Student B2: Chọn frmMain.cs
B3: Tìm đến vị trí lỗi bằng cách nhắp phải chuột vào danh mục lỗi frmSapXepDanhSachHocSinh chọn Go to Difinition khi đó xuất hiện đoạn chương trình đã xảy ra lỗi ở namespace VEMIS_Student.GUI
B4: Vào thư mục Student ở thư mục thực hiện Update chứ không phải trong thư mục mình thực hiện phát triển chọn GUI rồi thực hiện tìm đến file có tên frmSapXepDanhSachHocSinh nhắp phải chuột chọn TortoiseSVN chọn Show log. Lúc này cửa sổ như sau xuất hiện:
Hình 3.6: Tên thành viên sửa chữa
Cửa sổ này cho ta thấy tên thành viên trong đội tham gia sửa chữa và thời điểm thành viên đó đưa bản sửa lên.
B5: Nhắp chuột vào thành viên sửa đổi chọn mục thành viên đó thay đổi
Hình 3.7: Hiển thị những thay đổi của file
Cửa sổ này cho biết bản trước đó bị xóa bỏ dòng nào ở của sổ bên trái, còn cửa sổ bên phải cho ta biết dòng nào đã được thêm vào.
Sau khi sửa chữa một chức năng nào đó ở phần mã lệnh thì ta phải thực hiện kiểm thử lại chức năng đó xem có phát sinh lỗi nữa không. Nhưng việc kiểm thử lại riêng chức năng đó thì chưa đủ mà ta phải thực hiện kiểm thử lại cả những chức năng có liên quan để chánh trường hợp các chức năng liên quan đến chức năng mới sửa không làm việc đúng nữa. Đây gọi là kiểm thử hồi quy, loại kiểm thử này tốn nhiều thời gian và công sức nhất, nhưng việc bỏ qua nó là không được phép. Vì có thể dẫn đến tình trạng phát sinh hoặc tái xuất hiện những lỗi nghiêm trọng.
Cũng nhờ tác dụng hỗ trợ kiểm soát của Subversion mà người quản trị có thể kiểm tra tiến độ làm việc của các thành viên trong nhóm một cách dễ dàng. Với tiến độ làm việc của các thành viên thông qua việc commit lên server như vậy, người quản trị biết được với tiến độ làm việc đó có đáp ứng yêu cầu của dự án không? Từ đó đưa ra quyết định thay đổi thời gian thực hiện sao cho đáp ứng tốt nhất yêu cầu thời gian của dự án nhưng vẫn phải đảm bảo yêu cầu về chất lượng.
Tóm lại: Với đặc thù của phần mềm là: vừa tham gia phát triển, vừa thực hiện triển khai, đó là điểm khó khăn mà các đội phát triển phần mềm gặp phải. Nhưng nhóm phát triển của Viện công nghệ thông tin đã áp dụng kỹ thuật hỗ trợ kiểm soát chất lượng một cách nghiêm ngặt trong suốt quá trình phát triển phần mềm. Chính vì thế mà các thành viên trong nhóm phát triển hầu như không lặp lại những lỗi đã gặp. Số lỗi gặp phải ngày càng ít hơn, ít nghiêm trọng hơn. Thời gian sửa lỗi cũng giảm so với giai đoạn đầu lập trình. Vì vậy mà càng về sau công việc của nhóm phát triển càng thuận lợi hơn, hoàn thành nhanh và chính xác hơn. Giảm chi phí cho quá trình sản xuất, nâng cao chất lượng của sản phầm. Nhờ vậy mà chi phí về thời gian, công sức cho thực hiện phát triển giảm, giúp chất lượng phần mềm tăng.
KẾT LUẬN
Kết quả đạt được
Mục tiêu của luận văn đã đưa ra:
- Tập trung tìm hiểu những khái niệm, các mô hình ứng dụng thực tế và các lợi ích mang lại khi sử dụng các kỹ thuật hỗ trợ kiểm soát chất lượng phần mềm
- Tìm hiểu một số kỹ thuật hỗ trợ kiểm soát chất lượng
- Ứng dụng một số kỹ thuật hỗ trợ kiểm soát chất lượng vào phần mềm hỗ trợ quản lý nhà trường mà nhóm phát triển của Viện CNTT đang thực hiện.
Kết quả luận văn đạt được:
- Tìm hiểu khái niệm:
Khái niệm về chất lượng phần mềm, đảm bảo chất lượng phần mềm, kiểm soát chất lượng phần mềm
Quy trình phát triển phần mềm Mô hình phần tầng
Lập trình hướng đối tượng
- Nghiên cứu các kỹ thuật hỗ trợ kiểm soát chất lượng phần mềm đặc trưng
Tổ chức làm việc nhóm nhằm chia sẻ tài nguyên, phân công chức năng nhiệm vụ cho từng người, quy ước lập trình thống nhất trong nhóm …
Mô đun hóa các chức năng nhằm phục vụ cho việc phân công chức năng ở trên, với mỗi chức năng class, form được gán tới một người phụ trách. Dựa trên danh sách lỗi cần kiểm soát, chức năng cần bổ sung đi đến định vị ngay người cần chịu trách nhiệm và theo dõi được những sửa đổi của người đó trên các phiên bản nhờ Subversion.
Kỹ thuật kiểm thử giúp phát hiện khiếm khuyết, sai sót hay các lỗi. Các khiếm khuyết, các lỗi và cả những bổ sung được tài liệu hóa.
Kỹ thuật kiểm soát phiên bản giúp kiểm soát các thay đổi của chương trình, tài liệu qua nhiều phiên bản khác nhau dựa trên công cụ Subversion. Dựa vào danh sách lỗi cần kiểm soát, chức
năng cần bổ sung sẽ định vị ngay người chịu trách nhiệm và theo dõi được những sửa đổi của người đó trên các phiên bản. - Áp dụng kỹ thuật hỗ trợ kiểm soát chất lượng phần mềm vào thực tiễn.
Áp dụng kỹ thuật mô đun hóa chức năng: nêu được việc sử dụng lập trình hướng đối tượng như thế nào, thực hiện phân tầng ra sao, mô đun hóa tới từng cá nhân trong dự án….
Áp dụng kỹ thuật kiểm thử: cách áp dụng như thế nào, lợi ích của nó mang lại cho quá trình phát triển phần mềm ra sao.
Áp dụng kỹ thuật kiểm soát phiên bản: nhóm sử dụng công cụ kiểm soát phiên bản Subversion, cách thức áp dụng và hiệu quả mang lại cho chất lượng phần mềm khi áp dụng kỹ thuật này.
TÀI LIỆU THAM KHẢO
Tài liệu tiếng Việt:
[1]. Thạc Bình Cường - Bài giảng: Kiêm thử và đảm bảo chất lượng phần mềm [2]. Nguyễn Văn Vỵ, Nguyễn Việt Hà, 2009, Giáo trình kỹ nghệ phần mềm, NXB Giáo dục Việt Nam.
[3]. TCVN ISO 9001:2008
Tài liệu tiếng Anh:
[4]. Ben Collins-Sussman , Brian W. Fitzpatrick, C. Michael Pilato, Version Control with Subversion [DRAFT] For Subversion 1.6 Compiled from r3823
[5]. Frewin, GD. And Hatton B.J. Testing Software Using Multiple Versions. Software Productivity Consortium, Report No 89029, Reston, VA, June 1989.
[6]. John W. Horch, Practical Guide to Software Quylity Management, Second Edition ISBN 1580535275
[7]. Mauro PezzandMichal, Software Testing and Analysis: Process, Principles and Techniques
[8]. Myers, G.The Art of Software Testing. Wiley 1979
[9]. Robert T. Futrell, Donald F. Shafer, Linda I. Safer, Quality Software Project Management
[10]. Software Quality Engineering , Testing, Quality Assurance, and Quantifiable Improvement (chapter 3) Trang web: [11]. http://www2.computer.org/portal/web/swebok/html/ch11#Ref2.1 [12]. http://www.computer.org/portal/web/swebok/html/ch11#Ref2.1 [13]. http://en.wikipedia.org/wiki/Comparison_of_revision_control_software [14]. http://en.wikipedia.org/wiki/Client%E2%80%93server_model [15]. http://en.wikipedia.org/wiki/Coding_conventions