12 nhiệm vụ của một kỹ sư kiểm thử Agile chuyên nghiệp - P1
Mới hôm qua thôi bạn còn là một tester trong team QA, kiểm thử các tính năng mà lập trình viên vừa deliver trong phiên bản cuối cùng. Nhưng đột nhiên, bạn vừa mới ra khỏi một cuộc họp mà Sếp tuyên bố rằng, từ giờ trở đi, cả công ty sẽ áp dụng phương thức phát triền phần mềm Agile. Ngay hôm nay, bạn ...
Mới hôm qua thôi bạn còn là một tester trong team QA, kiểm thử các tính năng mà lập trình viên vừa deliver trong phiên bản cuối cùng. Nhưng đột nhiên, bạn vừa mới ra khỏi một cuộc họp mà Sếp tuyên bố rằng, từ giờ trở đi, cả công ty sẽ áp dụng phương thức phát triền phần mềm Agile. Ngay hôm nay, bạn đã là một thành viên của Agile team, và bạn chuẩn bị được trải qua những thay đổi trong cách làm việc của mình. Dưới đây là một vài nhiệm vụ chính mà bạn được trông đợi sẽ thực hiện trong vai trò kiểm thử trong một team agile:
1. Định nghĩa "Hoàn thành"
Mới hôm qua, bạn còn phải đợi BA hoàn thành quá trình viết requirements trước khi bắt đầu xây dựng test plan chi tiết và đảm bảo rằng bạn có thể bao quát được hết các ngóc ngách của requirements. Hôm nay, chuyện đã khác. Không còn chờ đợi BA hoàn thiện công việc và bàn giao cho bạn nữa, bạn là một phần của quá trình định nghĩa các user stories, thêm chúng vào backlog, và giúp team định nghĩa các tiêu chuẩn cần được đáp ứng để mỗi story có thể được coi là "Hoàn thành". Bạn là một thành viên của team mà tương tác thường xuyên với Product owner àn đảm bảo rằng tất cả mọi người đều hiểu những bài kiểm thử tính năng và phi tính năng cần phải được pass.
2. Tầm nhìn và ước đoán
Là một agile tester, bạn sẽ giúp ước đoán tầm nhìn và kích thước của việc kiểm thử cho mỗi user story. Công sức kiểm thử được ước đoán là mọt phần trong việc ước đoán tổng thể kích thước của mỗi user story, chính là để xác định rằng nó không thể được coi là "Hoàn thành" cho đến khi nó pass tất cả các tests. Sau mỗi sprint, team của bạn sẽ review và cập nhật các ước tính từ sprint trước đó và lên kế hoạch lại cho những sprint sắp tới dựa trwn những ước tính đó, việc mà chắc chắn sẽ trơn tru lên theo thời gian.
3. Đánh giá khả năng kiểm thử
Bạn sẽ được tham gia vào việc thiết kế phần mềm bằng cách liên kết với các lập trình viên để xác định và tư vấn về khía cạnh khả năng kiểm thử. Bạn cũng sẽ phải để tâm tới những lo ngại ví dụ như liệu có thể test tự động được không, có thể test độc lập từng phần được không, bao nhiêu thông tin sẽ được ghi vào file log.
4. Thiết kế và thực hiện test cases
Trong một dự án agile, mỗi người trong team đều đóng một vai trò trong việc kiểm thử. Mõi thành viên có thể có chuyên môn riêng, nhưng mỗi người đều chịu trách nhiệm deliver các user stories của team vào cuối mỗi sprint. Team sẽ phải viết các bài kiểm thử chức năng, hiệu năng và tự động, cũng như tạo ra các scripts để tự động deploy code mới nhất lên môi trường test và thực hiện tests. Là một tester trong team, bạn sẽ giúp họ thiết kế và thực hiện cả việc kiểm thử tự động và thủ công, bao gồm cả kiểm thử khám phá. Bởi vì việc kiểm thử gắn liền và hoà quyện trong quá trình phát triển, bạn sẽ trở nên liên quan đến việc kiểm thử từng phần và ở mức API, cũng như là ở mức tính năng và liên kết. Bạn cũng sẽ kiểm thử những yêu cầu phi chức năng ví dụ như: tính an ninh, tính tin cậy, khả năng bảo trì, khả năng mở rộng, tính dễ sử dụng và hơn nữa.
5. Tự động hoá
Trong một môi trường phát triển kiểu agile, có rất nhiều những bước tiến chức năng nhỏ được thêm vào cuối mỗi sprint, có nghĩa là phần mềm vẫn luôn tiếp tục thay đổi. tần suất của những thay đổi này làm cho tốc độ của việc kiểm thử hồi quy trở nên cực kì quan trọng, bởi vì code nên được kiểm thử mỗi khi có thay đổi được thêm vào. Điều này có nghĩa là bạn cần phải tự động hoá các bài test nhiều nhất có thể - đơn giản bởi vì test thủ công mất quá nhiều thời gian. Hãy tìm kiếm các cơ hội để tự động hoá việc test và sử dụng các scripts và phát triển các framework test tự động cho team của bạn suốt quá trình dự án release.
6. Hợp tác
Bạn sẽ phải làm việc gần gũi hơn với các lập trình viên hơn bao giờ hết. Nếu bạn tìm được một lỗi, hãy nói với lập trình viên, và để họ sử dụng môi trường của bạn để rà soát, nhờ thế có thể phát hiện và sửa lỗi sớm nhất có thể. Đừng ép họ phải thiết lập môi trường của riêng họ. Bạn đang làm việc cùng nhau trên cùng một đoạn code và cùng một user story, với cùng một mục đích là cung cấp một phần mềm hoạt động tốt ở cuối sprint. Bạn cũng sẽ thỉnh thoảng phải giúp đỡ các thành viên cần tới sự hỗ trợ để hoàn thiện một user story mà chưa tiến bộ được như trong kế hoạch. Hãy nhớ trong đầu rằng sự hợp tác trong các tổ chức lớn hơn khác hẳn với ý tưởng các team ngồi cùng nhau trong agile nguyên thuỷ. Ngoài sự tương tác không thể tránh khỏi với các tập đoàn quan liêu và nhu cầu làm việc với các team không pahir agile, các thành viên team agile trong các tổ chức lớn thường làm việc với các đồng nghiệp ở nước ngoài. Việc này nảy sinh ra những thách thức mới như sự khác biệt múi giờ, ngôn ngữ và văn hoá. Khi bạn ngồi cùng nhau, tất cả các thông tin có giá trị (và cả tin đồn) được trao đổi trôi chảy. Hãy giữ những đồng nghiệp ở nước ngoài được giao tiếp và trao đổi thường xuyên như thế.
(còn tiếp)