Manual test

[Manual Testing] 10 Bước Để Tối Ưu Hóa Năng Suất và Hiệu Quả (Áp Dụng Cho Tất Cả Các Trường Hợp)

Phong Do Phong Do · 04/03/2025 · 24 phút đọc

Kiểm thử phần mềm là một phần không thể thiếu trong quá trình phát triển sản phẩm. Để đảm bảo chất lượng, mỗi kịch bản kiểm thử (test case) cần được thực hiện một cách có hệ thống. Dưới đây là 10 bước quan trọng mà bạn nên áp dụng trong bất kỳ tình huống kiểm thử nào để đạt hiệu quả tối ưu.

1. Hiểu rõ yêu cầu

Trước khi bắt đầu, hãy dành thời gian tìm hiểu kỹ các yêu cầu của phần mềm. Điều này giúp bạn nắm rõ mục tiêu của hệ thống và những gì cần kiểm tra. Nếu có điểm nào chưa rõ, đừng ngần ngại trao đổi với đội phát triển hoặc khách hàng để tránh hiểu lầm.

Một số checklist có thể kể đến ở đây:

  • Đọc kỹ tài liệu yêu cầu
  • Xác định mục tiêu của hệ thống
  • Hỏi rõ khi có nghi ngờ
  • Hình dung từ góc nhìn người dùng
  • Phối hợp với các bên liên quan
  • Ghi chép và hệ thống hóa thông tin

2. Xác định phạm vi kiểm thử

Hãy xác định cụ thể những gì sẽ được kiểm tra và những gì không nằm trong phạm vi. Điều này giúp bạn tập trung vào các chức năng quan trọng và tránh lãng phí thời gian vào những phần không cần thiết.

Một số các checklist có thể kể đến như:

  • Xác định các tính năng cần kiểm tra
  • Loại bỏ các phần không thuộc phạm vi
  • Phân loại mức độ ưu tiên
  • Xem xét nguồn lực và thời gian
  • Xác định loại kiểm thử áp dụng
  • Làm rõ các trường hợp ngoại lệ
  • Tài liệu hóa phạm vi kiểm thử
  • Linh hoạt điều chỉnh khi cần

3. Thiết kế các kịch bản kiểm thử

Dựa trên yêu cầu, hãy tạo ra các kịch bản kiểm thử chi tiết. Mỗi kịch bản nên bao gồm các bước thực hiện, dữ liệu đầu vào và kết quả mong đợi. Đảm bảo rằng các trường hợp kiểm thử bao quát cả tình huống bình thường lẫn bất thường.

Một số checklist “bí kíp” viết test cases hiệu quả:

  • Hiểu rõ sản phẩm trước khi viết
  • Sử dụng ngôn ngữ đơn giản và rõ ràng
  • Tập trung vào mục tiêu kiểm thử
  • Bao quát cả trường hợp đúng và sai
  • Sử dụng định dạng nhất quán
  • Tận dụng mẫu có sẵn
  • Kiểm tra biên và giá trị bất thường
  • Viết ngắn gọn nhưng đủ ý
  • Đặt tên kịch bản có ý nghĩa

4. Chuẩn bị dữ liệu kiểm thử

Dữ liệu đóng vai trò quan trọng trong việc kiểm tra. Hãy chuẩn bị dữ liệu phù hợp với từng kịch bản, bao gồm dữ liệu hợp lệ, không hợp lệ và dữ liệu biên (boundary data) để kiểm tra toàn diện.


