Những thách thức khi kiểm thử thủ công và kiểm thử tự động

Bài viết trên được dịch từ link: http://www.softwaretestinghelp.com/manual-and-automation-testing-challenges/

Kiểm thử phần mềm là một công việc ẩn chứa nhiều thách thức, kể cả khi thực hiện thủ công hay tự động. Thông thường, khi kiểm thử bằng phương pháp thủ công, các developer mặc định cho rằng đội ngũ kiểm thử sẽ chọn một build và hỏi xem build đó là về cái gì? Đây chính là trường hợp khi các tổ chức không tuân theo trình tự sẵn có. Tester là người trung gian đứng giữa developer và khách hàng, phải chịu áp lực từ cả hai phía. Và tôi nghĩ là hầu hết các độc giả ở đây đều có đủ bản lĩnh để tiếp nhận những áp lực đó, phải không? Tuy nhiên, điều này cũng không hoàn toàn luôn đúng. Đôi khi tester có thể thêm những chu trình phức tạp vào quá trình kiểm thử do thiếu kỹ năng hay kinh nghiệm làm việc. Trong bài viết này, tôi sẽ chỉ ra những thách thức trong quá trình kiểm thử do đội ngũ tester, đội ngũ phát triển, quá trình kiểm thử và những quyết định sai lầm về mặt quản lý gây nên. Hãy bắt đầu với những thách thức thường gặp nhất nhé:

