TẦM QUAN TRỌNG CỦA CÔNG TÁC ĐẢM BẢO CHẤT LƯỢNG PHẦN MỀM (P2)

03/11/2015 20:18
Theo dõi ICTVietnam trên

Những năm gần đây, một số tổ chức nghiên cứu và phát triển phần mềm đã bắt đầu có những quan tâm hơn đến vấn đề kiểm thử phần mềm. Việt Nam đang trong quá trình xây dựng ngành công nghiệp phần mềm thì phải hết sức coi trọng việc kiểm thử và đảm bảo chất lượng phần mềm nhằm giảm nguy cơ thất bại rất cao của các dự án lớn, phức tạp.

Kiểm thử phần mềm

Theo IEEE, kiểm thử phần mềm (testing) được định nghĩa: "Kiểm thử phần mềm là quá trình khảo sát một hệ thống hay thành phần dưới những điều kiện xác định, quan sát và ghi lại các kết quả, và đánh giá một khía cạnh nào đó của hệ thống hay thành phần đó". Ngoài ra, cũng có một định nghĩa ngắn gọn hơn: "Kiểm thử phần mềm là quá trình thực thi một chương trình với mục đích tìm lỗi".

Các mục tiêu chính của kiểm thử phần mềm

-Phát hiện càng nhiều lỗi càng tốt trong thời gian kiểm thử xác định trước.

-Chứng minh rằng sản phẩm phần mềm phù hợp với các đặc tả yêu cầu của nó.

-Tạo các testcase (tình huống kiểm thử) chất  lượng cao, thực hiện kiểm thử hiệu quả và tạo ra các báo cáo vấn đề đúng và hữu dụng.

Kiểm thử phần mềm là một thành phần trong lĩnh vực rộng hơn, đó là kiểm chứng (verification) và kiểm định phần mềm (validation).

Kiểm chứng phần mềm là quy trình xác định xem sản phẩm của một công đoạn trong quy trình phát triển phần mềm có thỏa mãn các yêu cầu đặt ra trong công đoạn trước hay không. Đó thường là hoạt động kỹ thuật vì sử dụng các kiến thức về artifacts (các sản phẩm tạo ra trong quá trình phát triển phần mềm), các yêu cầu, các đặc tả rời rạc của phần mềm. Các hoạt động kiểm chứng phần mềm bao gồm kiểm thử (testing), xem lại (reviews), kiểm chứng mô hình (model checking)...

Kiểm định phần mềm là quy trình đánh giá phần mềm ở cuối chu kì phát triển để đảm bảo sự hài lòng của khách hàng khi sử dụng (phần mềm có đúng theo yêu cầu khách hàng?). Kiểm định phần mềm thường phụ thuộc vào kiến thức của lĩnh vực nghiệp vụ mà phần mềm xử lý.

Tiêu chuẩn đảm bảo chất lượng phần mềm

Tổ chức ISO đã xây dựng các bộ tiêu chuẩn ISO/ IEC 9126 và ISO/IEC 14598 bao gồm các quy định và quy trình bảo đảm chất lượng sản phẩm phần mềm. Để phù hợp với tình hình thực tế và các chính sách tổng thể của từng quốc gia, một số nước đã xây dựng những bộ tiêu chuẩn và quy trình đảm bảo chất lượng phần mềm riêng. Ví dụ, năm 1996, Viện Quốc gia về Chuẩn và Công nghệ Hoa Kỳ (NIST) đã xây dựng quy trình kiểm chứng và kiểm định chất lượng phần mềm [6]. Các quy định trong bản quy trình là văn bản hướng dẫn và yêu cầu các công ty phải tuân thủ để kiểm chứng và kiểm định các sản phẩm phần mềm liên quan tới lĩnh vực y tế, tài chính ngân hàng và các hệ thống nhúng. Một số nước khác như Nhật Bản, Úc và các nước châu Âu cũng đã xây dựng các bộ tiêu chuẩn và quy trình đảm bảo chất lượng riêng. Chẳng hạn, năm 2007, Hiệp hội Kiểm soát Chất lượng Nhật Bản đã phát hành văn bản và bộ tiêu chuẩn hướng dẫn đảm bảo và quản lý chất lượng phần mềm [7].

