CHƯƠNG II: MỘT SỐ KỸ THUẬT HỖ TRỢ KIỂM SOÁT CHẤT LƯỢNG PHẦN MỀM
2.4. Kỹ thuật kiểm thử
2.4.4. Kiểm thử hồi quy
Kiểm thử hồi quy không như các mức kiểm thử nói trên, nó đơn thuần chỉ là kiểm thử lại phần mềm sau khi có sự sửa chữa, thay đổi xảy ra để đảm bảo rằng phần mềm mới thực hiện tốt các chức năng như phiên bản cũ và sự thay đổi không gây ra lỗi mới trên các chức năng vốn đã làm việc tốt. Kiểm thử hồi quy là mức kiểm thử tốn nhiều thời gian và chi phí nhất nhưng không được phép bỏ qua mức kiểm thử này. Nếu bỏ qua mức kiểm thử này, phần mềm có thể phát sinh các lỗi nguy hiểm không lường trước được.
Tóm lại trong phát triển các dự án phần mềm nói chung, hoạt động đảm bảo chất lượng phần mềm, hoạt động kiểm soát chất lượng và hoạt động cải tiến chất lượng luôn đóng vai trò quyết định cho sự thành công của dự án. Việc thực hiện kiểm soát chất lượng trong suốt vòng đời phát triển còn hỗ trợ phát hiện những khiếm khuyết sớm nhất có thể, nhờ đó giảm được nhiều chi phí sửa đổi, bảo trì. Góp phần nâng cao giá trị, nâng cao chất lượng cho phần mềm khi đưa vào sử dụng.
2.4.5. Danh sách lỗi và chức năng bổ sung
Với đặc điểm của phần mềm: quy mô lớn, thực hiện triển khai và phát triển đồng thời là điểm khó khăn đối với quá trình phát triển phần mềm. Điểm khó khăn được thể hiện ở đây là do thực hiện triển khai đồng thời vẫn thực hiện phát triển nên các
yêu cầu có thể được bổ sung để đáp ứng khách hàng. Vì vậy, để kiểm soát quá trình phát triển của phần mềm thì danh sách các khiếm khuyết, các lỗi được phát hiện trong quá trình đánh giá, kiểm thử và yêu cầu bổ sung được liệt kê dưới dạng danh sách như sau:
Ngày phát hiện vấn đề (ghi cụ thể hiện tượng)
Mô tả lỗi
Loại (câu hỏi/yêu
cầu)
Tầm quan trọng
Ngày ghi nhận
Người phát hiện
Thời hạn dự định xử
lý
Người phụ trách
Ngày dự định
kết thúc
Ngày dự định phúc đáp việc xử
lý
Ngày thực sự
hoàn tất
Tình trạng
Bảng 2. 1: các hạng mục khi liệt kê lỗi Ý nghĩa các mục trong bảng danh sách liệt kê.
- Ngày phát hiện vấn đề (ghi cụ thể hiện tượng):
o Khi thực hiện đánh giá, thực hiện kiểm thử mà phát hiện khiếm khuyết hay sai sót thì được ghi lại theo thứ tự các bước thực hiện. Phần này thông thường là do nhà phát triển thực hiện, đôi khi do người sử dụng phát hiện lỗi khi áp dụng dữ liệu thực tế mà người phát triển không lường trước được.
o Phần mềm khi triển khai tới người sử dụng, có bổ sung yêu cầu mới hoặc yêu cầu sửa đổi sao cho sát với nhu cầu sử dụng: có thể bổ sung về giao diện (cho dễ sử dụng, thân thiện với người sử dụng…), hoặc thêm chức năng…
- Mô tả lỗi: chỉ rõ lỗi thể hiện như thế nào - Loại (câu hỏi, yêu cầu)
o Yêu cầu thêm vào
o Lỗi không đáp ứng yêu cầu o Lỗi logic…
- Tầm quan trọng: ở mức trung bình hay mức cao
o Mức trung bình có thể phần mềm vẫn chạy được mà không bị ảnh hưởng nhiều. Như vậy có thể chưa cần thiết phải sửa ngay lập tức.
o Mức cao: ở mức này thì phải thực hiện sửa chữa sớm, tránh gây ảnh hưởng tới các phần khác hoặc phát sinh lỗi mới.
- Ngày ghi nhận: ghi lại thời điểm phát hiện lỗi hoặc thời điểm tiếp nhận yêu cầu từ phía khách hàng.
- Người phát hiện: ghi tên người phát hiện ra lỗi.
- Người phụ trách: khi nhìn vào miêu tả lỗi, xác định được lỗi đó thuộc về thành viên/đơn vị nào phụ trách phần nội dung gây lỗi. Khi nhìn vào bảng này thì thành viên/đơn vị phụ trách thấy được trách nhiệm của mình và tìn phương hướng sửa chữa khiếm khuyết, sai sót hoặc tìm cách bổ sung yêu cầu vào phần mềm.
- Ngày dự kiến kết thúc: dự kiến ngày hoàn thành các sửa chữa, bổ sung theo như được xác định.
- Ngày dự định phúc đáp việc xử lý: dự kiến ngày trao đổi với khách hàng để giải quyết những yêu cầu
- Ngày thực sự hoàn thành: ngày thực sự sửa chữa xong những khiếm khuyết hay đã hoàn thành việc bổ sung yêu cầu.
- Tình trạng (hiện thời): thể hiện tình trạng của phần mềm tại thời điểm hiện thời (đã chạy tốt hay vẫn đang sửa chữa).
Nhưng để có thể đưa ra được một bảng theo như miêu tả ở trên thì đòi hỏi người quản lý phải giầu kinh nghiệm trong phát triển phần mềm mới có thể đưa ra được các thông tin chi tiết như vậy. Với các thông tin được nêu ra trong bảng danh sách lỗi đó thì các thành viên trong nhóm phát triển biết được mô đun nào đã được kiểm tra, và việc kiểm tra, kiểm thử có đúng đắn không, biết được kế hoạch sửa chữa khiếm khuyết, sai sót, bổ sung yêu câu. Từ đó biết được mô đun chương trình nào có thể thực hiện triển khai được. Vì thế việc kiểm tra, kiểm thử không bị lăp lại giúp cho công việc của các thành viên trong nhóm phát triển sẽ dễ dàng, kịp thời và đáp ứng được việc kiểm soát chất lượng của phần mềm giúp phần mềm sản xuất có chất lượng cao
.
2.5. Kỹ thuật hỗ trợ kiểm soát phiên bản
Với đặc điểm của phần mềm: quy mô lớn, thực hiện triển khai và phát triển đồng thời là điểm khó khăn đối với quá trình phát triển phần mềm. Mỗi phần mềm khi phát triển luôn có những thay đổi và sửa chữa. Sự thay đổi và sửa chữa đó ở một mức độ sẽ tạo ra một phiên bản. Như vậy trong vòng đời phát triển của phần mềm có rất nhiều phiên bản được tạo ra. Đôi lúc ta cần xem lại nội dung phiên bản cũ. Các công cụ hỗ trợ kiểm soát phiên bản ra đời giúp kiểm soát lịch sử phiên bản đồng thời có khả năng truy vết các phiên bản đó. Kiểm soát các phiên bản chính là ta kiểm soát được một số thông tin như: nội dung thay đổi của từng phiên bản, thời gian thay đổi, người thay đổi và vị trí thay đổi của nội dung từ đó hỗ trợ cho việc kiểm soát chất lượng của phần mềm khi thay đổi, đồng thời kiểm soát được tiến độ thực hiện phát triển phần mềm. Trên thực tế có rất nhiều kỹ thuật hỗ trợ kiểm soát phiên bản như:
Subversion, Git, Bazaar, CVS, Code Co-op… Ứng với mỗi cách quản lý CSDL của dự án thì đội phát triển sẽ lựa chọn cho mình công cụ hỗ trợ kiểm soát phiên bản thích hợp. Ví dụ: Đối với dự án quản lý CSDL tập trung thì ta có thể sử dụng CVS, SVN,…để hỗ trợ kiểm soát phiên bản. Còn đối với dự án quản lý CSDL không tập trung thì ta dùng Git, Code Co-op, BitKeeper, Bazaar…. Kỹ thuật kiểm soát phiên bản được áp dụng phổ biến hiện nay tại Việt Nam cũng như trên Thế giới là SVN đối với CSDL tập trung và Git đối với CSDL không tập trung.
Đặc điểm cơ bản của hệ thống kiểm soát phiên bản là: tạo ra kho lưu trữ, tạo ra các phiên bản khi thay đổi được lưu vào kho lưu trữ, thực hiện lấy dữ liệu từ kho lưu trữ về máy và gửi thay đổi của mỗi thành viên lên máy chủ…
Với đặc điểm phần mềm có quy mô lớn, phát triển phần mềm theo nhóm. Yêu cầu đặt ra là phải có máy chủ để lưu trữ CSDL, lưu thay đổi trong quá trình phát triển và được giám sát bởi người quản lý dự án. Để thực hiện kiểm soát các phiên bản thì server được cài đặt phần mềm quản lý máy chủ, các client phải được cài đặt phần mềm trợ giúp cho việc trao đổi thông tin với máy chủ.