Một số checklist có thể kể đến như:

  • Xác định yêu cầu dữ liệu cho từng kịch bản
    Đảm bảo dữ liệu được chuẩn bị phù hợp với mục tiêu kiểm thử của mỗi kịch bản.
  • Chuẩn bị dữ liệu hợp lệ
    Tạo các tập dữ liệu đáp ứng đúng yêu cầu để kiểm tra chức năng hoạt động bình thường.
  • Chuẩn bị dữ liệu không hợp lệ
    Sử dụng dữ liệu sai định dạng, vượt giới hạn hoặc không đúng quy tắc để kiểm tra khả năng xử lý lỗi của hệ thống.
  • Chuẩn bị dữ liệu biên (boundary data)
    Tập trung vào các giá trị ở ngưỡng tối thiểu, tối đa hoặc ngay ngoài giới hạn để phát hiện lỗi tiềm ẩn.
  • Đảm bảo dữ liệu đa dạng
    Bao gồm các loại dữ liệu khác nhau (số, chữ, ký tự đặc biệt, khoảng trống) để kiểm tra tính linh hoạt của phần mềm.
  • Tạo dữ liệu thực tế
    Mô phỏng dữ liệu gần với cách người dùng thực tế sẽ nhập để đánh giá trải nghiệm thực.
  • Kiểm tra nguồn dữ liệu
    Đảm bảo dữ liệu được lấy từ nguồn đáng tin cậy hoặc tạo mới nếu cần, tránh sử dụng dữ liệu cũ không còn phù hợp.
  • Tổ chức và lưu trữ dữ liệu
    Sắp xếp dữ liệu theo kịch bản, đặt tên rõ ràng và lưu trữ có hệ thống để dễ truy cập khi kiểm thử.
  • Xác minh tính đầy đủ của dữ liệu
    Kiểm tra xem dữ liệu đã đủ để bao quát mọi trường hợp trong kịch bản hay chưa.
  • Cập nhật dữ liệu khi cần
    Điều chỉnh dữ liệu nếu yêu cầu thay đổi hoặc phát sinh tình huống mới trong quá trình kiểm thử.

5. Thiết lập môi trường kiểm thử

Trước khi thực hiện, hãy đảm bảo môi trường kiểm thử đã sẵn sàng, từ phần cứng, phần mềm đến cấu hình hệ thống. Một môi trường ổn định sẽ giúp kết quả kiểm tra chính xác hơn.

Một số checklist có thể kể đến như:

  • Xác định yêu cầu môi trường
    Làm rõ các điều kiện cần thiết (phần cứng, phần mềm, mạng) dựa trên đặc điểm của phần mềm được kiểm tra.
  • Chuẩn bị phần cứng phù hợp
    Đảm bảo thiết bị (máy tính, điện thoại, máy chủ) đáp ứng cấu hình tối thiểu hoặc tối ưu để chạy phần mềm.
  • Cài đặt phần mềm cần thiết
    Tải và cài đặt hệ điều hành, trình duyệt, công cụ hỗ trợ hoặc các ứng dụng liên quan đúng phiên bản.
  • Cấu hình hệ thống
    Thiết lập các thông số như độ phân giải màn hình, ngôn ngữ, múi giờ hoặc kết nối mạng theo yêu cầu.
  • Kiểm tra kết nối mạng
    Đảm bảo mạng ổn định, tốc độ phù hợp và mô phỏng các điều kiện thực tế (Wi-Fi, 4G) nếu cần.
  • Tạo môi trường giống thực tế
    Thiết lập môi trường tương tự cách người dùng cuối sử dụng (ví dụ: hệ điều hành phổ biến, trình duyệt thông dụng).
  • Xác minh tính ổn định
    Chạy thử để kiểm tra xem môi trường có bị lỗi, crash hoặc gián đoạn không trước khi kiểm thử chính thức.
  • Sao lưu và khôi phục
    Chuẩn bị cơ chế sao lưu dữ liệu hoặc cấu hình để khôi phục môi trường nếu xảy ra sự cố.
  • Tài liệu hóa môi trường
    Ghi lại chi tiết cấu hình (ví dụ: Windows 11, Chrome v120) để đội nhóm tham khảo và tái sử dụng.
  • Kiểm tra quyền truy cập
    Đảm bảo bạn có đủ quyền (admin, user) để thực hiện các thao tác kiểm thử trên môi trường.
  • Đồng bộ với đội phát triển
    Phối hợp với đội dev để đảm bảo môi trường kiểm thử khớp với môi trường phát triển hoặc sản xuất.

6. Thực hiện các kịch bản kiểm thử

Bắt đầu chạy các kịch bản đã chuẩn bị. Thực hiện từng bước một cách cẩn thận và ghi lại kết quả thực tế để so sánh với kết quả mong đợi.

