fbpx

Quy trình kiểm thử phần mềm (Software Testing Life Cycle)

Có thể nói kiểm thử phần mềm là một phần vô cùng quan trọng trong quá trình thực hiện “sản phẩm” phầm mềm, sao cho sản phẩm đến tay người dùng sẽ đáp ứng được điều kiện cần và đủ. Như vậy đòi hỏi kiểm thử phần mềm cần có quy trình cụ thể,rõ ràng. Bài viết dưới đây mình xin giới thiệu cho các bạn về quy trình đó là: Software Testing Life Cycle(Quy trình kiểm thử phần mềm).

Quy trình kiểm thử phần mềm là gì?

Quy trình kiểm thử phần mềm – Software testing life cycle( STLC) xác định các giai đoạn (pha) trong kiểm thử phần mềm, nhằm hướng đến mục tiêu cuối cùng là chất lượng sản phẩm tốt nhất và đáp ứng yêu cầu của khách hàng. Tuy nhiên, không có tiêu chí chuẩn nào được đưa ra, nhưng về cơ bản quy trình kiểm thử bao gồm 6 giai đoạn và được thực hiện theo các bước như sau:

kiểm thử phần mềm

Requirement analysis- Phân tích yêu cầu

Phân tích yêu cầu là giai đoạn đầu tiên của quy trình kiểm thử phần mềm, trong đó nhóm sẽ kiểm tra, nghiên cứu các yêu cầu của khách hàng. Giai đoạn này khá quan trọng bởi từ đó có thể đánh giá xem các yêu cầu có kiểm tra được hay không? Nếu không sẽ trao đổi để lập kế hoạch giúp giảm thiểu quá trình kiểm thử. Và cũng từ đó giúp chúng ta xác định được phạm vi của kiểm thử.

  • Tester sẽ làm gì trong giai đoạn này?
  • Cùng với việc nghiên cứu và đánh giá thì trong quá trình phân tích, nghiên cứu tài liệu, nếu có câu hỏi phát sinh hay đề xuất giải quyết, QA team sẽ đưa ra câu hỏi với các bên liên quan như: BA ( Business Analysis), PM ( Project Manager), team leader và khách hàng để hiểu chính xác hơn về yêu cầu của sản phẩm. Những câu hỏi này sẽ được lưu trữ vào file Q&A (Question and Answer).

Lưu ý:

– Các câu hỏi nên được đưa ra dưới dạng Yes/No question hoặc các lựa chọn để tiết kiệm thời gian trả lời cũng như hỗ trợ đưa ra những gợi ý hay để xây dựng sản phẩm ngay từ đầu.

– Không nên nêu ra những câu hỏi dạng là gì, như thế nào, tại sao,… Những câu hỏi như thế thường mất thời gian để giải thích và cũng khó có thể giải thích một cách chi tiết nhất có thể. Hơn nữa, đối với khách hàng không có sự hiểu biết về lĩnh vực phần mềm mà họ yêu cầu thì càng không thể trả lời những câu hỏi mang tính chuyên môn cao. Chính chúng ta sẽ là người hỗ trợ và đưa ra giải pháp thích hợp cho khách hàng lựa chọn.

  • Sản phẩm sẽ bàn giao

– Đầu ra của giai đoạn này bao gồm: tài liệu chứa các câu hỏi, câu trả lời liên quan đến nghiệp vụ của hệ thống và tài liệu báo cáo tính khả thi, phân tích rủi ro của việc kiểm thử phần mềm.

Test planning – Lập kế hoạch kiểm thử 

Thông thường, trong giai đoạn này, Senior QA manager sẽ xác định effort, dự toán chi phí cho dự án để chuẩn bị và hoàn thiện Kế hoạch kiểm tra. Đồng thời chiến lược thử nghiệm cũng được xác định.

  • Tester sẽ làm gì trong giai đoạn này?

– Xác định phạm vi (Scope) dự án:Dự án thực hiện trong thời gian bao lâu? Bao gồm những công việc gì cho từng khoảng thời gian xác định? Từ đó đưa ra lịch trình thực hiện cho từng công việc nhỏ sao cho phù hợp với toàn bộ đội dự án.

