Tên gọi, mã số tiêu chuẩn
“Kỹ thuật hệ thống và phần mềm - Kiểm thử phần mềm - Phần 2: Quy trình kiểm thử”
1.3 Mục tiêu, nội dung và kết quả xây dựng tiêu chuẩn
- Phục vụ công tác kiểm thử phần mềm
Nghiên cứu, khảo sát hiện trạng và đánh giá nhu cầu đối với việc kiểm thử phần mềm
- Nghiên cứu tình hình và xu thế chuẩn hóa đối với “Kiểm thử phần mềm - Phần 2: Quy trình kiểm thử”.
- Nghiên cứu lựa chọn tiêu chuẩn tham chiếu chính.
- Nghiên cứu xây dựng tiêu chuẩn quốc gia “Kiểm thử phần mềm - Phần 2: Quy trình kiểm thử”, bao gồm:
+ Quy trình kiểm thử của tổ chức;
+ Quy trình quản lý kiểm thử;
+ Quy trình kiểm thử động.
- Thuyết minh dự thảo tiêu chuẩn Quốc gia.
- Dự thảo bộ Tiêu chuẩn Quốc gia về Kiểm thử phần mềm - Phần 2: Quy trình kiểm thử.
2 Nghiên cứu, khảo sát hiện trạng và đánh giá nhu cầu đối với việc kiểm thử phần mềm
2.1 Kiểm thử phần mềm và vòng đời phần mềm
Phần mềm là các chương trình, ứng dụng và website được phát triển và chạy trên các thiết bị điện toán như máy tính và điện thoại di động Trong lĩnh vực kiểm thử phần mềm, khái niệm này còn bao gồm các tài liệu và dữ liệu liên quan đến hoạt động của hệ thống điện toán.
Kiểm thử phần mềm là quá trình quan trọng nhằm phát hiện lỗi trong thiết kế, mã nguồn, chức năng, bảo mật và khả năng sử dụng của phần mềm Đây là bước cuối cùng trước khi sản phẩm được chuyển giao cho khách hàng, với người kiểm thử đóng vai trò đại diện cho khách hàng để đảm bảo chất lượng sản phẩm Do đó, kiểm thử phần mềm có ảnh hưởng lớn đến thành công của dự án và chất lượng cuối cùng của sản phẩm.
Tại sao kiểm thử lại cần thiết?
Phần mềm không hoạt động đúng cách có thể dẫn đến lãng phí tài chính, thời gian và uy tín của doanh nghiệp, đồng thời có nguy cơ gây ra thương tích hoặc thậm chí tử vong.
Website của công ty chứa nhiều lỗi chính tả, khiến khách hàng có thể cảm thấy không tin tưởng và tránh xa Điều này tạo ấn tượng xấu về sự chuyên nghiệp của công ty.
Phần mềm tính toán lượng thuốc trừ sâu cho cây trồng rất quan trọng, vì nếu tính sai số lượng, nông dân có thể phải chi phí gấp 10 lần, dẫn đến cây trồng hư hại, ô nhiễm môi trường và nguồn nước.
- Kiểm thử phần mềm làm cho chất lượng phần mềm được nâng cao.
Chất lượng phần mềm có thể được đánh giá qua số lượng lỗi phát hiện và các đặc tính quan trọng như tính đúng đắn, tính dễ sử dụng và tính dễ bảo trì.
Kiểm thử phần mềm đóng vai trò quan trọng trong việc đảm bảo chất lượng sản phẩm, vì nó giúp phát hiện và sửa lỗi, từ đó tăng cường độ tin cậy của phần mềm Khi ít hoặc không có lỗi được phát hiện, chi phí phát triển, nâng cấp và bảo trì phần mềm sẽ được giảm thiểu, mang lại hiệu quả kinh tế cao hơn cho các dự án công nghệ.
Công việc kiểm thử phần mềm cần được khởi động sớm trong các mô hình phát triển phần mềm để đảm bảo chất lượng sản phẩm Vòng đời phần mềm (SDLC) là quy trình phát triển phần mềm bao gồm nhiều giai đoạn, từ lập kế hoạch, thiết kế, phát triển đến kiểm thử và bảo trì Các mô hình vòng đời phát triển phần mềm ảnh hưởng trực tiếp đến quy trình kiểm thử, giúp xác định thời điểm và cách thức kiểm thử được thực hiện, từ đó nâng cao hiệu quả và độ tin cậy của phần mềm.
Vòng đời phần mềm (Software life-cycle) đề cập đến toàn bộ quá trình từ khi phần mềm được phát triển cho đến khi ngừng sử dụng Quá trình này bao gồm các giai đoạn như hình thành, đáp ứng yêu cầu, vận hành và bảo trì, cho đến khi phần mềm không còn cần thiết và bị loại bỏ.
Common software development models include the Waterfall model, which follows a linear sequential approach; the Prototype model, focusing on creating prototypes for user feedback; the Incremental Iterative model, which emphasizes gradual improvements through iterations; the V-model, highlighting verification and validation processes; the Spiral model, which combines iterative development with risk assessment; Agile, promoting flexibility and collaboration; and the Rapid Application Development (RAD) model, aimed at quick application development.
Các mô hình phát triển phần mềm trải qua nhiều pha khác nhau nhằm cải tiến và tối ưu hóa quy trình, với mục tiêu tạo ra sản phẩm chất lượng hơn trong thời gian ngắn nhất Ví dụ, mô hình thác nước (Waterfall) có giai đoạn kiểm thử ở cuối quy trình, dẫn đến việc phát hiện lỗi chỉ khi dự án đã hoàn thành, gây tốn kém khi phải quay lại sửa đổi tài liệu và mã chương trình Điều này cho thấy sự cần thiết trong việc phát triển các mô hình mới nhằm khắc phục những hạn chế của các phương pháp truyền thống.
Mô hình chữ V (V model) tích hợp kiểm thử ngay từ giai đoạn đầu của quy trình phát triển, bắt đầu từ việc phân tích yêu cầu, xem xét tài liệu, đặc tả chi tiết, thiết kế, mã nguồn, cho đến kiểm thử từng module, chức năng, và cuối cùng là kiểm thử tích hợp, hệ thống và chấp nhận So với các mô hình trước, mô hình này giúp nâng cao chất lượng dự án nhờ vào việc kiểm thử liên tục Tuy nhiên, do việc phát triển đồng thời nhiều yêu cầu và chức năng, rủi ro về thay đổi yêu cầu từ khách hàng vẫn rất lớn, dẫn đến khả năng gặp rắc rối trong quá trình phát triển.
Trong các mô hình phát triển phần mềm hiện đại, giai đoạn kiểm thử thường được đưa lên sớm hơn bằng cách chia nhỏ ứng dụng và hệ thống thành các giai đoạn phát triển nhỏ hơn Các mô hình tiêu biểu cho phương pháp này bao gồm RUP (Rational Unified Process) và Agile (như Scrum, XP, ).
Mỗi mô hình Phát triển Phần mềm (SDLC) sẽ có những hoạt động và quy trình kiểm thử riêng, điều này dẫn đến sự khác biệt trong các phương pháp kiểm thử được áp dụng.
Mỗi mô hình vòng đời phát triển phần mềm có các giai đoạn phát triển và kiểm thử khác nhau, ảnh hưởng trực tiếp đến chất lượng phần mềm Các hoạt động kiểm thử cũng sẽ khác nhau tùy thuộc vào từng mô hình, do đó, việc lựa chọn mô hình phù hợp là rất quan trọng để đảm bảo hiệu quả trong quá trình phát triển.
2.2 Hiện trạng và nhu cầu kiểm thử phần mềm tại Việt nam
Tình hình tiêu chuẩn hóa trong và ngoài nước
Ngoài nước
Sản phẩm phần mềm hiện nay đang được chú trọng và quản lý chặt chẽ theo các tiêu chuẩn nhất định, bao gồm kinh nghiệm và phương pháp hiệu quả từ các hiệp hội nghề nghiệp như IEEE, tổ chức quốc tế như ISO, hoặc các quy tắc chuẩn hóa để đảm bảo sự giao tiếp giữa các sản phẩm Ngoài ra, các tổ chức phát triển phần mềm cũng có thể tự đặt ra tiêu chuẩn riêng để áp dụng cho chính họ.
Vào những năm cuối thế kỷ 20, tổ chức ISO đã chú trọng phát triển tiêu chuẩn chất lượng cho phần mềm, với cách tiếp cận toàn diện và phù hợp hơn Sự tập trung này đã dẫn đến việc ra đời nhiều bộ tiêu chuẩn, nhằm đánh giá chất lượng sản phẩm phần mềm trong suốt vòng đời của nó Để giải quyết những chồng chéo trong tiêu chuẩn hóa công nghệ thông tin, ISO/IEC đã thành lập Ủy ban kỹ thuật chung ISO/IEC JTC1, có nhiệm vụ phát triển, duy trì và khuyến khích các tiêu chuẩn công nghệ thông tin phù hợp với nhu cầu của thị trường toàn cầu và người sử dụng.
Thiết kế và phát triển các hệ thống và công cụ công nghệ thông tin.
Tính thực thi và chất lượng của các sản phẩm và hệ thống công nghệ thông tin.
An ninh của các hệ thống công nghệ thông tin và thông tin.
Tính linh động của các chương trình ứng dụng.
Thao tác giữa các bộ phận của các sản phẩm và hệ thống công nghệ thông tin.
Hợp nhất các công cụ và môi trường.
Hòa hợp từ vựng công nghệ thông tin.
Các giao diện người dùng thân thiện và hài hòa.
Hiện tại có 18 tiểu ban (SC):
SC 02 - Các bộ ký tự mã hóa.
SC 06 - Trao đổi liên lạc và thông tin giữa các hệ thống.
SC 07 - Kỹ thuật phần mềm và hệ thống.
SC 17 - Thẻ và nhận dạng cá nhân.
SC 22 - Ngôn ngữ lập trình, môi trường của chúng và các hệ thống giao diện phần mềm.
SC 23 - Các thiết bị lưu trữ số hóa tháo lắp sử dụng công nghệ ghi quang học và/hoặc từ tính cho số hóa.
SC 24 - Đồ họa máy tính và xử lý ảnh.
SC 25 - Liên kết thiết bị công nghệ thông tin.
SC 27 - Các kỹ thuật an ninh công nghệ thông tin.
SC 28 - Các thiết bị văn phòng.
SC 29 - Mã hóa thông tin âm thanh, hình ảnh, đa truyền thông và siêu truyền thông.
SC 31 - Nhận dạng tự động và các kỹ thuật bắt giữ số liệu.
SC 32 - Quản lý và trao đổi dữ liệu.
SC 34 - Mô tả tài liệu và các ngôn ngữ xử lý.
SC 35 - Giao diện người dùng.
SC 36 - Công nghệ thông tin trong giảng dạy, học tập và tập huấn.
Tiểu ban SC7 chịu trách nhiệm về tiêu chuẩn kỹ thuật phần mềm và hệ thống, bao gồm việc tiêu chuẩn hóa các quá trình, kỹ thuật và công cụ hỗ trợ cho kỹ thuật hệ thống và phần mềm Mục tiêu của SC7 là phát triển, duy trì và khuyến khích việc hướng dẫn, sử dụng, đồng thời đảm bảo phù hợp với nhu cầu kinh doanh, nghiên cứu và người dùng trong lĩnh vực công nghệ thông tin Phạm vi trách nhiệm của SC7 bao gồm tất cả các khía cạnh liên quan đến kỹ thuật hệ thống và phần mềm.
Các quá trình kỹ thuật phần mềm và hệ thống bao gồm việc mô tả, trình bày và đánh giá các tiêu chuẩn kỹ thuật dựa trên các mô hình tham chiếu cùng với các phép đo tiêu chuẩn.
Các sản phẩm hệ thống phần mềm bao gồm các tiêu chuẩn cung cấp tài liệu hướng dẫn chi tiết về phương pháp đo lường và đánh giá chất lượng của sản phẩm phần mềm cũng như các hệ thống ứng dụng.
Kiến trúc tổ chức kinh doanh đề cập đến các tiêu chuẩn trình bày cho hệ thống kinh doanh, tích hợp kỹ thuật phần mềm nhằm cung cấp công cụ và hệ thống cần thiết để triển khai các hệ thống thông tin trong tổ chức kinh doanh.
Môi trường kỹ thuật phần mềm bao gồm các tiêu chuẩn quan trọng để mô tả và áp dụng trong các hệ thống phát triển phần mềm Việc tuân thủ các tiêu chuẩn này giúp cải thiện chất lượng sản phẩm và quy trình phát triển, đồng thời đảm bảo tính nhất quán và hiệu quả trong các môi trường kỹ thuật khác nhau.
• Kiến thức về kỹ thuật phần mềm: các bản báo cáo kỹ thuật ISO/IEC.
• Quản lý các tài sản phần mềm: Các tiêu chuẩn mô tả các yêu cầu cơ bản trong một môi trường quản lý tài sản phần mềm.
• Vận hành công nghệ thông tin: các tiêu chuẩn cung cấp và mô tả việc quản lý các dịch vụ công nghệ thông tin.
Hình 1 - Hệ thống các tiêu chuẩn ISO về kỹ thuật hệ thống và phần mềm
Dựa trên việc hệ thống và phân nhóm các quá trình, SC7 đã nhóm các tiêu chuẩn ISO một cách hợp lý, tạo điều kiện thuận lợi cho việc sử dụng Hình 1 minh họa sơ đồ hệ thống các tiêu chuẩn ISO do SC7 quản lý, thể hiện tính bao quát trong việc xây dựng hệ thống tiêu chuẩn kỹ thuật hệ thống và phần mềm của ISO Các tiêu chuẩn này được phát triển với mối liên hệ chặt chẽ, từ các tiêu chuẩn bổ trợ đến các tiêu chuẩn hướng dẫn chung về vòng đời sản phẩm, đánh giá và triển khai các quá trình, cũng như các tiêu chuẩn liên quan đến đặc tính sản phẩm.
Các tiêu chuẩn về Kỹ thuật và hệ thống phần mềm được trình bày trong bảng 1 dưới đây:
Bảng 1 - Một số tiêu chuẩn ISO về kỹ thuật hệ thống và phần mềm
Ký hiệu tài liệu Tên tài liệu
Các tiêu chuẩn tham chiếu các quá trình và sản phẩm
ISO/IEC 12207:2013 Systems and Software Engineering - Software Life
Cycle Processes (Kỹ thuật hệ thống và phần mềm -
Các quá trình vòng đời phần mềm).
Ký hiệu tài liệu Tên tài liệu
ISO/IEC/IEEE 15288:2015 Systems and Software Engineering - System Life
Cycle Processes (Kỹ thuật hệ thống và phần mềm -
Các quá trình vòng đời hệ thống).
ISO/IEC 29110:2011 Software Engineering - Life Cycle Profiles for Very
Small Entities (VSEs) (Kỹ thuật phần mềm - Sơ lược vòng đời của các thực thể rất nhỏ).
Software Engineering - Guidelines for the Application of ISO 9001:2000 to Computer Software (Kỹ thuật phần mềm - Các hướng dẫn áp dụng ISO 9001:2000 cho phần mềm máy tính).
Systems and Software Engineering - Life cycle management - Part 1: Guide for life cycle management (Kỹ thuật hệ thống và phần mềm -
Quản lý vòng đời - Phần 1: Hướng dẫn quản lý vòng đời).
The article discusses the principles of Systems and Software Engineering, focusing on life cycle management as outlined in ISO/IEC 15288 It serves as a comprehensive guide for applying system life cycle processes, emphasizing the importance of structured methodologies in engineering practices This framework aids in ensuring effective management throughout the various stages of a system's life cycle, ultimately enhancing project success and reliability.
This article serves as a comprehensive guide to the application of ISO/IEC 12207, focusing on software life cycle processes within systems and software engineering It emphasizes the importance of life cycle management in ensuring effective software development and maintenance By adhering to ISO/IEC 12207 standards, organizations can enhance their software quality, streamline processes, and improve project outcomes This guide is essential for professionals seeking to implement best practices in software life cycle management.
Systems Engineering - Application and management of the systems engineering process (ISO/IEC CD
24748-4: Kỹ thuật hệ thống - Áp dụng và quản lý quá trình kỹ thuật hệ thống).
Các tiêu chuẩn đánh giá và triển khai quá trình
Systems and Software Engineering - Software Life Cycle Processes - Maintenance (Kỹ thuật phần mềm
- Các quá trình vòng đời phần mềm - Bảo trì).
Systems and Software Engineering - Life Cycle Processes - Risk Management (Kỹ thuật hệ thống và phần mềm - Các quá trình vòng đời - Quản lý rủi ro).
ISO/IEC/IEEE 16326:2009 Systems and Software Engineering - Life Cycle
Processes - Project Management (Kỹ thuật hệ thống và phần mềm - Các quá trình vòng đời - Quản lý dự
Ký hiệu tài liệu Tên tài liệu án).
Software and systems engineering - Software testing - Part 1: Concepts and definitions (Kỹ thuật hệ thống và phần mềm - Kiểm thử phần mềm - Phần 1: Khái niệm và định nghĩa).
Software and systems engineering - Software testing - Part 2: Test processs (Kỹ thuật hệ thống và phần mềm
- Kiểm thử phần mềm - Phần 2: Quy trình kiểm thử).
Software and systems engineering - Software testing
- Part 3: Test documentation (Kỹ thuật hệ thống và phần mềm - Kiểm thử phần mềm - Phần 3: Tài liệu kiểm thử).
Software and systems engineering - Software testing
- Part 4: Test techniques (Kỹ thuật hệ thống và phần mềm - Kiểm thử phần mềm - Phần 4: Kỹ thuật kiểm thử).
Systems and Software Engineering - Life Cycle Processes - Requirements Engineering (Kỹ thuật hệ thống và phần mềm) - Các quá trình vòng đời - Các yêu cầu).
Systems and Software Engineering encompasses the comprehensive life cycle processes of software and system development, focusing on the creation of essential information products, including documentation and guidelines These processes ensure effective management and delivery of software solutions, facilitating clear communication and understanding throughout the development phases.
Các tiêu chuẩn series 20000 về quản lý dịch vụ
Information Technology - Service Management - Part 1: Service Management System Requirements (Công nghệ thông tin - Quản lý dịch vụ - Phần 1: Các yêu cầu hệ thống quản lý dịch vụ).
ISO/IEC 20000-2:2012 Information Technology - Service Management - Part
2: Code of Practice (Công nghệ thông tin - Phần 2:
ISO/IEC 20000-1 provides a comprehensive framework for IT service management, outlining the scope, definitions, and applicability essential for organizations aiming to enhance their service delivery This standard establishes best practices that facilitate effective service management processes, ensuring alignment with business objectives By adhering to ISO/IEC 20000-1, organizations can improve their service quality, increase customer satisfaction, and achieve operational efficiency Understanding the guidelines within this standard is crucial for organizations seeking to implement or refine their IT service management practices.
ISO/IEC TR 20000-4:2010 Information Technology - Service Management - Part
4: Process Reference Model (Công nghệ thông tin -
Ký hiệu tài liệu Tên tài liệu
Quản lý dịch vụ - Phần 4: Mô hình tham chiếu quá trình).
Information Technology - Service Management - Part 5: Exemplar Implementation Plan for ISO/IEC 20000-1 (Công nghệ thông tin - Quản lý dịch vụ -
Phần 5: Lập kế hoạch triển khai mẫu đối với ISO/IEC 20000-1).
Information Technology - Service Management - Part 10: Concepts and Terminology (Công nghệ thông tin
- Quản lý dịch vụ - Phần 10: Các khái niệm và thuật ngữ).
Bộ các tiêu chuẩn ISO/IEC 15504 về đánh quá trình
ISO/IEC 33001:2015 (thay thế cho ISO/IEC 15504-
Information Technology - Process Assessment - Concepts and Vocabulary (Công nghệ thông tin - Đánh giá quá trình - Phần 1: Các khái niệm và từ vựng).
In the realm of Information Technology, specifically within software process assessment, Part 2 introduces a reference model that outlines key processes and evaluates process capability This model serves as a foundational framework for understanding and improving software development methodologies, ensuring that organizations can effectively assess their processes and enhance their operational efficiency By leveraging this reference model, businesses can achieve greater consistency and quality in their software delivery, ultimately driving better outcomes in their IT projects.
Information Technology - Process Assessment - Part 3: Guidance on Performing an Assessment (Công nghệ thông tin - Đánh giá quá trình - Phần 3: Hướng dẫn thực hiện đánh giá).
In the realm of Information Technology, Part 4 of the Process Assessment series provides essential guidance for organizations seeking to enhance their process improvement strategies and accurately determine process capability This section emphasizes the importance of systematic evaluation and offers practical insights to optimize workflows, ensuring that businesses can effectively assess their operational performance and drive continuous improvement By implementing these recommendations, organizations can achieve greater efficiency and adaptability in their processes.
Information Technology - Process Assessment - Part 5: An Exemplar Process Assessment Model (Công nghệ thông tin - Đánh giá quá trình - Phần 5: Mô hình đánh giá quá trình mẫu).
In the realm of Information Technology, the sixth part of our series focuses on an exemplary model for assessing system life cycle processes This assessment model serves as a benchmark for evaluating the effectiveness and efficiency of IT processes, ensuring that organizations can optimize their system development and management practices By implementing this model, businesses can enhance their project outcomes and align their IT strategies with overarching goals.
Ký hiệu tài liệu Tên tài liệu
Information Technology - Software Process Assessment - Part 9: Vocabulary (Công nghệ thông tin - Đánh giá quá trình phần mềm - Phần 9: Từ vựng).
Information Technology - Process Assessment - Part 10: Safety Extension (Công nghệ thông tin - Đánh giá quá trình - Phần 10: Mở rộng tính an toàn).
Các tiêu chuẩn liên quan đến đảm bảo chất lượng (QA) và quy trình kiểm thử được trình bày ở bảng 2 dưới đây:
Bảng 2 - Các tiêu chuẩn liên quan đến đảm bảo chất lượng và quy trình kiểm thử
Ký hiệu tài liệu Tên tài liệu
Các tiêu chuẩn tham chiếu các quá trình và sản phẩm
Trong nước
Kiểm thử phần mềm là một lĩnh vực ngày càng quan trọng và phát triển mạnh mẽ tại Việt Nam trong khoảng một thập kỷ qua, góp phần hỗ trợ ngành công nghiệp phần mềm cạnh tranh với các quốc gia trong khu vực Tuy nhiên, Việt Nam đang phải đối mặt với sự cạnh tranh gay gắt từ các nước như Ấn Độ, nơi mà kiểm thử phần mềm cũng đang phát triển mạnh mẽ.
Mỹ và Trung Quốc do gặp một thách thức về nguồn cung ứng nhân lực cho dự án của các công ty còn hạn chế.
Trong bối cảnh cần đảm bảo chất lượng sản phẩm phần mềm, Việt Nam đã tập trung vào việc xây dựng và ban hành các tiêu chuẩn liên quan đến sản phẩm này.
Bảng 3 - Các TCVN đã ban hành liên quan đến phần mềm
Số hiệu Tên tiêu chuẩn
TCVN 8702:2011 Công nghệ thông tin - Chất lượng sản phẩm phần mềm - Phần
1: Các phép đánh giá ngoài.
TCVN 8703:2011 Công nghệ thông tin - Chất lượng sản phẩm phần mềm - Phần
2: Các phép đánh giá trong.
TCVN 8704:2011 Công nghệ thông tin - Chất lượng sản phẩm phần mềm - Phần
3: Các phép đánh giá đánh giá chất lượng sử dụng.
TCVN 8705:2011 Công nghệ thông tin - Đánh giá sản phẩm phần mềm - Phần 1:
TCVN 8706:2011 Công nghệ thông tin - Đánh giá sản phẩm phần mềm - Phần 2:
Quy trình cho bên đánh giá.
TCVN 8707:2011 Công nghệ thông tin - Đánh giá sản phẩm phần mềm - Phần 3:
Quy trình cho người phát triển.
TCVN 8708:2011 Công nghệ thông tin - Đánh giá sản phẩm phần mềm - Phần 4:
Quy trình cho người mua sản phẩm.
Số hiệu Tên tiêu chuẩn
TCVN 10539:2014 Kỹ thuật hệ thống và phần mềm - Các quá trình vòng đời phần mềm.
TCVN 10540:2014 quy định các yêu cầu và tiêu chí đánh giá chất lượng sản phẩm phần mềm, đặc biệt là các sản phẩm phần mềm sẵn sàng phổ biến và thương mại hóa (COTS) Tiêu chuẩn này cung cấp hướng dẫn chi tiết về các yêu cầu chất lượng cần thiết để đảm bảo sản phẩm phần mềm đạt tiêu chuẩn trong quá trình kiểm tra và đánh giá Việc áp dụng TCVN 10540:2014 giúp các tổ chức, doanh nghiệp nâng cao chất lượng sản phẩm phần mềm, đáp ứng nhu cầu thị trường và đảm bảo sự hài lòng của khách hàng.
Các tiêu chuẩn hiện tại chỉ đưa ra các phép đánh giá về chất lượng sản phẩm phần mềm và quy trình vòng đời của nó Tuy nhiên, vẫn chưa tồn tại tiêu chuẩn hay quy chuẩn cụ thể nào dành cho việc kiểm thử phần mềm.
Một số dự thảo đã được xây dựng về kiểm thử phần mềm:
Bảng 4 - Các TCVN đang xây dựng liên quan đến kiểm thử phần mềm
Mã số Tên tiêu chuẩn
TCVN xxxx-1:2019 Nghiên cứu, xây dựng tiêu chuẩn quốc gia “Kiểm thử phần mềm - Phần 1: Khái niệm và định nghĩa”.
TCVN xxxx-3:2019 Nghiên cứu, xây dựng tiêu chuẩn quốc gia “Kiểm thử phần mềm - Phần 3: Tài liệu kiểm thử”
TCVN xxxx-4:2019 Nghiên cứu, xây dựng tiêu chuẩn quốc gia “Kiểm thử phần mềm - Phần 4: Các kỹ thuật kiểm thử”.
Phương pháp xây dựng tiêu chuẩn
Lý do và mục đích xây dựng tiêu chuẩn
Để một sản phẩm phần mềm nhận được đánh giá tích cực khi đưa vào sử dụng, việc thực hiện quy trình kiểm thử nghiêm ngặt là điều cần thiết Quy trình này đóng vai trò quan trọng và không thể thiếu trước khi bất kỳ sản phẩm phần mềm nào được đánh giá.
Hiện nay, nhiều doanh nghiệp phần mềm tại Việt Nam chưa có quy trình kiểm thử phần mềm chính thức hoặc tự xây dựng quy trình riêng, dẫn đến việc không đảm bảo chất lượng sản phẩm Các quy trình kiểm thử thường chỉ nằm trong mô hình phát triển phần mềm chung mà không tuân thủ các tiêu chuẩn quốc tế ISO và CMM/CMMI là những tiêu chuẩn quản lý chất lượng quan trọng, nhưng số lượng công ty phần mềm áp dụng thành công các tiêu chuẩn này tại Việt Nam rất hạn chế, chủ yếu là các công ty lớn có nguồn gốc đầu tư nước ngoài như FPT, PSV, Global Cybersoft, TMA và Tinh Vân Do đó, việc xây dựng bộ TCVN cho kiểm thử phần mềm là cần thiết để nâng cao chất lượng sản phẩm trong ngành công nghiệp phần mềm tại Việt Nam.
Mục tiêu xây dựng tiêu chuẩn kiểm thử phần mềm là cung cấp một mô hình quy trình chung có thể áp dụng cho mọi vòng đời phát triển phần mềm Mô hình này thiết lập các quy trình kiểm thử nhằm kiểm soát, quản lý và thực hiện kiểm thử phần mềm hiệu quả trong bất kỳ tổ chức, dự án hoặc hoạt động kiểm thử nào.
Nhu cầu thực tế và khả năng áp dụng
Tiêu chuẩn này áp dụng cho việc quản lý và thực hiện kiểm thử phần mềm trong mọi tổ chức, dự án và hoạt động kiểm thử Nó có thể được sử dụng trong tất cả các chu kỳ phát triển phần mềm, phục vụ cho các kỹ sư kiểm thử, trưởng nhóm kiểm thử, nhà phát triển và quản lý dự án có trách nhiệm trong việc thực hiện kiểm thử phần mềm.
Lựa chọn tài liệu tham chiếu chính
Các phân tích ở trên cho thấy: Các tiêu chuẩn ISO/IEC là các tiêu chuẩn phù hợp, đã được nhiều quốc gia chấp thuận áp dụng
Sau khi xem xét các tiêu chuẩn ISO/IEC liên quan, nhóm chủ trì nhận thấy tiêu chuẩn ISO/IEC/IEEE 29119-2:2013 cung cấp đầy đủ quy trình kiểm thử cần thiết cho việc kiểm thử phần mềm.
Để xây dựng bộ tiêu chuẩn TCVN "Kiểm thử phần mềm - Phần 2: Quy trình kiểm thử", tài liệu quốc tế ISO/IEC/IEEE 29119-2:2013 "Kỹ thuật phần mềm và hệ thống - Kiểm thử phần mềm - Phần 2: Quy trình kiểm thử" đã được chọn làm tài liệu tham khảo chính.
Tài liệu tham chiếu chính ISO/IEC/IEEE 29119-2:2013 là phần 2 của bộ tiêu chuẩn kiểm thử phần mềm ISO/IEC/IEEE 29119 và là phiên bản mới nhất hiện nay.
Phương pháp xây dựng tiêu chuẩn
Dựa trên việc rà soát các tiêu chuẩn quốc tế, quy chuẩn kỹ thuật và tiêu chuẩn quốc gia liên quan đến Kỹ thuật hệ thống và phần mềm, cùng với việc tham khảo các phương pháp xây dựng tiêu chuẩn, nhóm chủ trì đã phát triển tiêu chuẩn này theo phương pháp chấp thuận có sửa đổi.
+ Chỉnh sửa về hình thức trình bày để phù hợp với thể thức trình bày Tiêu chuẩn quốc gia theo Thông tư 03/2011/TT-BTTTT và TCVN 1-2:2008.
+ Tài liệu viện dẫn trong dự thảo sẽ viện dẫn trực tiếp đến TCVN tương đương (ISO/IEC 12207:2008 viện dẫn đến tiêu chuẩn TCVN 10359:2014)
Các tiêu chuẩn ISO/IEC đã được chuyển thể thành các tiêu chuẩn TCVN tương đương, trong đó nhóm chủ trì sẽ trực tiếp viện dẫn các TCVN này, ví dụ như Tiêu chuẩn ISO/IEC 25051:2006 được thay thế bằng TCVN 10540:2014.
Giới thiệu tổng quan bộ tiêu chuẩn quốc tế về kiểm thử phần mềm ISO/IEC/IEEE 29119
Giới thiệu tổng quan bộ tiêu chuẩn ISO/IEC/IEEE 29119
Tháng 5 năm 2007, ISO đã thành lập một nhóm làm việc để xây dựng một bộ tiêu chuẩn mới về kiểm thử phần mềm - một lĩnh vực mới đối với ISO - ba phần đầu của bộ tiêu chuẩn này đã được công bố vào đầu tháng 9 năm 2013 Sáng kiến này được IEEE và BSI hỗ trợ chu đáo, cả IEEE và BSI đã tặng các tiêu chuẩn hiện có của họ về kiểm thử (IEEE đã tặng IEEE 829 và IEEE 1008; BSI đã tặng BS 7925-1 và BS 7925-2) cho ISO làm tài liệu nguồn để xây dựng bộ tiêu chuẩn mới về kiểm thử phần mềm (các tiêu chuẩn này sẽ bị hủy bỏ khi các tiêu chuẩn mới được công bố).
Bộ tiêu chuẩn ISO/IEC/IEEE 29119 về kiểm thử phần mềm bao gồm 5 phần chính: Phần 1 trình bày khái niệm và thuật ngữ, phần 2 mô tả các quy trình kiểm thử, phần 3 đề cập đến tài liệu kiểm thử, phần 4 giới thiệu các kỹ thuật kiểm thử, và phần 5 tập trung vào kiểm thử hướng từ khóa Ngoài ra, còn có một tiêu chuẩn riêng mang tên “đánh giá kiểm thử”, giải thích lý do phát triển bộ tiêu chuẩn này, tiến trình phát triển và nội dung của từng phần.
Các phần của ISO/IEC/IEEE 29119 đã được phát hành dưới dạng dự thảo để xem xét và cập nhật dựa trên hàng ngàn ý kiến, đồng thời đã được áp dụng trong nhiều tổ chức đa quốc gia Những tổ chức này nhận thấy lợi ích từ việc tái sử dụng quy trình và tài liệu được cung cấp bởi bộ tiêu chuẩn này, phản ánh thực tiễn tốt nhất trong ngành kiểm thử hiện nay.
5.1.1 Bối cảnh kiểm thử phần mềm
Kiểm thử phần mềm đóng vai trò quan trọng trong quá trình phát triển phần mềm, từ trước khi mô hình vòng đời phát triển được xác định Hiện nay, tỷ lệ chi phí cho kiểm thử trong vòng đời phát triển phần mềm có thể dao động từ dưới 20% đến 80% đối với các hệ thống an toàn Mặc dù kiểm thử có lịch sử lâu dài và chi phí nghiên cứu cao, nhưng vấn đề này thường chỉ được đề cập một cách sơ sài trong các tiêu chuẩn, do việc tiếp cận thông tin trong các khóa học và nghiên cứu còn hạn chế.
Bài viết này giới thiệu bộ tiêu chuẩn mới về kiểm thử phần mềm, bắt đầu được phát triển từ năm 2007 và đến tháng 9 năm 2013, ba phần đầu tiên đã được xuất bản.
5.1.2 Các tiêu chuẩn về kiểm thử
There are several common standards applied in software development, including testing, all of which relate to safety For instance, the DO-178B standard is used for airborne electronic systems, established by RTCA in 1992 for software considerations in airborne systems and equipment certification Similarly, the MISRA guidelines, developed in 1994, are intended for the automotive industry, while the Def Stan 00-55 standard, introduced by the Ministry of Defence in 1997, outlines requirements for safety-related software in defense equipment.
Những yêu cầu về an toàn liên quan đến phần mềm trong thiết bị quốc phòng), và EN
50128 dùng cho đường sắt (CENELEC 2001 EN 50128-2001 Railway applications -
Software for railway control and protection systems).
Tiêu chuẩn EN 50128 được phát triển từ IEC 61508 và áp dụng cho các hệ thống điện, điện tử và lập trình liên quan đến an toàn Điều này cho phép EN 50128 thay thế cho các tiêu chuẩn trước đó IEC 61508 đưa ra một số yêu cầu kiểm thử phần mềm mới, bao gồm mối quan hệ giữa phân tích giá trị biên và phân vùng tương đương, trong khi các tiêu chuẩn trước đó không có cơ sở cho yêu cầu kiểm thử Hiện nay, lĩnh vực kiểm thử trong các tiêu chuẩn an toàn vẫn đang trong quá trình nghiên cứu.
Các tiêu chuẩn kiểm thử phần mềm hiện tại yêu cầu thực hiện kiểm thử, áp dụng các kỹ thuật và đạt mức độ bao phủ nhất định, nhưng không định nghĩa rõ ràng các quy trình và biện pháp này Sự khác biệt trong nhận thức giữa những người thực hiện có thể gây ra sự thiếu nhất quán và hiểu lầm Do đó, việc xây dựng một bộ tiêu chuẩn quốc tế mới về kiểm thử phần mềm sẽ giúp giảm thiểu những vấn đề này.
Ngoài các tiêu chuẩn an toàn, nhiều tiêu chuẩn kiểm thử phần mềm đã được công bố bởi các tổ chức như IEEE và BSI Những tiêu chuẩn này bao gồm việc kiểm thử trong từng giai đoạn phát triển sản phẩm, như BS 7925-2 về kiểm thử thành phần phần mềm, cũng như các khía cạnh cụ thể như tài liệu kiểm thử theo IEEE 829.
Tiêu chuẩn kiểm thử đầu tiên, IEEE 829 Tài liệu kiểm thử phần mềm, được nghiên cứu từ năm 1979 và xuất bản vào năm 1983, với phiên bản mới nhất vào năm 2008 Tiêu chuẩn kiểm thử đơn vị của IEEE được công bố vào năm 1987 và đã được sửa đổi vào năm 2003 Ngoài ra, BSI cũng đã phát hành hai tiêu chuẩn kiểm thử phần mềm vào năm 1998; phần 1 là từ vựng kiểm thử (BSI 1998a) và phần 2 là tiêu chuẩn kiểm thử thành phần (BSI 1998b), bao gồm quy trình kiểm thử cho các thành phần, chủ yếu cung cấp định nghĩa và ví dụ về các kỹ thuật thiết kế trường hợp kiểm thử.
5.1.3 Các tổ chức tiêu chuẩn hóa
Việc thiết lập tiêu chuẩn được thực hiện bởi nhiều tổ chức tiêu chuẩn hóa khác nhau, bao gồm cả tổ chức quốc tế như ISO, IEC, ITU, CEN và tổ chức quốc gia như ANSI, BSI, DIN, NEN Ngoài ra, còn có các tiêu chuẩn chuyên biệt trong những lĩnh vực cụ thể như NASA, ESA, FAA trong ngành hàng không vũ trụ, thường tập trung vào các vấn đề liên quan đến an toàn.
Các tổ chức quốc phòng như DoD, MOD và NATO đã phát triển các tiêu chuẩn riêng biệt, thể hiện sự quan tâm sâu sắc đến việc duy trì và nâng cao những tiêu chuẩn này.
Một nhóm các tổ chức tiêu chuẩn trong lĩnh vực công nghệ thông tin, như IEEE, INCOSE, OMG và W3C, đang duy trì các tiêu chuẩn quan trọng Tương tự như Bộ Quốc phòng Mỹ, IEEE đã quyết định tặng các tiêu chuẩn của mình cho ISO, nhằm giảm chi phí duy trì và tăng cường sự đồng bộ trong các tiêu chuẩn công nghệ thông tin Cụ thể, IEEE đã tặng hai tiêu chuẩn IEEE 829 và IEEE 1008 cho ISO để phát triển bộ tiêu chuẩn mới ISO/IEC/IEEE.
29119 về kiểm thử phần mềm.
Tổ chức tiêu chuẩn hóa quốc tế (ISO) là một mạng lưới gồm hơn 160 tổ chức tiêu chuẩn quốc gia và đã phát hành trên 18.000 tiêu chuẩn tính đến cuối năm 2010 Kế hoạch chiến lược ISO (2011-2015) thể hiện cam kết trở thành nhà cung cấp hàng đầu thế giới về các tiêu chuẩn quốc tế chất lượng cao và có liên quan toàn cầu.
Trong lĩnh vực công nghệ thông tin và truyền thông, ISO thường hợp tác với IEC để phát hành các tiêu chuẩn chung Hai tổ chức này đã thành lập tiểu ban SC7 chuyên về kỹ thuật hệ thống và phần mềm, nhằm xây dựng các tiêu chuẩn cho quy trình, công cụ hỗ trợ và công nghệ liên quan đến kỹ thuật sản phẩm phần mềm và hệ thống Đến năm 2013, tiểu ban SC7 đã có 59 thành viên từ các tổ chức tiêu chuẩn quốc gia tham gia Hình 1 minh họa số lượng tiêu chuẩn được SC7 công bố và duy trì từ khi thành lập.
Hình 2 - Các tiêu chuẩn kỹ thuật hệ thống và phần mềm ISO/IEC
5.1.4 Động lực thúc đẩy xây dựng bộ tiêu chuẩn ISO/IEC/IEEE 29119
Nghiên cứu nội dung tiêu chuẩn ISO/IEC/IEEE 29119-2: Quy trình kiểm thử
Bộ tiêu chuẩn mới về kiểm thử phần mềm, bắt đầu xây dựng vào tháng 5 năm 2007, bao gồm 5 phần, nhưng chỉ có 3 phần đầu tiên được xuất bản vào tháng 9 năm 2013 Phiên bản mới nhất hiện nay là ISO/IEC/IEEE 29119-2:2013, với tên gọi đầy đủ là ISO/IEC/IEEE 29119-2.
Software and systems engineering-Software testing - Part 2: Test processes.
ISO/IEC/IEEE 29119-2 là tiêu chuẩn quốc tế về kiểm thử phần mềm, được phát triển bởi Ủy ban kỹ thuật liên hợp ISO/IEC JTC 1, chuyên về công nghệ thông tin, và Tiểu ban SC 7, tập trung vào các kỹ thuật và hệ thống phần mềm Tiêu chuẩn này nhằm cung cấp hướng dẫn và quy trình kiểm thử phần mềm, đảm bảo chất lượng và hiệu quả trong phát triển phần mềm.
SC 7, Software and Systems Engineering, collaborates with the IEEE Computer Society's Standards Committee on Systems and Software, under a partnership agreement with the ISO/IEEE Standards Development Organization.
ISO/IEC/IEEE 29119-2 định nghĩa một mô hình quy trình chung cho kiểm thử phần mềm, có thể áp dụng trong mọi vòng đời phát triển phần mềm.
Mô hình này thiết lập các quy trình kiểm thử nhằm kiểm soát, quản lý và thực hiện kiểm thử phần mềm trong mọi tổ chức, dự án hoặc hoạt động liên quan đến kiểm thử phần mềm.
Có 8 quy trình kiểm thử (như được trình bày trong hình 7):
Quy trình kiểm thử của tổ chức (chỉ có một quy trình)
Quy trình quản lý kiểm thử có 3 quy trình:
• Quy trình Lập kế hoạch kiểm thử
• Quy trình Giám sát và kiểm soát kiểm thử
• Quy trình kết thúc kiểm thử
Quy trình kiểm thử động có 4 quy trình:
• Quy trình Thiết kế và chuẩn bị kiểm thử
• Quy trình Thiết lập và duy trì môi trường kiểm thử
• Quy trình Thực hiện kiểm thử
• Quy trình Báo cáo sự cố kiểm thử
Mỗi quy trình đều có cấu trúc chung, nó bao gồm:
- Mục đích của quy trình
- Kết quả của quy trình
- Đầu ra của quy trình.
5.2.1.1 Quy trình kiểm thử của tổ chức
Quy trình kiểm thử của tổ chức được thiết lập để triển khai và quản lý các tài liệu đặc tả kiểm thử, áp dụng cho toàn bộ tổ chức thay vì chỉ cho một dự án cụ thể Các đặc tả này bao gồm chính sách và chiến lược kiểm thử, tạo nền tảng cho việc thực hiện kiểm thử Mặc dù quy trình kiểm thử mang tính chất chung, nó vẫn có thể được sử dụng để quản lý các tài liệu kiểm thử cụ thể không thuộc dự án, như chiến lược kiểm thử cho các dự án liên quan.
Chính sách kiểm thử của tổ chức là tài liệu quan trọng nhằm quản lý và thực hiện các kế hoạch kiểm thử, mô tả rõ ràng mục đích, mục tiêu và phạm vi của quá trình này Tài liệu cũng nêu bật các thực hành kiểm thử của tổ chức, cung cấp khuôn mẫu cho việc thiết lập, xem xét và cải tiến liên tục chính sách cũng như chiến lược kiểm thử, đồng thời hướng dẫn lập kế hoạch quản lý kiểm thử hiệu quả.
Chiến lược kiểm thử của tổ chức là một tài liệu kỹ thuật quan trọng, định nghĩa phương pháp thực hiện kiểm thử trong tổ chức Tài liệu này cung cấp hướng dẫn chung cho nhiều dự án khác nhau và không chỉ tập trung vào một dự án cụ thể.
Quy trình kiểm thử của tổ chức được trình bày trong hình 10, bao gồm các hoạt động nhằm phát triển và duy trì tài liệu đặc tả kỹ thuật kiểm thử Tài liệu này chủ yếu gồm các chính sách và chiến lược kiểm thử, áp dụng cho nhiều dự án trong tổ chức, đảm bảo phương pháp kiểm thử nhất quán Trong trường hợp tổ chức có nhiều dự án khác nhau, có thể có các tài liệu đặc tả kiểm thử riêng cho từng chương trình.
Quy trình kiểm thử của tổ chức nhằm đảm bảo việc triển khai, giám sát và duy trì các đặc tả kiểm thử, bao gồm chính sách và chiến lược kiểm thử của tổ chức.
Hình 10- Quy trình kiểm thử của tổ chức
Chính sách kiểm thử xác định phạm vi và nguyên tắc kiểm thử của tổ chức, nhằm mục tiêu hướng dẫn các hoạt động kiểm thử Tài liệu này ngắn gọn, chỉ hai trang, dễ hiểu cho các thành viên và phù hợp với các chính sách cấp cao khác như chính sách chất lượng Nó cung cấp khuôn khổ cho tất cả các hoạt động kiểm thử, đảm bảo rằng chúng tuân thủ các tiêu chuẩn kiểm thử phần mềm ISO/IEC/IEEE 29119.
Chiến lược kiểm thử tổ chức là tài liệu kỹ thuật quan trọng, quy định thực hành kiểm thử cho tất cả các dự án trong tổ chức, và cần phải phù hợp với chính sách kiểm thử hiện có Tài liệu này định nghĩa các nguyên tắc kiểm thử có thể tái sử dụng, giúp người quản lý kiểm thử xây dựng kế hoạch kiểm thử cụ thể, từ đó giảm thiểu quyết định cần thiết và đảm bảo sự thống nhất giữa các dự án Ví dụ, nội dung có thể bao gồm yêu cầu về mức độ bao phủ câu lệnh 100% trong kiểm thử đơn vị.
Kết quả triển khai thành công của Quy trình kiểm thử của tổ chức gồm:
- Các yêu cầu đối với đặc tả kiểm thử của tổ chức được xác định;
- Các đặc tả kiểm thử của tổ chức được triển khai;
- Các đặc tả kiểm thử của tổ chức được các bên liên quan chấp thuận;
- Các đặc tả kiểm thử của tổ chức được phép sử dụng;
- Sự tuân thủ các đặc tả kiểm thử của thử tổ chức được giám sát;
- Những cập nhật đối với đặc tả kiểm thử của tổ chức phải được các bên liên quan chấp thuận;
- Những cập nhật đối với đặc tả kiểm thử của tổ chức được thực hiện. Đầu ra của quy trình kiểm thử:
Kết quả thực hiện quy trình kiểm thử này sẽ tạo được đầu ra dưới đây:
- Đặc tả kiểm thử của tổ chức
Ví dụ: chính sách kiểm thử của tổ chức, chiến lược kiểm thử của tổ chức.
5.1.2.2 Các quy trình quản lý kiểm thử
Có ba quy trình quản lý kiểm thử như trình bày trong hình 11, đó là:
- Quy trình lập kế hoạch kiểm thử;
- Quy trình giám sát và kiểm soát kiểm thử;
- Quy trình kết thúc kiểm thử.
Các quy trình quản lý kiểm thử được áp dụng để điều phối các hoạt động kiểm thử mức thấp trong dự án, bao gồm kiểm thử động và quản lý kiểm thử Khi dự án lớn, kế hoạch kiểm thử có thể yêu cầu lập kế hoạch chi tiết cho từng giai đoạn kiểm thử, như kiểm thử hệ thống và kiểm thử chấp nhận người dùng, hoặc cho các loại kiểm thử cụ thể như kiểm thử hiệu năng và kiểm thử khả năng sử dụng.
Hình 11 - Các quy trình quản lý kiểm thử
Khi thực hiện các quy trình quản lý kiểm thử, cần tuân thủ các ràng buộc và hướng dẫn trong chính sách kiểm thử hoặc chiến lược kiểm thử của tổ chức Nếu có lý do không tuân thủ, việc này cần được thỏa thuận và ghi lại một cách rõ ràng.
5.1.2.2.1 Quy trình lập kế hoạch kiểm thử
Quy trình lập kế hoạch kiểm thử là bước quan trọng để triển khai kế hoạch kiểm thử cho dự án Tùy thuộc vào quy mô và mức độ phức tạp của dự án, kế hoạch kiểm thử có thể được xây dựng dưới dạng một bản kế hoạch tổng thể hoặc chi tiết cho từng giai đoạn kiểm thử, chẳng hạn như kế hoạch kiểm thử hệ thống hoặc kế hoạch kiểm thử hiệu năng cụ thể.