Vai trò của SQA và SQA leader trong Agile

Trong quá trình làm việc với Agile chắc hẳn cũng có nhiều người thắc mắc về SQA trong mô hình Agile, và hơn thế là SQA leader trong mô hình Agile. Qua tìm hiểu thông tin và hỏi ý kiến của nhiều trainer về Agile, tôi cũng đã tổng hợp được một số ý kiến về vai trò của SQA – hay còn gọi là Tester trong mô hình Agile để đưa đến cho mọi người cùng tham khảo.

Trên thực tế, SQA hay bất kỳ role nào trong mô hình Agile thì đều sẽ được gọi là Team member trong Agile team (Scrum team). Hơn nữa, trong Scrum có định nghĩa, Scrum team là cross-functional, vậy thì trên quan điểm của một team lý tưởng, Scrum team đòi hỏi phải có thâm niên. Tức là mỗi thành viên đều cần có nhiều năm kinh nghiệm để có thể đảm nhiệm tất tật mọi việc: BA, Dev, Test, CM, Database Configuration... Trong team kiểu này, hầu như vai trò testing để lại cho Product Owner và Stakeholder thực hiện.

Thông thường đối với các dự án offshore, khi sắp xếp nguồn lực của dự án, Manager thường đưa các thành viên trong nhóm đều có đầy đủ các kỹ năng cần thiết vào để làm. Nhưng có một điều cần thiết khi charge với khách hàng là yêu cầu khách hàng có add thêm SQA/SQA leader vào để làm Functional Test, Integration Test, System Test và Smoke Test khi lên production. Việc cho SQA leader tương tự cũng khá nhiều: test case design, clarify requirements, test execution, bug management…

Vai trò của SQA Lead sẽ bao gồm các công việc của SQA nhưng tham gia nhiều hơn về mặt quản lý như: làm Test Plan design, review Test Case, Exploratory Testing, thực hiện Test Report hằng ngày cho khách hàng... Như vậy, công việc của SQA, SQA Lead trong các dự án Scrum thường có một số điểm khác biệt (được recommand trong quá trình customize process của Scrum cho phù hợp):

  • QA/ QA Leader làm việc trực tiếp với Product Owner tối thiểu 1 lần/ sprint.
  • Với các projects ở Offshore thì nên để QA đóng vai trò đánh giá xem sprint đó có đạt yêu cầu hay không (thực hiện Final Inspection).

Sau đây là một ví dụ minh họa về daily activities cho SQA Lead và SQA từ ngày 1 đến ngày 10 (trong 1 sprint):

QA_in_Sprint.png

Dù là customize thế nào đi nữa, thì khi có kiểm thử độc lập trong dự án, tư tưởng Agile vẫn phải được đảm bảo tính đúng đắn the tư tưởng Agile, và sẽ có những ưu điểm trong việc này như:

  • Tập trung vào người dùng hơn là về mặt kỹ thuật.
  • Tập trung khai thác defects hơn là xác nhận về mức độ hoàn thành.
  • Giúp đỡ developer thực hiện Unit testing, giúp developer có cái nhìn về testing view hơn là development view.
  • Test User story khi hoàn hiện, là last gate để xác nhận testing completeness.
  • Hợp tác với Khách hàng và Product Owner để định nghĩa Acceptance criteria.
  • Thực hiện Automation Testing, giúp giảm effort cho Regression Test.
  • Thực hiện Non-functional Testing: Usability Testing, Security Testing và Performance Testing.

Để có một cái nhìn toàn diện hơn về vai trò của testing trong Agile, chúng ta có thể tham khảo thêm sự so sánh giữa vai trò của testing trong Agile và vai trò testing truyền thống như bên dưới:

QA_compare_Agile_Traditional.png

Với những thông tin được chia sẻ, hy vọng phần nào đó có thể giúp được mọi người có cái hình dung cơ bản nhất về QA và QA Leader trong dự án phát triển theo mô hình Agile. Trên thực tế, cũng có rất nhiều bài viết để chúng ta có thể tham khảo thêm và hiểu sâu hơn nữa về action của QA trong dự án. Bài viết này chỉ là một trong những ý kiến tổng hợp từ kinh nghiệm thực tế, rất mong sẽ giúp ích cho tất cả những ai còn có sự mơ hồ về công việc của QA trong dự án Agile.

Bài viết có tham khảo nguồn từ tạp chí Geek & Tech