– Xác định phương pháp tiếp cận: Nói về cách tiếp cận để kiểm thử cho một đối tượng nào đó, thì phải dựa vào nhiều thứ, ví dụ như: Thời gian cho phép test có phù hợp với con số ước lượng, nhiều hay ít, yêu cầu chất lượng từ phía khách hàng thế nào? Cao, thấp hay khắc khe hay sao cũng được? Công nghệ/ kỹ thuật sử dụng để phát triển ứng dụng này là gì? Lĩnh vực của hệ thống/sản phẩm đang được test (domain) là gì?… Từ đó, test manager có thể đưa ra những phương pháp và kế hoạch phù hợp nhất cho cả quá trình thực hiện dự án sao cho đúng với các tiêu chí chấp nhận của sản phẩm và kịp tiến độ với các mốc thời gian bàn giao, phát hành. –

  • Xác định các nguồn lực

– Về Con người: sẽ có bao nhiêu người tham gia dự án, vai trò và nhiệm vụ cụ thể của từng người trong dự án? Tester và nhóm phát triển cần có kinh nghiệm về lĩnh vực này hay không?…

– Về Thiết bị: số lượng server, yêu cầu về version, cấu hình như thế nào? dự án app cần mobile, tablet,….

  • Lên kế hoạch thiết kế công việc test

– Bản kế hoạch kiểm thử sẽ bao gồm các nội dung:

Liệt kê các chức năng cần kiểm thử, để thực hiện test chức năng này thì cần làm những công việc gì, trong thời gian bao lâu, cái nào thực hiện trước, cái nào thực hiện sau, ai là người thực hiện.
Xác định điều kiện bắt đầu: những điều kiện tối thiểu để bắt đầu hoạt động kiểm thử cho từng chức năng.
Xác định điều kiện kết thúc : khi có những điều kiện nào thì sẽ kết thúc việc kiểm thử.

  • Sản phẩm sẽ bàn giao

