Test Process - Quy trình test

Chúng ta không có một quy trình test phần mềm phổ thông nào, nhưng sẽ có một danh sách các hoạt động phổ biến không thể thiếu được không quá trình test nếu muốn đạt được một số mục tiêu đã thiết lập.

Một tập các hoạt động này sẽ quy chung thành test process.

Cụ thể, quy trình test muốn phù hợp với ngữ cảnh nào sẽ cần phụ thuộc vào nhiều yếu tố.

Những test activities nào tham gia vào test process, cách thức các test activites được thực hiện, và khi nào những test activites này xảy ra có thể được thảo luận trong test strategy của tổ chức.

1. Test process in Context - Ngữ cảnh Test Process

Các yếu tố ngữ cảnh ảnh hưởng đến test process cho một tổ chức, bao gồm (nhưng không giới hạn):

  • Software development lifecycle model and project methodologies being used. Loại mô hình phát triển phần mềm và phương pháp thực hiện mà dự án sử dụng.
  • Test levels and test types being considered. Test levels và test types được xem xét
  • Product and project risks. Các rủi ro về sản phẩm và dự án
  • Business domain
  • Operational constraints, including but not limited to: Những hạn chế của việc vận hành, bao gồm (nhưng không giới hạn):

  o Budgets and resources. Kinh phí và nguồn lực

  o Timescales. Thời gian

  o Complexity. Độ phức tạp

  o Contractual and regulatory requirements. Các yêu cầu về hợp đồng, quy định

  • Organizational policies and practices. Chính sách của tổ chức
  • Required internal and external standards. Yêu cầu tiêu chuẩn nội bộ và bên ngoài

Các phần mô tả khía cạnh của quy trình tổ chức:

  • Test activities and tasks. Các hoạt động và task trong testing.
  • Test work products. Các sản phẩm của việc test
  • Traceability between the test basis and test work products. Ma trận so sánh giữa test basis và test work products.

Nó rất hữu dụng nếu test basic (hoặc bất kì mức độ hoặc loại testing được xem xét) được định nghĩa tiêu chí bao phủ. Tiêu chí bao phủ có thể hoạt động hiệu quả như những chỉ số chất lượng chính (KPI) để thúc đẩy các hoạt động thể hiện mức độ đạt được của mục tiêu test.

Ví dụ, một ứng dụng mobile, test basis có thể bao gồm danh sách các requirements và các device mobile có thể support. Mỗi yêu cầu là một thành phần của test basic. Mỗi loại thiết bị hỗ trợ có là 1 thành phần của test basic. Tiêu chí bao phủ yêu cầu ít nhất 1 TC cho mỗi thành phần của test basic.

Khi thực hiện, kết quả của việc test sẽ nói cho stakeholders các yêu cầu nào đã được đầy đủ và lỗi xảy ra liên quan đến device cụ thể.

2. Test Activities anh Tasks

Một chu trình test bao gồm nhóm các hoạt động chính sau:

  • Test planning
  • Test monitoring and control
  • Test analysis
  • Test design
  • Test implementation
  • Test execution
  • Test completion

Test planning

Test planning tập trung vào việc định nghĩa mục đích của testing, cách tiếp cận để đáp ứng các mục tiêu testing trong các ràng buộc được đặt ra bởi bối cảnh (ví dụ: kĩ thuật và nhiệm vụ cụ thể thích hợp, và tính toán lập lịch test cho kịp deadline).

Test plans nên được xem xét lại dựa trên feedback của hoạt động monitoring và control.

Test monitoring and control

Test monitoring tập trung chủ yếu vào so sánh liên tục giữa tình hình thực tế và kế hoạch đưa ra sử dụng những metrics được định nghĩa trong test plan để giám sát.

Ví dụ, việc đánh giá exit criteria bao gồm:

  • Checking test results and logs against specified coverage criteria. Kiểm tra kết quả test và log so sánh lại với tiêu chí bao phủ cụ thể.
  • Assessing the level of component or system quality based on test results and logs. Đánh giá chất lượng của component hoặc system dựa trên kết quả log.
  • Determining if more tests are needed. Xác định nếu cần test thêm

