× Giới thiệu Lịch khai giảng Tin tức Sản phẩm học viên

Vai trò của QA trong DevOps là gì?

20/05/2022 14:38

Cùng khám phá vai trò của QA trong DevOps và cách làm việc để tối ưu hiệu suất khi làm việc với Devops

Các tổ chức đang cố gắng phát hành các tính năng nhanh hơn bao giờ hết, để đáp ứng nhu cầu ngày càng tăng của khách hàng và luôn phù hợp trong ngành. Thị trường có tính cạnh tranh cao và các nhóm đang xem xét các phương pháp tiếp cận tinh gọn để cung cấp các sản phẩm chất lượng cao. Nhiều cách tiếp cận nhanh nhẹn khác nhau đã được áp dụng để hỗ trợ nỗ lực này và một trong số chúng đã trở nên phổ biến trong những năm gần đây là DevOps.

DevOps là gì?

Trong lịch sử, các nỗ lực phát triển và thử nghiệm được xem như hai thực thể riêng biệt. Mô hình này được chứng minh là có một số điểm nghẽn. Một số trong số đó bao gồm:

  • Khoảng cách trong giao tiếp giữa các nhóm, dẫn đến khiếm khuyết
  • Hiểu sai về các tính năng đã triển khai
  • Không rõ ràng về phạm vi kiểm tra 
  • Không nhìn thấy công việc của nhau
  • Xung đột không cần thiết do thiếu cộng tác
  • Các tính năng không ổn định được đẩy lên QA

Và hơn hết, không ai có bất kỳ ý tưởng nào về việc khách hàng đang sử dụng sản phẩm được triển khai như thế nào. Họ đã không trao đổi trực tiếp với nhóm vận hành giám sát ứng dụng trong sản xuất và các số liệu thống kê quan trọng có thể cải thiện sản phẩm hơn nữa cũng không được thu thập. Điều này đã lãng phí lượng thời gian, công sức và chi phí khôn lường cho các tổ chức và cuối cùng dẫn đến sự chậm trễ trong việc phát hành các tính năng đúng thời hạn và dẫn đến sự giảm sút mức độ hài lòng của khách hàng.

DevOps được giới thiệu để giảm thiểu các vấn đề trên và tái tạo tâm lý rằng chất lượng là trách nhiệm của mọi người. Trọng tâm chính của phương pháp này là tăng cường sự hợp tác giữa các nhà phát triển, người thử nghiệm và các nhóm vận hành, để họ có thể làm việc như một đơn vị duy nhất để cung cấp các sản phẩm chất lượng cao. 

Vai trò của QA trong DevOps

Trong các cách tiếp cận nhanh nhẹn khác, nhà phát triển chịu trách nhiệm viết mã và tạo tính năng cũng như viết và chạy các bài kiểm tra đơn vị; người kiểm tra thực hiện kiểm tra tự động và thủ công trên tính năng này. DevOps có chủ đích làm mờ ranh giới giữa những trách nhiệm này, buộc phải cộng tác. Các nhà phát triển bắt đầu xây dựng tư duy liên tục kiểm tra các lỗi trong mã của họ. Người kiểm tra tăng trách nhiệm của họ từ việc xác thực ứng dụng, đến đảm bảo nó có thể triển khai mọi lúc. Họ thậm chí có thể sửa mã khi cần thiết. Tất cả những phần này làm việc cùng nhau để đảm bảo cung cấp nhanh chóng các tính năng. Sự tập trung vào khách hàng thúc đẩy công việc của toàn đội.

Trong DevOps, quan điểm kiểm tra thay đổi từ “kiểm tra hoàn thành trên mô-đun này” thành “Những rủi ro kinh doanh đã được giảm thiểu trong ứng viên phát hành là gì?” Họ vượt ra ngoài kiểm tra thủ công và tập trung vào triển khai có thể mở rộng, tự động hóa ngay từ đầu quá trình phát triển, chuẩn hóa môi trường QA, sắp xếp các nhiệm vụ QA với Kiểm tra liên tục và đường ống CI / CD.

Mức độ hợp tác cao giữa các nhà phát triển, người kiểm tra và nhóm vận hành cho phép người kiểm tra giám sát ứng dụng trong quá trình sản xuất và sử dụng dữ liệu để giúp các bên liên quan đưa ra quyết định sáng suốt.

Làm thế nào để tích hợp QA vào môi trường DevOps?

DevOps không thay thế quy trình QA hiện có. Thay vào đó, nó thay đổi quan điểm của người kiểm thử từ cách kiểm thử truyền thống, chẳng hạn như ánh xạ các trường hợp thử nghiệm với các yêu cầu, thực hiện các trường hợp thử nghiệm theo cách thủ công và báo cáo các lỗi; sang một cách phân phối phần mềm nhanh nhẹn hơn, trong đó QA là một phần của một nhóm lớn thay vì là một thực thể riêng biệt.

