Quy trình kiểm thử là xương sống của cả quá trình test. Không phải để biến tester thành cái máy điền form, mà để cả team biết đang test dựa trên cái gì, đã cover tới đâu, còn risk nào và lúc nào cần đổi kế hoạch.

Test process nằm bên trong SDLC, nhưng các hoạt động của nó không xếp thành hàng một đi không trở lại. Analysis có thể làm lộ requirement thiếu rồi kéo planning thay đổi; execution tìm thấy risk mới thì team quay lại design thêm case. Monitoring và control chạy xuyên suốt chứ không ngồi chờ tới lượt.

Khái niệm

Test process là tập hợp hoạt động để planning, monitoring, analysis, design, implementation, execution và completion việc test. Tùy dự án, một người làm vài hoạt động hoặc cả team chia nhau làm.

Hiểu nôm na như vậy, và các bước cụ thể trong quy trình kiểm thử sẽ bao gồm:

Hoạt độngCâu hỏi chính
Test PlanningTest cái gì, bằng cách nào, với người và thời gian nào?
Test Monitoring & ControlThực tế đang lệch kế hoạch ở đâu và cần điều chỉnh gì?
Test AnalysisCó những test condition và risk nào cần kiểm tra?
Test DesignCần test case, test data và coverage item nào?
Test ImplementationTổ chức test procedure, suite, script, data và môi trường ra sao?
Test ExecutionActual result là gì, có failure nào và cần log thông tin gì?
Test CompletionKết quả, work product và bài học nào cần tổng kết hoặc bàn giao?

Tên gọi nghe như bảy ga tàu, nhưng thực tế chúng lặp và chồng lên nhau. Test process cũng không phải chuyện nội bộ riêng của tester: dev, BA, Product Owner và người vận hành đều tạo input hoặc dùng output từ nó.

Typical question: What is test process? - Quy trình kiểm thử là gì?

Typical question: What are the steps in the test process? - Các bước trong quy trình kiểm thử là gì?

Test process in a sprint

Đầu tiên, nếu bạn đã quên một sprint của Agile Scrum trông thế nào, có thể quay về Agile để đọc. Mình sẽ nêu lại một chút và cũng lồng ghép luôn quy trình kiểm thử

Planning phase

Planning Phase của sprint: Trong khâu lên kế hoạch, sẽ bao gồm việc quyết định khối lượng công việc và thời gian, nôm na là kế hoạch của sprint, vậy thì kế hoạch kiểm thử cũng sẽ được lên cùng lúc với project plan, hay ít nhất là trong khuôn khổ của planning phase.

Test Plan sẽ lấy vào Project Plan, Requirements và Acceptance Criteria, cấu trúc thì bạn có thể lội về bài viết Test Plan

Daily Scrum

Sau planning phase, bắt tay vào việc và các Daily Scrum sẽ diễn ra Test Monitor & Control cho tới Test Execution

Test Monitor & Control:

Đây thật ra là một bước cần thực hiện, nhưng vòng đời của nó không đi theo thứ tự cùng các bước khác, tức là không phải kết thúc rồi dẫn tới Test Analysis, mà nó là một hoạt động kéo dài, được triển khai từ sau Test Planning cho tới khi kết thúc quy trình kiểm thử

Lấy vào:

Trả ra:

Test Analysis

Đây là giai đoạn mà tester sẽ bắt đầu chính thức bước vào nghiên cứu các yêu cầu và đưa ra các câu hỏi để làm rõ các yêu cầu như đã nêu trong Clarify a requirement.

Test Analysis có thể bắt đầu rất sớm, ngay khi có test basis đủ để đọc. Test Monitoring & Control chạy song song để nhìn tiến độ và điều chỉnh; nó không phải cái cổng cấp phép cho tester kết thúc việc làm rõ requirement.

Lấy vào:

  1. Prototype : phiên bản có khả năng tương tác nhưng không có tính năng thực nào của sản phẩm, tức là ví dụ như tính năng thống kê chi tiêu của ứng dụng ngân hàng, khi làm prototype thì sẽ chỉ cần làm các màn hình code cứng chứ không cần phải cài đặt database, kéo data ra, thực hiện tính toán gì cả
  2. Mockup: Bản vẽ sử dụng phần mềm chuyên dụng như Figma, tay to thì có thể làm mockup có hoạt ảnh, sẽ thông qua với khách hàng. Mockup chịu ảnh hưởng rất lớn của business rule vì thiết kế Mockup sẽ gắn liền với branding của khách hàng. Mockup cũng không có tính năng, mà chỉ đơn giản là các bản vẽ có hoạt ảnh mô phỏng.
  3. Sketch: vẽ tay, có thể dùng phần mềm chuyên dụng nhưng không mất quá nhiều công sức như Figma, kết quả cũng đơn giản hơn, chủ yếu để khách hàng thấy được hướng đi về frontend của team dự án là đúng với tầm nhìn của khách hàng