Ngoài việc xây dựng các bộ tiêu chuẩn quy định về đảm bảo chất lượng phần mềm, chính phủ của một số nước (như Mỹ, Pháp và Nhật Bản) cũng xây dựng chính sách đầu tư nghiên cứu và phát triển khoa học công nghệ trong lĩnh vực kiểm chứng, kiểm định và đảm bảo chất lượng phần mềm. Nhiều trường đại học đã nhận được tài trợ để thành lập các trung tâm nghiên cứu, thành lập các tổ chức nghiên cứu và kiểm thử phần mềm độc lập. Các tổ chức quản lý thuộc chính phủ, các nhóm nghiên cứu ở các trường đại học và đại diện các công ty tham gia cùng nhau để thành lập các hiệp hội về kiểm chứng và đảm bảo chất lượng phần mềm. Các hiệp hội đồng thời là nơi tạo ra diễn đàn trao đổi và chia sẻ thông tin, làm cầu nối giữa các tổ chức chính phủ, đơn vị nghiên cứu và các doanh nghiệp. Ở Nhật Bản, với những dự án phần mềm mà chất lượng của sản phẩm có ảnh hưởng đến người dân, Chính phủ Nhật yêu cầu sản phẩm phần mềm phải được kiểm chứng và kiểm định chất lượng bởi một tổ chức độc lập, trước khi đưa vào sử dụng.

Có thể thấy, đảm bảo chất lượng phần mềm không chỉ đơn giản là trách nhiệm và công việc của công ty phát triển phẩn mềm đó, mà các tổ chức chính phủ, các đơn vị quản lý đại diện cho đại đa số người dùng cũng có quyền để kiểm định và giám sát chất lượng các sản phẩm trước khi đưa vào sử dụng.

Về chất lượng phần mềm ở Việt Nam

Ở Việt Nam, hiện chưa có bất kỳ báo cáo phân tích, thống kê nào về chất lượng phẩn mềm hay các lỗi do phẩn mềm gây ra được công bố. Chúng ta cũng chưa có một quy trình cụ thể và rõ ràng nào để kiểm thử và kiểm định chất lượng các sản phẩm phẩn mềm dùng chung do ngân sách nhà nước đẩu tư. Một ví dụ điển hình là sự thất bại của đề án tin học hoá quản lý hành chính nhà nước (Đề án 112). Trong nhiều nguyên nhân cũng có một phẩn lỗi liên quan đến chất lượng phẩn mềm như lỗi phân tích và đặc tả dẫn đến các sản phẩm làm ra không sử dụng được hoặc không đáp ứng được yêu cầu...

Theo nghiên cứu quốc tế, có khoảng 70% lỗi phẩn mềm phát sinh ở giai đoạn phân tích và đặc tả yêu cẩu, tương đương 49% (70% * 70%). Giả sử mỗi năm, ngân sách nhà nước cấp cho việc xây dựng và nâng cấp các dự án phẩn mềm là 1.000 tỷ VNĐ. Nếu các dự án có tổng mức đẩu tư tương đương nhau, thì 49% dự án thất bại do lỗi phân tích và đặc tả tương ứng với khoảng 490 tỷ VND. Do đó, việc phát hiện lỗi càng sớm càng giảm thiểu chi phí cho việc sửa lỗi và tránh được rủi ro dẫn đến thất bại. Nếu có một chính sách đúng đắn, một công cụ hữu hiệu cho việc kiểm định và đảm bảo chất lượng phẩn mềm để kiểm tra các dự án phẩn mềm ngay từ giai đoạn phân tích và thiết kế, chúng ta có thể giảm thiểu khả năng thất bại của các dự án phẩn mềm và qua đó, giảm thiểu được sự thất thoát lãng phí một lượng lớn ngân sách nhà nước.

Trước vấn đề cấp thiết như vậy, từ năm 2008, Bộ Thông tin và Truyền thông (Bộ TTTT) đã chỉ đạo nghiên cứu, xây dựng một Trung tâm đo kiểm phẩn mềm ứng dụng và các dịch vụ CNTT để phục vụ việc quản lý chất lượng của Bộ. Cục Tin học hóa (trước đây là Cục Ứng dụng CNTT) là đơn vị được giao nhiệm vụ nghiên cứu về công nghệ, giải pháp để đề xuất xây dựng và vận hành trung tâm đo kiểm. Đến cuối năm 2013, dự án hoàn thành hạng mục mua sắm, lắp đặt, cài đặt và thực hiện chạy thử. Sau quá trình chạy thử, rút kinh nghiệm và hoàn thiện việc áp dụng các quy trình chuẩn trong lĩnh vực đo kiểm và kiểm thử phẩn mềm; ngày 21/8/2014, Bộ trưởng Bộ TTTT đã ký Quyết định số 1197/QĐ-BTTTT về việc chỉ định Phòng đo kiểm để phục vụ công tác quản lý chất lượng, chỉ định Trung tâm Chính phủ điện tử thuộc Cục Tin học hóa là Phòng đo kiểm đầu tiên và duy nhất hiện nay, đáp ứng đầy đủ các yêu cầu về chỉ định phòng đo kiểm phục vụ công tác quản lý chất lượng thuộc quản lý chuyên ngành của Bộ TTTT, thực hiện kiểm thử phần mềm.

