Agile testing: 3 yếu tố đầu tiên làm nên thành công của Agile testing
Có 7 yếu tố chính làm nên thành công của Agile testing, trong đó 3 yếu tố đầu tiên là
(1) Sử dụng phương pháp tiếp cận toàn nhóm
(2) Làm theo tư duy Agile testing
(3) Tự động hóa kiểm thử hồi quy
Yếu tố 1: Sử dụng phương pháp tiếp cận toàn nhóm
Khi cả nhóm phát triển tham gia vào quá trình kiểm thử, bạn sẽ có một tập hợp các kỹ năng, kinh nghiệm khác nhau cùng tham gia vào bất kỳ vấn đề kiểm thử nào.
– Kiểm thử tự động không phải vấn đề lớn với nhóm lập trình.
– Khi kiểm thử có mức độ ưu tiên cao, thì bất cứ ai cũng có thể nhận công việc kiểm thử, và nhóm sẽ thiết kế ra mã nguồn có thể kiểm thử được.
Để thực hiện điều này, trước nhất hãy để kiểm thử viên trở thành một phần thực sự của nhóm phát triển.
– Giúp họ có thể thích nghi nhanh chóng với phát triển Agile.
– Đưa cho họ thời gian để có được những kỹ năng mới, có thể cộng tác chặt chẽ với các thành viên của hai nhóm phát triển và khách hàng.
Nếu bạn quản lý một nhóm Agile, để giúp nhóm bạn thực hành phương pháp toàn nhóm. Hãy nhớ rằng chất lượng, không phải tốc độ, mà là mục tiêu của phát triển agile.
– Nhóm bạn cần các kiểm thử viên để giúp khách hàng làm rõ các yêu cầu, biến chúng trở thành các kiểm thử điều hướng phát triển, quan điểm duy nhất tạo ra một sản phẩm tốt.
– Hãy chắc rằng các kiểm thử viên có thể chuyển giao các kỹ năng và chuyên môn của họ cho phần còn lại của nhóm.
– Hãy chắc rằng họ không được đóng khung trong một vai trò như thực hiện kiểm thử thủ công.
– Hãy chắc rằng khi họ có nhu cầu cần giúp đỡ, các thành viên trong nhóm sẵn sàng giúp họ.
– Ngược lại, một kiểm thử viên sẽ bước lên bất cứ lúc nào khi có ai đó cần sự giúp đỡ mà họ có thể cung cấp.
Nếu bạn là một tester trong một nhóm Agile, và khi có các cuộc họp lên kế hoạch và các cuộc thảo luận thiết kế xảy ra mà không có bạn, hoặc những người dùng nghiệp vụ đang gặp khó khăn khi định nghĩa các stories và yêu cầu một mình, đó là thời gian để đưa ra và nói với toàn bộ nhóm. Ngồi với các lập trình viên, mời bản thân bạn vào các cuộc họp và đề nghị “Power of Three” với sự tham gia của một tester, một lập trình viên và một chuyên gia nghiệp vụ. Hãy trở nên có ích, đưa ra phản hồi và giúp khách hàng đưa ra các examples. Làm cho vấn đề của bạn là vấn đề của nhóm, và làm vấn đề của họ là vấn đề của bạn. Hỏi các đồng nghiệp của mình để quyết định “phương pháp tiếp cận toàn nhóm”.
Yếu tố 2: Làm theo tư duy của Agile testing
Bạn đang ở trong một nhóm Agile, các lập trình viên kiểm thử ở đâu và các tester làm bất cứ điều gì mà họ nghĩ có thể giúp nhóm cung cấp sản phẩm tốt nhất. Thái độ kiểm thử Agile là chủ động, sáng tạo, cởi mở với các ý tưởng mới, và sẵn sàng chấp nhận bất cứ công việc nào. Các Agile tester luôn mài dũa nghề nghiệp của mình, luôn sẵn sàng hợp tác, tin tưởng vào khả năng bản thân, và đam mê với việc giúp nhóm và công ty thành công.
Chúng tôi không có nghĩa bạn nên đặt mục tiêu vào Super Tester và bảo vệ thế giới khỏi bugs. Không có chỗ cho những cái tôi lớn với các nhóm Agile. Chia sẻ niềm đam mê của bạn về chất lượng với người cùng nhóm. Tập trung vào các mục tiêu của nhóm và thực hiện những gì mà bạn có thể giúp mọi người để họ làm việc tốt nhất có thể.
Sử dụng các nguyên tắc và giá trị Agile để dẫn đường cho bạn. Luôn cố gắng thực hiện các tiếp cận đơn giản nhất để đáp ứng nhu cầu kiểm thử. Hãy cam đảm trong việc tìm kiếm sự giúp đỡ và thử nghiệm với các ý tưởng mới. Tập trung vào việc cung cấp giá trị. Giao tiếp trực tiếp càng thường xuyên càng tốt. Hãy mềm dẻo trong việc đáp ứng thay đổi. Hãy nhớ rằng với phát triển Agile thì người làm trung tâm, và tất cả chúng ta nên tận hưởng công việc. Khi gặp khó khăn, hãy xem lại các giá trị và nguyên tắc để quyết định nên làm cái gì.
Một thành phần quan trọng của tư duy kiểm thử agile là điều hướng liên tục tìm kiếm các cách để làm việc tốt hơn. Một Agile tester thành công liên tục nâng cao kỹ thuật của mình. Đọc các quyển sách, blogs, và các bài báo tốt để tiếp thu các ý tưởng và kỹ năng mới. Tham dự các cuộc họp nhóm với người cùng nội bộ. Tham gia vào các cuộc thảo luận qua mail list để lấy được các phản hồi về các vấn đề hay ý tưởng mới. Nếu công ty của bạn không trả cho bạn để tham dự một hội nghị tốt, hãy đưa những gì mà bạn học được vào một báo cáo để trao đổi trong một hội thảo được tổ chức miễn phí. Đưa nó đến các cộng đồng kiểm thử và phát triển agile của bạn, cũng giúp bạn phát triển bản thân.
Thử nghiệm với các phương thức thực hành, công cụ, và kỹ thuật mới. Khuyến khích nhóm bạn cố gắng thực hiện các phương pháp tiếp cận mới. Các vòng lặp ngắn là lý tưởng để thực hiện thử nghiệm. Bạn có thể thất bại, nhưng sẽ nhanh thôi, bạn có thể cố gắng lại lần nữa với kết quả tốt hơn.
Nếu bạn quản lý các Agile tester trong nhóm Agile, đưa cho họ thời gian để nghiên cứu và đưa ra hỗ trợ đào tạo mà họ cần. Loại bỏ các trở ngại để giúp họ có thể làm việc tốt nhất.
Khi bạn đối mặt với các vấn đề mà ảnh hưởng đến kiểm thử, mang các vấn đề đó ra với nhóm. Hỏi nhóm để suy nghĩ các cách vượt qua các trở ngại ngày. Retrospectives là một nơi để nói về các vấn đề và làm thế nào để giải quyết chúng. Giữ một danh sách các trở ngại và giải quyết một hoặc hai trong mỗi vòng lặp. Sử dụng các biểu đồ lớn, hoặc các biểu đồ điện tử tương đương, để đảm bảo mọi người đều nhận thức được các vấn đề phát sinh và mọi người có thể theo dõi tiến độ của việc viết mã và kiểm thử.
Yếu tố 3: Tự động hóa kiểm thử hồi quy
Một nhóm Agile có thể thành công không khi không có kiểm thử tự động? Có thể, nhưng các nhóm thành công mà chúng tôi biết đều dựa vào các kiểm thử hồi quy tự động. Nếu bạn sử dụng toàn bộ thời gian của bạn vào kiểm thử hồi quy thủ công, bạn sẽ không bao giờ có thời gian để kiểm thử thăm dò quan trọng, mà nó sẽ đưa ra các hành vi nguy hiểm đang tiềm ẩn trong mã nguồn.
Phát triển Agile sử dụng các kiểm thử để điều hướng phát triển. Để viết mã làm cho một kiểm thử pass, bạn cần một cách nhanh chóng và dễ dàng để chạy kiểm thử. Nếu không có chu kỳ phản hồi ngắn và mạng lưới an toàn mà các bộ hồi quy mang lại, nhóm của bạn sẽ sớm trở nên ngập ngụa trong các nợ kỹ thuật, với hàng dài defect và tốc độ ngày càng chậm.
Các kiểm thử hồi quy tự động là khả năng của nhóm. Toàn bộ nhóm nên chọn các công cụ thích hợp cho mỗi loại kiểm thử. Nghĩ về các kiểm thử trước đó sẽ cho phép các lập trình viên thiết kế mã dễ dàng cho kiểm thử tự động. Sử dụng các góc phần tư của kiểm thử Agile (Agile testing quadrants) và kim tự tháp kiểm thử tự động (test automation pyramid) để giúp bạn tự động các kiểu kiểm thử khác nhau sao cho hiệu quả.
Hãy nhớ bắt đầu từ đơn giản. Bạn sẽ ngạc nhiên về giá trị mà các kiểm thử smoke tự động hay các kiểm thử đơn vị tự động mang lại.
Tự động kiểm thử là năng lực của nó. Nó cũng khó, ít nhất là lần đầu tiên. Thường có một “hump of pain” lớn cần vượt qua. Nếu bạn quản lý một nhóm phát triển hay nhóm kiểm thử, hãy chắc rằng bạn đã cung cấp đủ sự hỗ trợ về mặt thời gian, đào tạo và động lực. Nếu bạn là một tester trong nhóm không có tự động hóa và các lập trình viên quá điên cuồng để cố gắng viết mã nguồn phải dừng lại và nghĩ về kiểm thử, bạn có một thách thức lớn phải đối mặt. Thử nghiệm các cách khác nhau để nhận sự hỗ trợ từ quản lý và từ các thành viên nhóm để bắt đầu với một chút cố gắng tự động hóa.
(Còn tiếp)
Bài viết được dịch và biên soạn từ cuốn “Agile Testing A Practical Guide for Testers and Agile Teams” của Addison Wesley (năm 2009)