Một số checklist có thể kể đến như:

  • Xem lại kịch bản trước khi thực hiện
    Đọc kỹ các bước và điều kiện tiên quyết để đảm bảo hiểu rõ quy trình trước khi bắt đầu.
  • Thực hiện đúng thứ tự các bước
    Tuân thủ chính xác trình tự trong kịch bản để tránh sai lệch kết quả.
  • Sử dụng dữ liệu đã chuẩn bị
    Áp dụng đúng tập dữ liệu được thiết kế cho từng kịch bản (hợp lệ, không hợp lệ, biên).
  • Thực hiện cẩn thận và tỉ mỉ
    Làm từng bước chậm rãi, chú ý chi tiết để không bỏ sót bất kỳ thao tác nào.
  • Ghi chép kết quả thực tế
    Lưu lại chính xác những gì xảy ra sau mỗi bước (thành công, thất bại, lỗi) để đối chiếu sau.
  • So sánh với kết quả mong đợi
    Đánh giá xem kết quả thực tế có khớp với kỳ vọng được ghi trong kịch bản hay không.
  • Theo dõi thời gian thực hiện
    Ghi nhận thời gian hoàn thành từng kịch bản để đánh giá hiệu suất nếu cần.
  • Lặp lại khi cần thiết
    Chạy lại kịch bản nhiều lần (hoặc với dữ liệu khác) để xác nhận tính nhất quán của kết quả.
  • Kiểm tra các điều kiện ngoại lệ
    Quan sát phản ứng của hệ thống trong các tình huống bất thường xảy ra trong quá trình thực hiện.
  • Ghi lại bằng chứng
    Chụp ảnh màn hình, quay video hoặc lưu log nếu cần để minh họa kết quả hoặc lỗi.
  • Báo cáo vấn đề ngay lập tức
    Nếu phát hiện lỗi nghiêm trọng, thông báo cho đội phát triển sớm để xử lý kịp thời.
  • Đảm bảo môi trường ổn định
    Theo dõi môi trường kiểm thử trong suốt quá trình để tránh ảnh hưởng từ sự cố kỹ thuật.

7. Ghi nhận và phân tích kết quả

Sau khi kiểm thử, hãy ghi lại chi tiết những gì đã xảy ra. Nếu có lỗi (bug), mô tả rõ ràng tình huống, cách tái hiện và mức độ nghiêm trọng để đội phát triển dễ dàng xử lý.

Một số checklist có thể kể đến như:

  • Ghi chép chi tiết kết quả từng kịch bản
    Lưu lại chính xác những gì hệ thống phản hồi sau khi thực hiện, bao gồm cả thành công và thất bại.
  • So sánh với kết quả mong đợi
    Đối chiếu kết quả thực tế với kỳ vọng trong kịch bản để xác định sự khác biệt.
  • Mô tả lỗi (bug) rõ ràng
    Khi phát hiện lỗi, ghi lại cụ thể: lỗi gì, xảy ra khi nào, và trong điều kiện nào.
  • Cung cấp các bước tái hiện lỗi
    Liệt kê từng bước chi tiết để đội phát triển có thể lặp lại lỗi một cách dễ dàng.
  • Đánh giá mức độ nghiêm trọng
    Phân loại lỗi theo mức độ ảnh hưởng (ví dụ: thấp, trung bình, cao, nghiêm trọng) dựa trên tác động đến người dùng hoặc hệ thống.
  • Thu thập bằng chứng hỗ trợ
    Đính kèm ảnh chụp màn hình, video, hoặc log hệ thống để minh họa lỗi hoặc kết quả.
  • Ghi nhận thời gian và bối cảnh
    Lưu lại thời điểm xảy ra kết quả/lỗi và trạng thái môi trường kiểm thử (phiên bản phần mềm, cấu hình).
  • Phân tích nguyên nhân tiềm ẩn
    Cố gắng suy luận lý do lỗi xảy ra (nếu có thể) để hỗ trợ đội phát triển xử lý nhanh hơn.
  • Tổng hợp kết quả thành báo cáo
    Sắp xếp thông tin một cách có tổ chức (bảng, danh sách) để dễ dàng trình bày hoặc chia sẻ.
  • Xác định xu hướng hoặc vấn đề lặp lại
    Nhận diện nếu có lỗi tương tự xuất hiện ở nhiều kịch bản để báo cáo vấn đề hệ thống.
  • Đánh giá mức độ hoàn thành kịch bản
    Xác nhận xem kịch bản đã được kiểm tra đầy đủ hay cần bổ sung thêm lần chạy khác.
  • Lưu trữ kết quả an toàn
    Đảm bảo dữ liệu được ghi nhận được lưu ở nơi dễ truy cập và không bị mất mát.

