Khi nói đến 𝐓𝐞𝐬𝐭𝐢𝐧𝐠 chúng ta đều biết tới Manual testing và Automation testing.
Hiện nay, khi tư duy Agile phát triển, đi kèm theo các mô hình, thuật ngữ, các quy trình phát triển mạnh mẽ và tối ưu hơn thì Automation testing lại là sự lựa chọn tối ưu đối với các nhà phát triển phần mềm.
Ở hầu hết các quy trình sản xuất phần mềm, các Tester thường tham gia vào những công đoạn sau, làm hạn chế những hiệu quả mà Testing mang lại.
Chính vì vậy, trong những năm gần đây, ý tưởng DevTestOps– đã được đưa ra, tới đây cùng mình tìm hiểu nhé!
I – DevTestOps là gì
DevTestOps là sự kết hợp giữa DevOps và Kiểm thử liên tục. Quá trình này bao gồm thử nghiệm sớm, thử nghiệm thường xuyên và thử nghiệm trong suốt quy trình phân phối phần mềm. Giống như có một thanh tra viên kiểm soát chất lượng siêng năng không bao giờ nghỉ ngơi.
Hãy tưởng tượng một dây chuyền sản xuất code đang đi qua các giai đoạn: thu thập yêu cầu, development, và kiểm thử đơn vị. Trong DevTestOps, các tester tham gia vào dây chuyền này từ sớm, đảm bảo không có vấn đề nào thoát khỏi ánh mắt của họ.
Mục tiêu? Bắt lỗi vấn đề trước khi chúng biến thành những rắc rối phần mềm
Theo tuyên ngôn của DevTestOps thì nó không muốn tách biệt kiểm thử khỏi phát triển và vận hành. Thay vào đó, nó tôn vinh vai trò của tester như một phần không thể thiếu trong văn hóa chất lượng của DevOps. Teamwork là chìa khóa!
1: Kiểm tra liên tục đến kiểm tra cuối cùng
2: Bao trùm tất cả các hoạt động thử nghiệm chỉ bằng thử nghiệm chức năng tự động
3: Kiểm tra những gì mang lại giá trị hơn là kiểm tra mọi thứ
4: Thử nghiệm trong toàn nhóm qua thử nghiệm ở các bộ phận thử nghiệm riêng biệt
5: Bao phủ sản phẩm trên bao phủ code
II- Làm thế nào DevTestOps hoạt động?
DevTestOps giúp hợp nhất thử nghiệm liên tục với các dev, do đó mang lại tầm quan trọng cho quy trình thử nghiệm. Điều này đã thay đổi quan điểm của người thử nghiệm trong ngành phần mềm.
Shift Left: Kiểm thử bắt đầu sớm hơn trong quy trình. Không còn chờ đến phút chót để biết code có “ghét” dấu chấm phẩy hay không.
Kiểm thử liên tục: Đây giống như một dây chuyền sản xuất kiểm thử. Các bài kiểm tra tự động chạy mỗi khi có thay đổi mã, đảm bảo không có gì trốn thoát.
Thế giới không lỗi lầm: DevTestOps hướng đến việc không có lỗi. Bằng cách tích hợp kiểm thử vào quy trình phát triển, nó giảm khả năng bất ngờ ở giai đoạn cuối. 🌟
Các loại thử nghiệm nên bao gồm sự kết hợp của các loại thử nghiệm được đề cập dưới đây:
- Thử nghiệm thăm dò: Thử nghiệm này dựa trên kinh nghiệm trước đây của người thử nghiệm khi làm việc trong một loại ứng dụng tương tự. Điều này giúp xác định các lỗ hổng trong ứng dụng có thể bị bỏ sót khi viết và thử nghiệm các kịch bản.
- Kiểm tra thủ công: Như chúng ta đã biết, một tính năng không thể được tự động hóa trước khi kiểm tra thủ công và xác định rằng tính năng đó ổn định để tự động hóa. Do đó, kiểm thử thủ công đóng một vai trò quan trọng trong quá trình kiểm thử toàn diện của một ứng dụng và không thể bỏ qua ngay cả khi các quy trình như Devtestops đã được áp dụng.
- Thử nghiệm đặc biệt: Đây là thử nghiệm không chính thức, không dựa trên một tập hợp các trường hợp thử nghiệm. Mục đích của thử nghiệm đặc biệt là phá vỡ hệ thống.
- Kiểm tra tự động hóa: Các hoạt động tốn thời gian, lặp đi lặp lại và được yêu cầu thực hiện hàng ngày sẽ được tự động hóa trước tiên.
III- Các giai đoạn của DevTestOps
- Quản lý Sản phẩm: Thu thập yêu cầu và đánh giá khả thi.
- Phát triển Phần mềm: Phân tích, thiết kế, viết mã và kiểm thử đơn vị.
- Quản lý Kiểm thử: Thiết kế và thực thi các ca kiểm thử để xác minh hiệu suất của hệ thống.
- Liên tục tích hợp: Nhà phát triển hợp nhất mã nguồn vào kho chung, và tester chạy bộ kiểm thử tự động để bắt lỗi.
- Triển khai liên tục: Phần mềm được phát triển trong các lần chạy nước rút, đảm bảo rằng phần mềm đã phát triển trong mỗi lần chạy nước rút sau khi thử nghiệm có thể được phát hành một cách đáng tin cậy bất kỳ lúc nào. Nó nhằm mục đích xây dựng, thử nghiệm và phát hành phần mềm với tốc độ và hiệu quả cao hơn.
- Giám sát liên tục: Giúp cung cấp phản hồi khi ứng dụng được đưa vào sản xuất. Nó cung cấp thông tin về mô hình sử dụng và hiệu suất ứng dụng trong môi trường sản xuất. Các nhóm hành động dựa trên thông tin để loại bỏ các vấn đề nhanh nhất có thể để người dùng không còn bị ảnh hưởng bởi nó nữa.
IV- Tại sao DevTestOps quan trọng?
- Đảm bảo chất lượng: Nó đảm bảo sản phẩm đáp ứng tiêu chuẩn chất lượng.
- Giảm rủi ro kinh doanh: Bắt lỗi sớm tránh những bất ngờ đắt đỏ sau này.
- Phát triển nhanh hơn: Vì ai lại không thích phát hành phần mềm nhanh chóng