Trong lúc lang thang trên facebook, vô tình đọc thấy bài này hay nên copy về share lại cho mọi người.
Khái niệm về SDLC- Software Development Life Cycle (vòng đời phát triển phần mềm) chắc hẳn không còn xa lạ với các nhà phát triển phần mềm. SDLC là một quy trình có hệ thống, được sử dụng để xây dựng, phát triển phần mềm nhằm đảm bảo chất lượng và tính đúng đắn của phần mềm. SDLC chia nhỏ quy trình phát triển phần mềm thành các giai đoạn, từ ý tưởng đến triển khai với mục tiêu sản xuất phần mềm chất lượng cao đáp ứng được mong đợi của khách hàng. SDLC được sử dụng để giúp nhóm phát triển tối ưu hóa quy trình làm việc của họ và có thể mở rộng, phát triển, đảm bảo chất lượng phần mềm.
Automation Test (kiểm thử tự động) là một quá trình xử lý tự động kiểm thử test case được thực hiện bởi các Automation Testing Tool (công cụ kiểm thử tự động). Automation test giúp công việc testing được đảm bảo, đơn giản hóa những test case lặp lại nhiều lần cũng như giảm chi phí fix bug thông qua các script test thích hợp.
Ở các dự án trước đây, Automation Test thường được đưa vào trong những giai đoạn sau của phát triển phần mềm (trong và sau khi Build Stage). Nhưng với mô hình phát triển mới Agile đang được ứng dụng trên nhiều dự án, phương pháp kiểm thử truyền thống (Manual Test) lại gây cản trở. Các dự án cần tích hợp một phương pháp kiểm thử phù hợp hơn, thực hiện kiểm thử nhanh hơn, sớm hơn (hay gọi là Shift Left Testing) và hạn chế các chi phí phát sinh trong SDLC. Automation Test là phương pháp được nhiều nhà phát triển lựa chọn và để đảm bảo Automation test được thực hiện hiệu quả, nó cũng cần một quy trình thích hợp được gọi là Automation Test Life Cycle.
Automation Test Life Cycle bao gồm 6 giai đoạn:
1 . Giai đoạn đầu tiên là xác định phạm vi thực hiện Automation Test (Scope of Test Automation),
Mục tiêu của giai đoạn này là đánh giá, xác định tính khả thi của việc áp dụng tự động hóa vào các giai đoạn sau đó. Mọi khía cạnh cần được xem xét rất cẩn thận như:
- Sự phức tạp của các trường hợp kiểm thử
- Tính khả thi của việc thực hiện Automation test
- Các yếu tố chi phí, chuyên môn, quy mô phù hợp cũng cần được xem xét
2 . Giai đoạn hai là tìm loại Automation Tool phù hợp cho dự án (Selection of the Automation Tool)
Quá trình Automation Test phụ thuộc nhiều vào công cụ mà dự án sử dụng. Vì vậy việc lựa chọn một công cụ phù hợp trở nên vô cùng quan trọng. Các yếu tố cần được lưu ý: ngân sách, các công nghệ được sử dụng, sự quen thuộc, phù hợp của team đối với công cụ Automation.
3 . Giai đoạn ba chính là giai đoạn quan trọng nhất của dự án: lên kế hoạch (Test Plan), thiết kế mô hình Test (Test Design) và lên chiến lược thử nghiệm (Test Strategy).
Trong giai đoạn này, dự án cần xác định 3 yếu tố liên quan đến việc setup một Automation Test Framework: Plan, Design, Strategy. Đội tester xác định các tiêu chuẩn, guideline cũng như software, hardware và hệ thống mạng để hỗ trợ môi trường testing; Xác định về lịch trình testing, các yêu cầu về data đối với hệ thống test; tracking lỗi và method để control về config và môi trường staging cho việc testing… Đặc biệt khi tạo Test Strategy dự án cần cân nhắc những điều sau:
- Thu thập nhiều manual test nhất có thể để đánh giá trường hợp nào có thể thực hiện Automation Test
- Tìm hiểu ưu nhược điểm của Automation Tool để sử dụng framework phù hợp nhất
- Đảm bảo đã kiểm tra được phần lớn rủi ro, sự phụ thuộc giữa tool và ứng dụng, background trong Test Plan
- Đảm bảo sự đồng thuận của khách hàng hoặc các bên liên quan đến các vấn đề thuộc giai đoạn này
4 . Giai đoạn bốn: chuẩn bị môi trường kiểm thử (Test Environment Set up)
Trong môi trường Automation Test, dự án cần dự kiến phạm vi thử nghiệm tối đa, bao phủ nhiều tình huống nhất có thể như:
- Các máy điều khiển từ xa (vì người dùng truy cập các máy khác nhau từ những địa điểm khác nhau)
- Các trình duyệt và phiên bản từng trình duyệt (cross browser testing)
- Chuẩn bị dữ liệu test sát nhất với dữ liệu người dùng có thể tạo ra hay sử dụng (môi trường production)
- Lập ra danh sách test của các mô hình, hệ thống và ứng dụng để testing
- Nên có môi trường chạy giao diện người dùng để thực hiện test performance nhằm phân tích khả năng xử lý lưu lượng truy cập web của sản phẩm
- Thiết lập staging environment như trong 1 database server bị cô lập
- Tất cả bản manual guideline về cách config/install ở phía end-user nên được lưu trữ trong central database
5 . Giai đoạn năm: thực thi và phát triển các tập lệnh test trong source code (Test Script and it’s Execution)
Ở giai đoạn này, team Automation Test sẽ chuyển các Unit Test, Test Case về các test script để thực thi. Tuy nhiên trước đó cần lưu ý về:
- Test script cần được tạo ra dựa trên các yêu cầu thực tế
- Nên tạo một function method chung và có thể sử dụng trong suốt quá trình test
- Cần tại một test script có cấu trúc có thể tái sử dụng để các thành viên trong team hay khách hàng và bên thứ 3 cũng có thể dễ dàng nghiên cứu và sử dụng
- Test script phải chứa tất cả các khía cạnh function của test case và nên được thực hiện trên nhiều môi trường và flatform
- Test script nên được thực thi theo lô để tiết kiệm thời gian và resource
- Các case bị fail nên viết ra trong một bug-report
- Các kết quả, đánh giá về testing và tài liệu cần được viết và lưu trữ kĩ càng
6 . Giai đoạn cuối, dự án cần phân tích và xác định các function/ component gặp phải lỗi hay không phù hợp với người dùng/sản phẩm từ kết quả và các báo cáo (Test results and reports).
Việc phân tích sẽ là cơ sở để các nhà phát triển nhìn thấy cần chỉnh sửa ở đầu, cần thực hiện kiểm thử bổ sung ở đâu, … để sản phẩm có chất lượng tốt nhất. Ngoài ra một báo cáo kỹ lưỡng cần được chuẩn bị để chia sẻ với các bên liên quan, khách hàng, nhân viên và các nhóm liên quan dự án ở giai đoạn này.
Qua 6 bước trong Automation Test Cycle Life, chúng ta có thể hình dung ra được toàn bộ quá trình thực hiện Automation test cần một quy trình diễn ra một cách chính xác, nhịp nhàng để có thể đem lại hiệu quả cao nhất và đem lại sản phẩm tốt nhất.
Nguồn: genzlamit