– Test Plan: theo định nghĩa của ISTQB test plan là một tài liệu mô tả phạm vi, cách tiếp cận, nguồn lực và lịch trình của các hoạt động kiểm tra dự kiến. (chi tiết xem thêm tại https://www.guru99.com/what-everybody-ought-to-know-about-test-planing.html )

– Effort Estimation: tạm dịch là ước tính nỗ lực, là một hoạt động quản lý ước tính thời gian một nhiệm vụ sẽ hoàn thành trong bao lâu. (chi tiết xem thêm tại https://www.guru99.com/an-expert-view-on-test-estimation.html )

Test case development – Thiết kế kịch bản kiểm thử 

Giai đoạn này liên quan đến việc tạo, xác minh và làm lại các test case, test script. Test data sẽ được xác định/ tạo và được xem xét và sau đó làm lại.

  • Tester sẽ làm gì trong giai đoạn này?

– Review tài liệu: Đầu tiên, các kiểm thử viên cần review lại tất cả các tài liệu để xác định công việc cần làm, các công việc có khác gì so với dự án trước khách hàng đưa cho, chức năng nào cần test, chức năng nào không cần test lại nữa. Từ đó, vừa có thể tiết kiệm thời gian mà vẫn đưa ra được một kịch bản kiểm thử đầy đủ và hiệu quả.

– Viết test case/ check list: Sau đó, tester bắt tay vào việc viết test case chi tiết dựa vào kế hoạch đã đưa ra và vận dụng các kỹ thuật thiết kế kịch bản kiểm thử. Test case cần bao phủ được tất cả các trường hợp kiểm thử có thể xảy ra cũng như đáp ứng đầy đủ các tiêu chí của sản phẩm, đồng thời tester cũng cần đánh giá mức độ ưu tiên cho từng test case.

– Chuẩn bị dữ liệu kiểm thử: Cùng với việc tạo ra các test case chi tiết, đội kiểm thử cũng cần chuẩn bị trước các dữ liệu kiểm thử cho các trường hợp cần thiết (data, script).

– Review test case/ check list: Sau khi hoàn thành, các thành viên trong đội kiểm thử hoặc test leader cũng cần review lại test case đã tạo để có thể bổ sung, hỗ trợ lẫn nhau nhằm tránh những sai sót trong thiết kế test case và rủi ro về sau.

  • Sản phẩm sẽ bàn giao

– Sau khi hoàn thành thiết kế kịch bản kiểm thử, Tester sẽ có các tài liệu bao gồm: test design, test case, check list, test data và test automation script.

Test environment set up – Thiết lập môi trường kiểm thử

Đầu vào của giai đoạn cài đặt môi trường kiểm thử là test plan, smoke test case và test data.

  • Tester sẽ làm gì trong giai đoạn này?

– Việc cài đặt môi trường kiểm thử là giai đoạn cũng rất quan trọng trong vòng đời phát triển phần mềm. Môi trường kiểm thử sẽ được quyết định dựa trên những yêu cầu của khách hàng, hay đặc thù của sản phẩm ví dụ như server/ client/ network…

– Tester cần chuẩn bị một vài test case để kiểm tra xem môi trường cài đặt đã sẵn sàng cho việc kiểm thử hay chưa. Đây chính là việc thực thi các smoke test case.

  • Sản phẩm sẽ bàn giao

– Đầu ra của giai đoạn này là môi trường đã được cài đặt đúng theo yêu cầu, sẵn sàng cho việc kiểm thử và kết quả của smoke test case.

Test execution – Thực hiện kiểm thử

Thực hiện kiểm thử sẽ sử dụng sản phẩm của các giai đoạn trước là test plan, test design, test case, check list, test data, test automation script.

  • Tester sẽ làm gì trong giai đoạn này?

– Thực hiện các test case như thiết kế và mức độ ưu tiên đã đưa ra trên môi trường đã được cài đặt.

– So sánh với kết quả mong đợi sau báo cáo các bug xảy ra lên tool quản lý lỗi và theo dõi trạng thái của lỗi đến khi được sửa thành công.

– Thực hiện re-test để verify các bug đã được fix và regression test khi có sự thay đổi liên quan.

– Trong quá trình thực hiện kiểm thử, kiểm thử viên cũng có thể hỗ trợ, đề xuất cho cả đội dự án để có giải pháp hợp lý và kết hợp công việc hiệu quả.

– Đo và phân tích tiến độ: kiểm thử viên cũng cần kiểm soát chặt chẽ tiến độ công việc của mình bằng cách so sánh tiến độ thực tế với kế hoạch, nếu chậm cần phải điều chỉnh sao cho kịp tiến độ dự án, nếu nhanh cũng cần điều chỉnh vì có thể test lead lên kế hoạch chưa sát với thực tế dự án. Từ đó có thể sửa chữa test plan cần điều chỉnh để phù hợp với tiến độ dự án đưa ra.

– Report thường xuyên cho PM và khách hàng về tình hình thực hiện dự án: Cung cấp thông tin trong quá trình kiểm thử đã làm được những chức năng nào, còn chức năng nào, hoàn thành được bao nhiều phần trăm công việc, báo cáo các trường hợp phát sinh sớm, tránh ảnh hưởng tiến độ công việc của cả ngày.

  • Sản phẩm sẽ bàn giao

– Đầu ra của giai đoạn này là test result (kết quả kiểm thử) và defect report (danh sách các lỗi tìm được).

Test cycle closure – Đóng chu trình kiểm thử

Đây là giai đoạn hoàn thành việc kiểm thử, bao gồm một số hoạt động như báo cáo, kết quả thử nghiệm,.. cùng với đó thảo luận và phân tích để xác định các chiến lược sẽ thực hiện trong tương lai và những bài học rút ra từ chu trình hiện tại để áp dụng cho các dự án sau.

  • Tester sẽ làm gì trong giai đoạn này?

– Ở giai đoạn này, QA team thực hiện tổng kết, báo cáo kết quả về việc thực thi test case, số lượng case pass/ fail, case đã được fix, mức độ nghiêm trọng của lỗi, số lượng lỗi cao/ thấp, lỗi còn nhiều ở chức năng nào và dev nào nhiều lỗi. Các chức năng đã hoàn thành test chưa hay còn chậm tiến độ.

– Đánh giá các tiêu chí hoàn thành như: phạm vi kiểm tra, chất lượng, chi phí, thời gian và mục tiêu kinh doanh quan trọng.

– Ngoài ra, giai đoạn này cũng thảo luận tất cả những điểm tốt, điểm chưa tốt và rút ra bài học kinh nghiệm cho những dự án sau giúp cải thiện quy trình kiểm thử

  • Sản phẩm sẽ bàn giao

– Đầu ra của giai đoạn này bao gồm các tài liệu: Test report, Test result (final)

Kết Luận

Trên đây mình đã giới thiệu tổng quan về quy trình kiểm thử phần mềm, bài viết còn nhiều thiếu sót rất mong nhận được ý kiến của quý bạn đọc để các bài viết sau ngày càng hoàn thiện hơn. Chúc các bạn thành công và hãy luôn ủng hộ ITMS Coaching nhé!

Tham Khảo

  1. https://www.guru99.com/software-testing-life-cycle.html#2
  2. https://www.softwaretestinghelp.com/what-is-software-testing-life-cycle-stlc/

Related Articles

Responses