Phòng đo kiểm là sự kết hợp giữa các thiết bị phần cứng hiện đại, các công cụ kiểm thử tự động và các kiểm thử viên được đào tạo bài bản và áp dụng các quy trình chuẩn về kiểm thử của thế giới như ISO/ IEC/IEEE 29119, các yêu cầu trong hoạt động phòng đo kiểm như ISO/IEC 17025. Phần cứng có thể giả lập chính xác các môi trường thực mà phần mềm, hệ thống phần mềm đang được cài đặt để phục vụ kiểm thử. Công cụ kiểm thử tự động IBM Rational hỗ trợ các kiểm thử viên trong việc kiểm thử chức năng, hiệu năng và bảo mật. Phòng đo có thể kiểm thử hiệu năng với số lượng hàng chục nghìn người dùng ảo; có thể kiểm thử bảo mật và đưa ra các khuyến cáo theo danh sách các lỗi bảo mật nghiêm trọng từ các tổ chức phân tích bảo mật uy tín trên thế giới; có thể đánh giá phần mềm có phù hợp với các tiêu chuẩn hay các quy định hiện hành. Các kiểm thử viên được đào tạo bài bản và được cấp chứng chỉ kiểm thử viên quốc tế ISTQB.

Phòng đo kiểm được phép cung cấp 5 dịch vụ cơ bản gồm: kiểm thử tĩnh (static test), kiểm thử đơn vị (unit test), kiểm thử tích hợp (intergration test), kiểm thử hệ thống (system test) và kiểm thử chấp nhận (acceptance test). Đối với mỗi dịch vụ kiểm thử, phòng đo kiểm được phép thực hiện các phép đánh giá chức năng, hiệu năng và bảo mật, áp dụng các kỹ thuật kỹ thuật kiểm thử thủ công và kiểm thử tự động một cách phù hợp.

LỜI KẾT

Từ trước đến nay, việc kiểm thử phần mềm ở Việt Nam, nhất là các phần mềm trong cơ quan nhà nước đang chưa được quan tâm đúng mức. Những năm gần đây, một số tổ chức nghiên cứu và phát triển phần mềm đã bắt đầu có những quan tâm hơn đến vấn đề kiểm thử phần mềm. Việt Nam đang trong quá trình xây dựng ngành công nghiệp phần mềm thì phải hết sức coi trọng việc kiểm thử và đảm bảo chất lượng phần mềm nhằm giảm nguy cơ thất bại rất cao của các dự án lớn, phức tạp.

Ngày 01/7/2014, Bộ Chính trị đã ban hành Nghị quyết số 36-NQ/TW về đẩy mạnh ứng dụng, phát triển CNTT&TT đáp ứng yêu cầu phát triển bền vững và hội nhập quốc tế. Một trong những giải pháp quan trọng có tính đột phá của Nghị quyết 36-NQ/TW chỉ rõ: "Ứng dụng, phát triển CNTTlà nội dung bắt buộc trong từng chiến lược, quy hoạch, kế hoạch phát triển, cũng như trong từng đề án, dự án đầu tư của mỗi ngành, lĩnh vực, địa phưong, cơ quan, đơn vị". Đây là cơ hội chưa từng có cho ngành CNTT Việt Nam nói chung và phần mềm nói riêng nhưng cũng là thách thức rất lớn cho công tác đảm bảo chất lượng phần mềm. Vì thế, chính sách kiểm thử và đảm bảo chất lượng phần mềm trở thành yếu tố quan trọng trong việc xây dựng một xã hội điện tử chất lượng và an toàn.

Tài liệu tham khảo

[1].http://www.codeguru.com/blog/category/programming/ the-cost-of-bugs.html.
[2].KENEDY SMITH, The Software Industry's Bug Problem, (http://www.qualitydigest.com).
[3].Top 5 Most Expensive Natiral Disasters in History (http:// www.accuweather.com).
[4].A Collectbn of Well-Known Software Failures (http://www. cse.lehigh.edu).
[5].RON PATTON. Software Testing, First edition, SAMS publishing, 2001.
[6].D. R. WALLACE, L. M. IPPOLITO, B. CUTHILL. Reference Information for the Software Verification and Validation Process. NIST Special Publication, 500-234, 1996.
[7].SQuBOK Project Team. Guide to the Software Quality Body of Knowledge (SQuBOK), Ohmsha Ltd, Tokyo, Japan, 2007.

Nguyễn Văn Tăng, Nguyễn Hữu Quốc, Lê Nhật

(TC TTTT Kỳ 2/10/2014)

Nổi bật Tạp chí Thông tin & Truyền thông
Đừng bỏ lỡ
TẦM QUAN TRỌNG CỦA CÔNG TÁC ĐẢM BẢO CHẤT LƯỢNG PHẦN MỀM (P2)
POWERED BY ONECMS - A PRODUCT OF NEKO