Tích hợp QA vào DevOps

Dưới đây là một số cách để tích hợp QA vào môi trường DevOps:

Sắp xếp lại cấu trúc nhóm

Đầu tiên, các tổ chức nên xóa bỏ ranh giới giữa các nhà phát triển, QA và các nhóm vận hành. Điều này sẽ liên quan đến việc cơ cấu lại nhóm QA hiện tại để phù hợp với các mục tiêu của DevOps. 

Các nhóm phải hợp nhất thành một nhóm kỹ thuật tập trung vào các hoạt động khác nhau để cung cấp các tính năng đúng hạn. Các nhóm kỹ thuật này phải giao tiếp, cộng tác và tối ưu hóa nỗ lực của họ để tìm ra lỗi nhanh chóng và sửa chữa chúng trước khi triển khai. Ngoài ra, người thử nghiệm nên tham gia sớm vào quá trình phát triển, bắt đầu từ giai đoạn yêu cầu (nơi họ có thể loại bỏ bất kỳ sự mơ hồ nào trong các yêu cầu) bằng cách đảm bảo toàn bộ nhóm hiểu rõ về cách tính năng sẽ được phát triển, thử nghiệm, triển khai và giám sát. -phóng. Kiểm tra liên tục trở thành một phần trách nhiệm của mọi người.

Tự động hóa nhiều nhất có thể

Thứ hai, DevOps và tự động hóa đi đôi với nhau — không có cái này thì cái kia sẽ không hoạt động. Đây là nơi những người và công cụ thông minh có thể giúp mang lại chu kỳ phát hành ngắn hơn và đáng tin cậy hơn. Mọi thứ có thể được tự động hóa nên được tự động hóa. Điều này có thể bao gồm các bài kiểm tra đơn vị, triển khai, tích hợp, khói, hồi quy, bảo mật và hiệu suất. Người kiểm tra đóng một vai trò không thể thiếu trong quy trình DevOps bằng cách bắt đầu tự động hóa sớm trong quy trình để tìm ra lỗi sớm hơn là muộn hơn.

Ngoài ra, để tự động hóa có hiệu quả, bạn nên mô-đun hóa các bộ thử nghiệm của mình và chạy chúng ở các giai đoạn khác nhau của quá trình phát triển dựa trên các tính năng phải được thử nghiệm. Cuối cùng, khi các tính năng mới được thêm vào sản phẩm, các bộ thử nghiệm phải đủ linh hoạt để mở rộng tùy theo độ phức tạp. Điều này có thể bao gồm nhu cầu bổ sung phần mềm, phần cứng và các nguồn lực có kỹ năng để hỗ trợ nỗ lực.

Sử dụng các chỉ số để theo dõi tiến trình

Một yếu tố quan trọng khác quyết định sự thành công của việc tích hợp QA vào quy trình DevOps là có các chỉ số có thể định lượng giá trị. Một cuộc khảo sát do Forrester Research thực hiện cho thấy 75 chỉ số phổ biến mà các nhóm DevOps sử dụng để đo lường mức độ thành công của việc áp dụng. Một số trong số đó liên quan trực tiếp đến chất lượng của sản phẩm như sau:

  • Phạm vi trường hợp thử nghiệm
  • Phạm vi kiểm tra đơn vị
  • Tỷ lệ đạt / không đạt
  • Số lượng thử nghiệm được thực hiện
  • Tỷ lệ đạt / không đạt API
  • Các yêu cầu được đề cập trong các bài kiểm tra
  • Các trường hợp thử nghiệm bị chặn
  • Phần trăm các trường hợp thử nghiệm tự động
  • Xây dựng mã thành công
  • Khuyết tật mới
  • Khuyết tật nghiêm trọng
  • Các thử nghiệm tự động được ưu tiên theo rủi ro
  • Mã số bảo hiểm
  • Thời hạn phát hành
  • Tổng số lỗi được phát hiện trong thử nghiệm
  • Các lỗi API mới được tìm thấy

Sử dụng các chỉ số này, các bên liên quan có thể đưa ra quyết định sáng suốt về cách QA có thể cộng tác hiệu quả với các nhà phát triển, nhóm vận hành và các vai trò khác trong dự án.

Chạy thử nghiệm song song

Người kiểm tra chạy thử nghiệm song song với các hoạt động khác nhau trong quy trình DevOps. Để kiểm tra song song có hiệu quả, các kỹ sư QA cần thiết lập môi trường kiểm tra tiêu chuẩn hóa và có đủ tài nguyên phần cứng và phần mềm để chạy nhiều kiểm tra nhanh nhất có thể. Họ cũng có thể có các cuộc đánh giá định kỳ để đảm bảo quá trình thử nghiệm được tối ưu hóa để kết thúc trong thời gian giao phần mềm.