1. Kiểm thử một ứng dụng hoàn chỉnh Liệu có khả thi hay không? Tôi nghĩ là không, vì sẽ có cả ngàn sự kết hợp cần kiểm thử. Dù có kiểm thử bằng phương pháp thủ công hay tự động thì cũng không thể kiểm tra hết từng sự kết hợp như vậy. Nếu cứ kiểm tra kiểu đó thì bạn sẽ chẳng bao giờ giao hàng được đâu. 😉 2. Hiểu lầm các quy trình của công ty Đôi khi bạn không chú ý đến các quy trình mà công ty lập ra cùng mục đích của chúng. Trong giới kiểm thử có một huyền thoại, đó là tester chỉ nên áp dụng quy trình của công ty mình dù quy trình đó không phù hợp với kịch bản hiện tại. Điều này sẽ dẫn tới việc quá trình kiểm thử ứng dụng không hoàn chỉnh và không phù hợp. 3. Mối quan hệ với các developer Thách thức lớn đây. Việc này đòi hỏi tester phải có cái nhìn lạc quan về mối quan hệ này, dù có phải kết thúc công việc theo cách của tester. Dù là developer hay tester thì cũng có cả trăm lý do để đưa ra khi bất đồng ý kiến. Cho nên, để giải quyết vấn đề này, tester cũng cần phải có kỹ năng giao tiếp, khắc phục sự cố và phân tích tốt. 4. Kiểm thử hồi quy Khi mở rộng một dự án, công việc kiểm thử hồi quy cũng theo đó mà trở nên mất kiểm soát. Sẽ có áp lực trong công việc xử lý những thay đổi về chức năng hiện hành, kiểm tra các chức năng trước đó và tìm ra bug. 5. Thiếu tester có kỹ năng Tôi sẽ gọi mục này là “quyết định quản lý sai lầm” khi chọn hoặc huấn luyện tester cho một dự án. Những nhân viên thiếu kỹ năng này sẽ chỉ mang thêm phiền toái thay vì đơn giản hóa quá trình kiểm thử. Điều này sẽ dẫn đến kết quả là một quá trình kiểm thử không hoàn chỉnh, kém hiệu suất và kiểm thử ad-hoc trong vòng tròn kiểm thử. 6. Công việc kiểm thử luôn chịu áp lực về thời gian Này các tester, chúng tôi muốn giao hàng trước cuối tuần, bên đó sắp làm xong chưa? Khi cấp trên ra chỉ thị này, tester sẽ chỉ tập trung vào việc hoàn thành các task mà không để ý đến phạm vi kiểm thử và chất lượng công việc. Có cả một danh sách dài các task cần hoàn thành trong một khoảng thời gian nhất định, trong đó bao gồm việc viết, thực hiện, tự động hóa và đánh giá các trường hợp thử nghiệm. 7. Nên thực hiện test nào trước Nếu bạn đang phải đối mặt với thử thách số 6, bạn sẽ quyết định thực hiện trường hợp thử nghiệm nào trước và tại sao? Test nào quan trọng hơn các test còn lại? Để làm được thì bạn cũng cần có kinh nghiệm làm việc dưới áp lực khá dày dặn đấy. 8. Hiểu những yêu cầu đưa ra Đôi khi tester sẽ chịu trách nhiệm trao đổi với khách hàng để làm rõ những yêu cầu mà họ đưa ra. Vậy nếu tester không hiểu được những yêu cầu đó thì sao? Người đó có thể kiểm thử ứng dụng không? Chắc chắn là không rồi! Tester cần có khả năng nghe hiểu thật tốt. 9. Kiểm thử tự động Rất nhiều thách thức bên lề đây – Chúng ta có nên tự động hóa quá trình kiểm thử? Nếu có thì nên tự động hóa đến mức nào? Bạn có đủ kỹ năng và các nguồn tài nguyên cho việc tự động hóa không? Thời gian có cho phép bạn tự động hóa các trường hợp thử nghiệm không? Quyết định kiểm thử thủ công hay tự động hóa sẽ dựa vào những ưu thế và bất lợi của từng quá trình. 10. Quyết định dừng việc kiểm thử Khi nào thì dừng kiểm thử được? Một quyết định khá là khó khăn đây. Để quyết định việc này, bạn cần có những đánh giá cốt lõi về quá trình kiểm thử cùng sự quan trọng của mỗi quy trình, và cả khả năng đưa ra những quyết định “bất chợt” nữa. 11. Một đội tester phải chịu trách nhiệm nhiều dự án Thử thách thực sự là theo sát được từng task. Giao tiếp cũng là một thách thức nữa. Nếu không làm tốt, rất có thể cả hai dự án đều sẽ thất bại. 12. Tái sử dụng các tập lệnh kiểm tra Các phương pháp kiểm thử sự phát triển ứng dụng luôn thay đổi, nên việc quản lý các công cụ kiểm tra và kịch bản thử nghiệm cũng trở nên rất khó khăn. Di chuyển hoặc tái sử dụng kịch bản thử nghiệm là một nhiệm vụ rất cần thiết nhưng cũng rất khó khăn. 13. Các tester chỉ tập trung tìm những bug dễ Nếu công ty thưởng cho tester dựa trên số lượng bug (một cách tiếp cận đánh giá trình độ tester rất kém) thì rất nhiều tester sẽ chỉ tập trung vào tìm các bug dễ không cần tìm hiểu và kiểm thử sâu. Như vậy, những bug khó tìm hay khó giải quyết sẽ không được phát hiện. 14. Đối phó với sự thâm hụt Những khoản tiền lương cao hơn và phúc lợi lớn dễ làm nhân viên rời khỏi công ty sau một thời gian làm việc ngắn. Công việc quản lý đang gặp trở ngại lớn với việc thích nghi với tỷ lệ thâm hụt cao. Thử thách – những tester mới cần được huấn luyện về dự án từ đầu, như vậy những dự án phức tạp sẽ trở nên khó hiểu và dễ bị hoãn ngày giao hàng! Trên đây là những thách thức hàng đầu khi kiểm thử phần mềm mà chúng ta phải đối mặt hàng ngày. Dự án thành công hay thất bại phần lớn dựa vào việc bạn giải quyết những vấn đề cơ bản này như thế nào. Để tham khảo thêm và có những giải pháp chi tiết cho những thách thức này, hãy đọc cuốn "Surviving the Top Ten Challenges of Testing Software" của William E. Perry và Randall W. Rice. Kết Rất nhiều độc giả ở đây đang làm việc trong lĩnh vực kiểm thử thủ công và/hoặc tự động. Mặc dù tôi đã từng chỉ ra rất nhiều những thách thức ở trên trong những bài viết trước đây, tôi vẫn muốn nghe ý kiến của các bạn về cách giải quyết những vấn đề khi kiểm thử phần mềm này. Đừng ngại ngần bày tỏ ý kiến trong phần bình luận bên dưới nhé.