Test analysis

Trong quá trình test analysis, các test basis được phân tích để xác định những tính năng nào có thể test được và xác định những điều kiện test tương ứng.

Gồm những task chính:

  • Analyzing the test basis appropriate to the test level being considered. Phân tích các test basic phù hợp với test level đang được xem xét.
  • Evaluating the test basis and test items to identify defects of various types. Đánh giá các test basis và test item để xác định một số loại defect khác nhau.
  • Identifying features and sets of features to be tested. Xác định những tính năng và danh sách các tính năng được test
  • Defining and prioritizing test conditions for each feature based on analysis of the test basis, and considering functional, non-functional, and structural characteristics, other business and technical factors, and levels of risks. Xác định và đưa thứ tự ưu tiên của các test condition cho mỗi tính năng dựa trên việc phân tích test basis, xem xét các functional, non-functional, and structural characteristics, các nhân tố business và kĩ thuật, và mức độ risk.
  • Capturing bi-directional traceability between each element of the test basis and the associated test conditions. Ghi lại ma trận bi-directional traceability giữa mỗi element của test basis và các điều kiện test liên quan.

Test design

Test design bao gồm những task chính sau:

  • Designing and prioritizing test cases and sets of test cases. Thiết kế và đánh mức độ ưu tiên TC và các tập TC
  • Identifying necessary test data to support test conditions and test cases. Xác định test data cần thiết để hỗ trợ test condition và TC
  • Designing the test environment and identifying any required infrastructure and tools. Thiết kế môi tường test và xác định tool cần thiết
  • Capturing bi-directional traceability between the test basis, test conditions, and test cases. Dùng ma trận traceability giữa test basis, test conditions, test cases, and test procedures.

Test implementation

Bao gồm những task chính:

  • Developing and prioritizing test procedures, and, potentially, creating automated test scripts. Phát triển và phân lại thứ tự ưu tiên của quy trình test và tạo test script nếu cần
  • Creating test suites from the test procedures and (if any) automated test scripts. Tạo test suit từ test procedures và nếu có thì từ các test script tự động
  • Arranging the test suites within a test execution schedule in a way that results in efficient test execution (see section 5.2.4). Sắp xếp test suites trong quá trình lập lịch thực hiện test giúp đạt hiệu quả cao hơn của hoạt động test execution.
  • Building the test environment (including, potentially, test harnesses, service virtualization, simulators, and other infrastructure items) and verifying that everything needed has been set up correctly. Tạo môi trường test và xác nhận rằng tất cả mọi thứ cần thiết đều được cài đặt chính xác.
  • Preparing test data and ensuring it is properly loaded in the test environment. Chuẩn bị test data và đảm bảo chúng được dùng/tải đúng cách trong môi trường test.
  • Verifying and updating bi-directional traceability between the test basis, test conditions, test cases, test procedures, and test suites. Xác minh và update ma trận bi-directional traceability giữa test basis, test conditions, test cases, test procedures, and test suites

Test execution