Trả ra: Test Condition: Hiểu đơn giản là một danh sách các thứ có thể test của sản phẩm, ví dụ, nếu sản phẩm có một màn hình đăng nhập, thì các mục có thể test sẽ bao gồm ô điền username, ô điền password, ô captcha, nút ấn đăng nhập, v.v... và test conditions sẽ là danh sách gồm 3 yếu tố : UI (hiển thị), State (trạng thái), Function (chức năng) của từng mục.

Test Design

Đây là giai đoạn thiết kế các bài test theo ngôn ngữ của các tester, nhưng cụ thể ở đây chúng ta sẽ thiết kế các test case, khi đã có các test case thì nhóm chúng nó lại thành các bài test (test suite), đồng thời có thể nhóm các test case thành các kịch bản test (test scenario) theo góc nhìn của người dùng (actor).

Thiết kế ở đây có nghĩa là tạo ra test case một cách tổng quan, không đi cụ thể vào cách thực hiện test case, mà chỉ nêu ra một hành động suy rộng (general action) và kết quả của hành động này. Đây gọi là High Level Test Case, ví dụ một test case cao tầng

User successfully logins using correct username and password combination | Người dùng đăng nhập thành công sử dụng bộ username và password đúng

Trên chính là một High Level Test Case, cách viết High Level Test Case mình sẽ hướng dẫn cụ thể trong bài Requirement Traceability Matrix. Trong quá trình thiết kế test case cao tầng, cần áp dụng các kỹ thuật thiết kế test case (Test Design Technique) mà mình sẽ nói qua và hướng dẫn trong bài nàyTest Design Technique.

Lấy vào

Trả ra:

Test Implementation

Đây là bước tạo ra test case thấp tầng (Low Level Test Case) bằng cách ứng dụng testcase, đưa vào cho test case cao tầng các thông tin cụ thể về cách thực hiện test case, thực hiện ở đâu, với cái gì, v.v...

Một test case thấp tầng sẽ cần tuân theo một bản mẫu (template) nhất định để đảm bảo người trong team test sẽ dễ dàng đọc và hiểu test case của nhau. Viết test case thấp tầng thế nào thì bạn có thể đọc trong bài này Low Level Test Case.

Lấy vào

Trả ra

Test Execution

Rất đơn giản đây là bước thực hiện các test case. Log bug và gửi về cho Dev để sửa, làm việc với dev để test lại bug, và cuối cùng là đảm bảo bug đã được fix. Test Execution sẽ được làm cho tới khi nào tất cả các test case đã được thực hiện, hoặc đến khi nào hết thời gian kiểm thử, đấy là nếu theo kế hoạch

Để đảm bảo các test case là đúng trước khi được thực hiện, các test case sẽ phải đi qua quá trình review

Lấy vào

Trả ra

Test Completion

Ở khâu cuối cùng này, thường thì các tester sẽ phải làm các báo cáo để gửi về cho lead. Báo cáo này sẽ bao gồm các loại:

Ở khâu Test Completion thì sẽ chỉ quan tâm đến Test Summary Report, Task report sẽ được làm ở trong quá trình kiểm thử, nó sẽ rất giống Daily scrum nhưng là nội bộ của team test.

Lấy vào

Trả ra

Review Phase

Công đoạn Review nôm na chính là bước Demo, đến đây thì phần việc của Tester con đã hết, chủ yếu là các lead và BA sẽ làm việc với khách hàng để demo sản phẩm. Nếu có vấn đề, tức là khách hàng không hài lòng với tình trạng hiện tại của sản phẩm, nó sẽ được đẩy sang Sprint sau để tiếp tục xử lý.

Tóm lại, cách mà một tester tham gia vào một sprint là như sau

Typical question: What are the output of each step in test process? - Các output của mỗi bước trong quy trình kiểm thử là gì?

Typical question: How does a tester participate in a sprint? - Một tester tham gia vào một sprint như thế nào?

Nguồn tham khảo