8. Báo cáo lỗi một cách chi tiết

Khi phát hiện vấn đề, hãy tạo báo cáo lỗi với đầy đủ thông tin: mô tả lỗi, ảnh chụp màn hình (nếu có), và các bước tái hiện. Báo cáo rõ ràng giúp tiết kiệm thời gian sửa lỗi.


Một số checklist có thể kể đến như:

  • Đặt tiêu đề ngắn gọn, rõ nghĩa
    Viết tiêu đề mô tả chính xác lỗi (ví dụ: “Ứng dụng crash khi nhập số âm vào trường tuổi”).
  • Mô tả lỗi cụ thể
    Ghi lại chi tiết điều gì đã xảy ra, bao gồm hành vi bất thường của hệ thống so với kỳ vọng.
  • Liệt kê các bước tái hiện
    Cung cấp danh sách từng bước rõ ràng để đội phát triển có thể lặp lại lỗi (ví dụ: 1. Mở ứng dụng, 2. Nhập “-5” vào trường tuổi, 3. Nhấn nút Xác nhận).
  • Đính kèm bằng chứng trực quan
    Thêm ảnh chụp màn hình, video hoặc log hệ thống để minh họa lỗi một cách sinh động.
  • Ghi rõ môi trường kiểm thử
    Bao gồm thông tin như hệ điều hành, phiên bản phần mềm, thiết bị hoặc trình duyệt để xác định bối cảnh xảy ra lỗi.
  • Xác định mức độ nghiêm trọng
    Đánh giá tác động của lỗi (thấp, trung bình, cao, nghiêm trọng) dựa trên ảnh hưởng đến chức năng hoặc người dùng.
  • Xác định mức độ ưu tiên sửa lỗi
    Gợi ý thứ tự ưu tiên xử lý lỗi dựa trên mức độ khẩn cấp (ví dụ: cần sửa ngay trước khi phát hành).
  • Ghi nhận tần suất xảy ra
    Làm rõ lỗi xảy ra mọi lúc, thỉnh thoảng hay chỉ trong điều kiện cụ thể nào đó.
  • Cung cấp dữ liệu liên quan
    Bao gồm dữ liệu đầu vào đã sử dụng (nếu có) để giúp đội phát triển kiểm tra chính xác hơn.
  • Tránh ngôn ngữ mơ hồ
    Sử dụng câu từ cụ thể, tránh các cụm từ chung chung như “hệ thống không hoạt động” mà không giải thích thêm.
  • Kiểm tra lại trước khi gửi
    Đọc lại báo cáo để đảm bảo đầy đủ thông tin và không có sai sót chính tả hoặc thiếu sót.
  • Sử dụng công cụ quản lý lỗi (nếu có)
    Nhập báo cáo vào hệ thống như Jira, Bugzilla hoặc Trello theo định dạng chuẩn của đội nhóm.

9. Kiểm tra lại sau khi sửa lỗi

Sau khi lỗi được khắc phục, hãy kiểm tra lại kịch bản liên quan để đảm bảo vấn đề đã được giải quyết và không ảnh hưởng đến các chức năng khác.