Giám sát liên tục

DevOps liên quan đến nhiều công cụ, quy trình, kiểm tra tự động và môi trường. Dữ liệu được trích xuất từ ​​các giai đoạn khác nhau của quá trình phát triển và được phân tích để đảm bảo hệ thống luôn hoạt động ở mức tối ưu. Thông thường, nhóm vận hành làm việc với các nhà phát triển và người kiểm tra để xây dựng khả năng giám sát và phân tích ngay trong ứng dụng đã phát triển. Điều quan trọng là người thử nghiệm phải biết cách sử dụng các công cụ như Splunk, Kibana, Graphite và Firebase được sử dụng cho mục đích này để hỗ trợ nhóm vận hành.

Có một bộ quy trình và công cụ chung

Một trong những vấn đề lớn nhất trong các tổ chức là mỗi nhóm tuân theo một quy trình khác nhau và sử dụng một bộ công cụ riêng biệt để hoàn thành cùng một nhiệm vụ. Khi điều này không được chú ý, nó sẽ dẫn đến sự lãng phí không cần thiết về chi phí, thời gian và công sức cho tổ chức. 

Với DevOps, các nhóm cộng tác phải đồng ý về một bộ quy trình và công cụ chung mà mọi người sẽ tuân theo. Khi đã quyết định, mỗi thành viên trong nhóm sẽ biết phải tuân theo quy trình nào và các công cụ để sử dụng vào bất kỳ thời điểm nào trong quá trình phát triển.

Phản hồi liên tục

Các tổ chức phải nhấn mạnh tầm quan trọng của việc nhận được phản hồi liên tục từ nhóm trong quá trình thực hiện. Các cuộc họp hàng ngày, cuộc họp nhóm, cuộc họp hồi cứu và cuộc họp lập kế hoạch là những ví dụ tuyệt vời về các điểm tiếp xúc để thu thập phản hồi. Dựa trên điều này, các nhóm sẽ sửa đổi cách tiếp cận của họ cho lần lặp tiếp theo. Chu trình liên tục xây dựng-> đo lường-> học hỏi (học tập đã được xác thực) này giúp cải thiện quy trình DevOps.

 

Học tập đã được kiểm chứng

Tăng khả năng hiển thị các nhiệm vụ và quy trình

Để triển khai DevOps thành công, các nhóm phải cộng tác và có tầm nhìn về công việc của nhau. Vào bất kỳ thời điểm nào, các nhóm sẽ có thể nhìn thấy trực quan tiến trình của quá trình phát triển. Các tổ chức có thể sử dụng các công cụ và trang tổng quan làm nổi bật các chỉ số quan trọng như tốc độ của nhóm, các lỗi được ghi lại / khắc phục, số lượng thử nghiệm được thực hiện, phạm vi kiểm tra và các KPI khác quan trọng đối với nhóm. 

Đào tạo đầy đủ

Các kỹ năng của người kiểm tra cần phải thích ứng với quy trình DevOps. Nó bắt đầu bằng cách đào tạo mọi người thực hiện tự động hóa kiểm tra toàn bộ, bao gồm viết các bài kiểm tra tự động như bài kiểm tra đơn vị, bài kiểm tra API, bài kiểm tra giao diện người dùng và bài kiểm tra back-end. Thử nghiệm thủ công vẫn sẽ phù hợp, nhưng trọng tâm sẽ chuyển từ việc chỉ thực hiện các trường hợp thử nghiệm theo cách thủ công sang thực hiện thử nghiệm dựa trên rủi ro và thử nghiệm khám phá nhiều hơn. Điều này được thực hiện song song với các bài kiểm tra tự động.

Chiến lược thử nghiệm và thiết kế thử nghiệm thậm chí còn trở nên quan trọng hơn trong quy trình DevOps. Vì người kiểm tra đang làm việc cùng với các nhà phát triển và nhóm vận hành, nên chiến lược kiểm tra của họ sẽ phải bao gồm các nhiệm vụ liên quan đến QA và các lĩnh vực liên quan đến phát triển và nhóm vận hành. Một cách tiếp cận tốt để đưa ra một chiến lược kiểm tra vững chắc và thiết kế các bài kiểm tra là để các vai trò khác nhau phối hợp làm việc một cách cộng tác. Điều này giúp nhóm có được sự hiểu biết chung về những gì cần được kiểm tra, ai sẽ thực hiện chúng và cách các bài kiểm tra sẽ được thực hiện.

Cuối cùng, để chuyển đổi thành công sang DevOps, các tổ chức nên thực hiện ba quy trình thiết yếu: kiểm tra liên tục, tích hợp và phân phối.