Vai trò của kỹ sư kiểm thử trong mô hình DevOps
Thật sự cũng không quá lâu khi chúng ta – những người quyết định sự nghiệp của bản thân là giúp đỡ các tổ chức/công ty mang lại cho người dùng những sản phẩm tốt nhất, tự hỏi làm sao để chúng ta phù hợp trong thế giới phát triển Agile. Trong khi các công ty độc lập và giới kỹ sư phần mềm cố gắng đáp ứng và quyết định rằng Agile là phù hợp với nghiệp vụ và mục tiêu của mình, một sự tiến bộ quan trọng khác đã sẵn sàng xuất hiện trong giới phát triển phần mềm: DevOps. Một vài người còn nhận định, DevOps chỉ đơn giản là một hình thái tiến hóa kế tiệp của Agile.
DevOps thật sự là một sự thay đổi lớn, mà ở đó, nhấn mạnh sự hợp tác giữa các nhà phát triển phần mềm và các chuyên gia trong các lĩnh vực IT khác trong khi tự động hóa việc đưa sản phẩm ra thị trường và thay đổi các cấu trúc hạ tầng. Nó nhằm mục đích xây dựng một môi trường mà ở đó, phát triển, kiểm thử và đưa sản phẩm phần mềm ra thị trường nhanh hơn, thường xuyên hơn và đáng tin cậy hơn.
Về cơ bản, mô hình DevOps phấn đấu để phá vỡ các rào cản truyền thống giữa các bên trong quá trình phát triển, bao gồm cả kiểm thử, nghiệp vụ; và cố gắng đạt đến mức độ tự động hóa việc triển khai sản phẩm phần mềm, nơi mà bất kỳ sự thay đổi và cải tiến nào cũng có thể được triền khai ngay khi cần thiết.
Nếu mục tiêu của chúng ta, như là những kỹ sư kiểm thử, là xây dựng và mang lại sản phẩm nhanh hơn, thường xuyên hơn và đáng tin cậy hơn, chúng ta cần phải sắp xếp và kết hợp các hoạt động kiểm thử, công cụ kiểm thử, kịch bản kiểm thử, dữ liệu kiểm thử và môi trường kiểm thử vào trong một thế giới liên kết liên tục, kiểm thử liên tục và triển khai liên tục các sản phẩm. Xa hơn nữa, chúng ta cần áp dụng các mô hình mới và tập trung vào cách kiểm thử theo hướng phòng ngừa hơn là chăm chăm vào việc tìm kiếm lỗi, và tập trung vào triển khai các chức năng mới vào sản phẩm hơn là vào nghiệp vụ. Nếu không làm như vậy, chúng ta khó hy vọng vào việc nhanh chóng mang lại sản phẩm chất lượng cao cho khách hàng.
Từ đó, chúng ta có cơ hội nhìn lại vai trò, trách nhiệm và công việc kiểm thử của chúng ta trong môi trường DevOps một cách khác biệt. Dưới đây là một vài ví dụ:
- Đào tạo, cố vấn và cam kết một cách nghĩ mới, tiếp cận mới về phương pháp cung cấp sản phẩm ra thị trường một cách liên tục thông qua các cải tiến (dù nhỏ) của sản phẩm.
- Nâng cao chất lượng trên toàn bộ quá trình phát triển bằng cách không chỉ quan tâm đến chất lượng sản phẩm mà còn chất lượng trong quá trình phát triển, quá trình kiểm thử và quá trình triển khai sản phẩm end-to-end.
- Tìm kiếm, đánh giá và thử nghiệm các công cụ hỗ trợ phương pháp làm việc tích hợp, một công cụ áp dụng quá trình làm việc liên tục, có khả năng tăng tốc quá trình phát triển, quá trình kiểm thử, quá trình triển khai và đảm bảo các việc này có thể được làm một cách đồng thời.
- Đảm bảo rằng (vấn đề này là cần thiết) luồng làm việc cũng như dữ liệu của người dùng được thu thập và phân tích, bởi tất cả mọi người trong nhóm phát triển, để các chức năng mà ứng dụng cung cấp là dựa trên nhu cầu cần thiết nhất người sử dụng.
- Giúp đỡ nhóm phát triển về quản lý và giảm thiểu rủi ro, ví dụ như kiểm thử trên sản phẩm ngay sau khi triển khai; chỉ triển khai những thay đổi/chức năng mới trên một vài hệ thống hoặc vài người dùng; tiến hành trên chế độ phân tích lỗi và đảm bảo có thể quay lại phiên bản trước trong trường hợp có lỗi.
Bạn có thể nói rằng “Những nhiệm vụ này là trách nhiệm của ai đó, không phải kỹ sư kiểm thử“. Theo truyền thống, bạn hoàn toàn đúng. Nhưng, một nền văn hóa đồng nhất và tích hợp mới, nơi mà mọi người hợp tác với nhau để phát triển và cung cấp các sản phẩm phần mềm nhanh hơn, tốt hơn và rẻ hơn đã làm lu mờ các vai trò trong nhóm phát triển.
Dịch từ TechWell, theo Michael Sowers