Một số checklist có thể kể đến như:

  • Xác nhận lỗi đã được sửa
    Kiểm tra xem đội phát triển đã cập nhật trạng thái lỗi và cung cấp bản vá (fix) hay chưa.
  • Chạy lại kịch bản ban đầu
    Thực hiện lại các bước trong kịch bản đã phát hiện lỗi để xác minh vấn đề không còn tồn tại.
  • Sử dụng dữ liệu cũ
    Áp dụng chính xác dữ liệu đã gây ra lỗi trước đó để đảm bảo tình huống được kiểm tra đầy đủ.
  • So sánh với kết quả mong đợi
    Đối chiếu kết quả mới với kỳ vọng trong kịch bản để xác nhận lỗi đã được khắc phục hoàn toàn.
  • Kiểm tra các chức năng liên quan
    Thử các tính năng hoặc module khác có liên kết với lỗi để đảm bảo không có tác động phụ (regression).
  • Thực hiện kiểm thử hồi quy (regression testing)
    Chạy một tập hợp kịch bản quan trọng để xác minh toàn bộ hệ thống vẫn hoạt động bình thường.
  • Ghi nhận kết quả kiểm tra lại
    Lưu lại chi tiết: lỗi đã được sửa hay vẫn còn, kèm theo bằng chứng nếu cần (ảnh chụp, log).
  • Kiểm tra trong cùng môi trường
    Đảm bảo sử dụng môi trường kiểm thử tương tự (phiên bản, cấu hình) như lúc phát hiện lỗi ban đầu.
  • Thử nghiệm với dữ liệu bổ sung
    Sử dụng thêm các tập dữ liệu khác (hợp lệ, không hợp lệ, biên) để kiểm tra tính ổn định của bản sửa.
  • Xác nhận với đội phát triển
    Nếu lỗi chưa được sửa hoàn toàn, báo lại cho đội dev với thông tin cụ thể để họ xử lý tiếp.
  • Đánh giá hiệu quả bản sửa
    Xem xét xem bản vá có gây ra vấn đề mới nào không (hiệu suất chậm hơn, giao diện thay đổi, v.v.).
  • Cập nhật tài liệu kiểm thử
    Ghi chú trạng thái mới của kịch bản (pass/fail) và lưu vào hệ thống quản lý để theo dõi.

10. Đánh giá và cải thiện quy trình

Cuối cùng, hãy xem xét toàn bộ quá trình kiểm thử. Điều gì đã làm tốt? Điều gì cần cải thiện? Việc rút kinh nghiệm sẽ giúp bạn nâng cao chất lượng kiểm thử trong tương lai.

  • Xem xét toàn bộ quá trình
    Đánh giá lại từng bước từ chuẩn bị đến thực hiện để có cái nhìn tổng quan về hiệu quả kiểm thử.
  • Xác định điểm mạnh
    Ghi nhận những gì đã làm tốt (ví dụ: kịch bản rõ ràng, phát hiện lỗi sớm) để duy trì trong tương lai.
  • Nhận diện điểm yếu
    Xác định các vấn đề gặp phải (ví dụ: thiếu dữ liệu, thời gian không đủ) để tìm cách khắc phục.
  • Thu thập phản hồi từ đội nhóm
    Hỏi ý kiến từ các thành viên tham gia (tester, developer, quản lý) về những gì cần cải thiện.
  • Phân tích lỗi bị bỏ sót
    Kiểm tra xem có lỗi nào không phát hiện được trong quá trình kiểm thử và lý do tại sao.
  • Đánh giá hiệu quả kịch bản
    Xem xét liệu các kịch bản đã đủ bao quát và phù hợp với yêu cầu hay chưa.
  • Xem xét công cụ và phương pháp
    Đánh giá xem công cụ hoặc cách tiếp cận hiện tại có hiệu quả hay cần thay đổi/ nâng cấp.
  • Đo lường thời gian và nguồn lực
    So sánh thời gian, công sức bỏ ra với kết quả đạt được để tối ưu hóa trong lần sau.
  • Rút ra bài học kinh nghiệm
    Ghi lại những gì học được (ví dụ: cần chuẩn bị dữ liệu sớm hơn, ưu tiên kiểm tra biên) để áp dụng sau này.
  • Đề xuất cải tiến cụ thể
    Đưa ra các giải pháp rõ ràng (ví dụ: thêm bước kiểm tra môi trường, dùng công cụ tự động hóa) cho quy trình.
  • Cập nhật tài liệu và quy trình
    Điều chỉnh test plan, checklist hoặc hướng dẫn dựa trên đánh giá để cải thiện lần kiểm thử tiếp theo.
  • Tổ chức buổi họp tổng kết (nếu có)
    Thảo luận với đội nhóm để thống nhất các thay đổi và chia sẻ kinh nghiệm chung.


Lời kết

Thực hiện kiểm thử không chỉ là chạy thử phần mềm mà còn là một quy trình khoa học đòi hỏi sự tỉ mỉ và logic. Bằng cách áp dụng 10 bước trên, bạn có thể đảm bảo rằng mọi kịch bản kiểm thử được thực hiện hiệu quả, góp phần mang lại sản phẩm chất lượng cao.

Bạn có tips nào về việc xây dựng test cases hiệu quả không? Hãy chia sẻ với Better Bytes Academy nhé ^^

Phong Do
Tác giả
Phong Do