Bao gồm những task chính sau:

  • Recording the IDs and versions of the test item(s) or test object, test tool(s), and testware. Ghi lại ID và các version của test item(s) hoặc đối tượng kiểm thử công cụ hỗ trợ kiểm thử và phần mềm thực hiện kiểm thử.
  • Executing tests either manually or by using test execution tools. Thực hiện test thủ công hoặc bằng cách sử dụng tool
  • Comparing actual results with expected results. So sánh kết quả thực tế và kết quả mong muốn
  • Analyzing anomalies to establish their likely causes (e.g., failures may occur due to defects in thecode, but false positives also may occur. Phân tích các vấn đề bất thường để phát hiện các defect( ví dụ, failures có thẻ xảy ra do defect trong code nhưng lỗi fail giả cũng có thể xảy ra).
  • Reporting defects based on the failures observed. Báo cáo defect dựa trên quan sát failures.
  • Logging the outcome of test execution (e.g., pass, fail, blocked). Log lại những kết quả đầu ra của việc thực hiện test (pass. fail, block,...)
  • Repeating test activities either as a result of action taken for an anomaly, or as part of the planned testing (e.g., execution of a corrected test, confirmation testing, and/or regression testing). Lặp lại hoạt động test hoặc như một hành động kiểm tra các điểm bất thường hoặc như một phần của kết hoạch test (ví dụ, thực hiện test correctes test, confirmation testing, and/or regression testing).

Test completion

Test completion bao gồm những hoạt động sau:

  • Checking whether all defect reports are closed, entering change requests or product backlog items for any defects that remain unresolved at the end of test execution. Kiểm tra bảo đảm rằng tất cả các defect đều được closed , thêm vào những change requests hoặc product backlog items cho những defects nào mà chưa được giải quyết khi kết thúc hoạt động test execution .
  • Creating a test summary report to be communicated to stakeholders. Tạo test summary report để giao tiếp với các stakeholders.
  • Finalizing and archiving the test environment, the test data, the test infrastructure, and other testware for later reuse. Hoàn thiện và lưu trữ test environment , test data , test infrastructure , và các testware khác để sử dụng sau này.
  • Handing over the testware to the maintenance teams, other project teams, and/or other stakeholders who could benefit from its use. Bàn giao testware cho nhóm bảo trì , đội dự án khác hoặc các stakeholders, người mà nhận được lợi ích bằng cách sử dụng chúng.
  • Analyzing lessons learned from the completed test activities to determine changes needed for future iterations, releases, and projects. Phân tích bài học rút ra từ hoạt động để xác định những việc cần thay đổi trong dự án , bản release , chu kì tiếp theo trong tương lai.
  • Using the information gathered to improve test process maturity. Sử dụng thông tin thu thập được để cải thiện độ trưởng thành của process.

3. Test Work Products

Test work products (TWP) là một phần trong quá trình kiểm thử, bởi vì có nhiều cách để thực hiện TWP, nên các sản phẩm công việc được tạo ra cũng khác nhau ở các bước tổ chức và thực hiện.

Test planning work products (TPWP)

TPWP thường bao gồm một hoặc nhiều chiến lược test.

Kế hoạch kiểm thử bao gồm thông tin về cơ sở thử nghiệm, trong đó các sản phẩm công việc kiểm thử khác sẽ liên quan đến thông tin truy suất nguồn gốc cũng như các tiêu chuẩn dừng test (hay còn gọi là định nghĩa hoàn thành) được sử dụng trong quá trình kiểm thử.

Test monitoring and control work products

Các sản phẩm của việc kiểm soát test và giám sát công việc thường bao gồm nhiều loại báo cáo thử nghiệm khác nhau, bao gồm báo cáo tiến độ thử nghiệm (được tạo ra liên tục và/hoặc thường xuyên) và báo cáo tóm tắt thử nghiệm (được tạo ra ở mốc hoàn thành khác nhau).

Tất cả các báo cáo thử nghiệm phải cung cấp chi tiết liên quan đến đối tượng đọc báo cáo về tiến trình thử nghiệm kể từ ngày báo cáo, bao gồm cả việc tóm tắt kết quả thực hiện thử nghiệm ngay khi có thể.

Các sản phẩm của việc kiểm soát test và giám sát công việc cũng nên bao gồm các vấn đề quan trọng trong quản lý dự án, chẳng hạn như việc hoàn thành task được giao, phân bổ và sử dụng tài nguyên các tài nguyên cũng như effort của các thành viên dự án.

Test analysis work products

Test analysis work products bao gồm các điều kiện thử nghiệm được xác định rõ ràng và được đánh số ưu tiên, các điều kiện này nên được truy vấn hai chiều tùy theo đối tượng của cơ sở kiểm thử.

Đối với exploratory testing, phân tích thử nghiệm có thể liên quan đến việc tạo ra các test charter. Phân tích thử nghiệm cũng có thể dẫn đến việc phát hiện và báo cáo defect trong test basis.

Test design work products

Kết quả của thiết kế thử nghiệm là test case và các bộ test case để thực hiện các điều kiện thử nghiệm được xác định trong phân tích thử nghiệm.

Nó thường là một thực hành tốt để thiết kế high-level test case, không có giá trị cụ thể cho dữ liệu đầu vào và kết quả mong đợi.

Các high-level test case như vậy có thể được sử dụng lại qua nhiều chu kỳ thử nghiệm với dữ liệu cụ thể khác nhau, trong khi vẫn ghi lại đầy đủ phạm vi của test case.

Test desgin cũng dẫn đến việc:

  • the design and/or identification of the necessary test data. Thiết kế và/hoặc xác định dữ iệu thử nghiệm cần thiết
  • the design of the test environment. Thiết kế môi trường thử nghiệm
  • the identification of infrastructure and tools. Xác định cơ sở hạ tầng và công cụ

Test implementation work products

Test implementation work products bao gồm:

  • Test procedures and the sequencing of those test procedures. Quy trình thử nghiệm và giải trình tự các quy trình thử nghiệm đó
  • Test suites. Bộ kiểm thử
  • A test execution schedule. Lịch thực hiện kiểm thử

Test execution work products

Test execution work products bao gồm:

  • Documentation of the status of individual test cases or test procedures (e.g., ready to run, pass, fail, blocked, deliberately skipped, etc.). Tài liệu về trạng thái của các test case riêng lẻ hoặc quy trình thử nghiệm (ví dụ: sẵn sàng để chạy, vượt qua, thất bại, bị chặn, bỏ qua có chủ ý, v.v.)
  • Defect reports
  • Documentation about which test item(s), test object(s), test tools, and testware were involved in the testing. Tài liệu về (các) mục thử nghiệm, đối tượng thử nghiệm, công cụ kiểm thử và phần mềm kiểm thử đã tham gia và thử nghiệm.

Test completion work products

Test completion work products bao gồm test summary report, các mục hành động để cải thiện dự án hoặc lặp lại tiếp, thay đổi yêu cầu hoặc các mục tồn đọng của sản phẩm và phần mềm kiểm thử đã hoàn thành.

4. Traceability between the Test Basis and Test Work Products

Để thực hiện giám sát và kiểm soát thử nghiệm hiệu quả, điều quan trọng là phải thiết lập và duy trì khả năng truy nguyên trong suốt quá trình thử nghiệm giữa từng yếu tố của test basis và test work products khác nhau được liên kết với yếu tố đó. Ngoài việc đánh giá phạm vi kiểm thử, việc truy nguyên cần hỗ trợ/đáp ứng các yêu cầu sau:

  • Analyzing the impact of changes. Phân tích được tác động của những thay đổi
  • Making testing auditable. Việc kiểm thử có thể kiểm thử đối chiếu và sửa chữa được
  • Meeting IT governance criteria. Đáp ứng tiêu chí quản trị CNTT
  • Improving the understandability of test progress reports and test summary reports to include the status of elements of the test basis (e.g., requirements that passed their tests, requirements that failed their tests, and requirements that have pending tests). Cải thiện tính dễ hiểu của báo cáo tiến độ thử nghiệm và báo cáo tóm tắt thử nghiệm để bao gồm trạng thái của các yếu tố của cơ sở thử nghiệm (ví dụ: các yêu cầu đã vượt qua thử nghiệm của chúng, yêu cầu không vượt qua thử nghiệm và yêu cầu có thử nghiệm đang chờ xử lý).
  • Relating the technical aspects of testing to stakeholders in terms that they can understand. Liên quan đến các khía cạnh kỹ thuật của thử nghiệm với các bên liên quan theo các khía cạnh mà họ có thể hiểu
  • Providing information to assess product quality, process capability, and project progress against business goals. Cung cấp thông tin để đánh giá chất lượng sản phẩm , khả năng xử lý và tiến độ dự án so với mục tiêu kinh doanh

Một số công cụ quản lý kiểm thử cung cấp các mô hình test work products khớp với một phần hoặc tất cả test work products được nêu trong phần này. Một số tổ chức xây dựng hệ thống quản lý riêng để tổ chức các sản phẩm công việc và cung cấp truy suất nguồn gốc thông tin mà họ yêu cầu.

Nguồn: Sách ISTQB-CTFL_Syllabus_2018