Nên kiểm thử tự động hay kiểm thử thủ công
Bài đăng này đã không được cập nhật trong 6 năm
Gần đây tôi có đang tiếp cận với phương thức kiểm thử tự động, đối với thời đại phát triển như vũ bão này có vẻ automation test đang chiếm ưu thế hơn so với manual test. Tuy nhiên không cái nào có thể thay thế hoàn toàn cái còn lại. Vậy khi làm dự án khi nào dùng phương thức kiểm thử nào? Trong bài viết này tôi sẽ nêu ra các yếu tố cần nên chọn phương thức nào cho phù hợp. Có thể là chưa đầy đủ vì tùy thuộc rất rất nhiều yếu tố ngoại lai khác nữa, tuy nhiên nó là các yếu tố tôi cho là chính để áp dụng các phương thức phù hợp. Vậy nên bạn đọc, hãy cùng tôi tìm hiểu các yếu tố đó là gì nhé
Cho dù bạn muốn kiểm thử tự động hay kiểm thử thủ công cho website hoặc ứng dụng mobile của bạn thì cần phải dựa trên nhiều yếu tố. Để đưa ra quyết định đúng thì cần phải có thông tin chính xác(spec, thời gian, ngân sách, nguồn lực...). Cả 2 cách kiểm thử đều có tầm quan trọng và vị trí của mình trong việc kiểm thử. Trong bài viết này, tôi sẽ liệt kê tất cả các yếu tố sẽ giúp bạn đưa ra quyết định đúng đắn. Chúng ta không thể đánh giá thấp sức mạnh, khả năng tiết kiệm thời gian và độ chính xác của các công cụ tự động hóa và chúng ta cũng không thể phủ nhận sự sáng tạo và suy nghĩ của người kiểm thử thủ công. Vâng, cả 2 đều rất quan trọng và làm thế nào để chúng phát huy hết khả năng trong công việc kiểm thử phần mềm. Câu hỏi được đặt ra là: Làm thế nào để bạn đưa ra quyết định lựa chọn những gì tốt nhất cho dự án của bạn và care được tất cả các yêu cầu kiểm thử và làm thế nào để thực thi nó? Chỉ có 1 hoặc 2 là cách kiểm thử là đủ hay là có cả 2 sẽ làm việc tốt nhất!
Dưới đây là 1 số quan điểm chính giúp bạn đưa ra quyết định
Loại dự án
Nếu dự án của bạn có nhiều giao diện người dùng GUI thì kiểm thử thủ công được ưu tiên hàng đầu. Ví dụ 1 kiểm thử ứng dụng mobile. Để thực hiện kiểm thử load test và stress test ta nên chọn kiểm thử tự động. Ví dụ 2 Nếu bạn nhấp vào biểu tượng hoặc button khoảng 1000 lần hay bộ nhớ đã đầy 90% và sau đó bạn thử mở 1 số ứng dụng khác, trong trường hợp case mở 1 ứng dụng khác việc kiểm thử sẽ thực hiện thủ công. Ví dụ 3 Về kiểm thử ứng dụng web , bạn có giao diện người dùng, cần kiểm thử nhiều Browers và load test. Các dự án như vậy đòi hỏi sự cân bằng tốt cả về thủ công và tự động vì bạn đã lặp lại các trường hợp kiểm thử có giá trị trên các nền tảng khác nhau.
Số lần kiểm thử hồi quy
Việc thực thi được coi là tốt là để chạy các kiểm thử hồi quy khi 1 thay đổi mới hoặc sửa lỗi được giới thiệu trong phần mềm. Rất có thể các bài kiểm thử hồi quy được chạy nhiều lần trong 1 lần release. Nếu dự án của bạn đòi hỏi nhiều lần kiểm thử hồi quy và có 1 danh sách kiểm thử hồi quy lớn thì việc sử dụng automation test là con đường nên đi. Như đã đề cập ở trên, kiểm thử sự tương thích đòi hỏi sự tự động để tiết kiểm thời gian và công sức người kiểm thử. Ngoài ra kiểm thử hồi quy là 1 thư gì đó mà bạn không thay đổi mỗi ngày, đó là những thiết lập quan trọng và cơ bản của các trường hợp kiểm thử được chạy 1 cách thường xuyên.
Kỹ năng của nhóm kiểm thử phần mềm
Cả 2 công việc kiểm thử thủ công và kiểm thử tự động đều yêu cầu kỹ năng chuyên môn của người kiểm thử. Người kiểm thử thủ công được mong đợi có thể suy nghĩ 1 cách cởi mở và yêu cầu của kiểm thử tự động yêu cầu nhiều về hiểu biết và công cụ và công nghệ. Vậy nhóm kiểm thử của bạn cần bao nhiêu kỹ năng là đủ, đối với từng loại kiểm thử thì cần những kỹ năng nào? Nếu team của bạn có nhiều người kiểm thử thủ công thì bạn sẽ thiên về kiểm thử tích hợp và chấp nhận hơn, và nếu team của bạn có nhiều người kiểm thử tự động thì bạn sẽ phải tìm cách để kết hợp các công cụ kiểm thử và kịch bản tốt hơn trong bộ tài liệu kiểm thử của bạn. Có nhiều yếu tố khác quyết định kỹ năng cần thiết như loại dự án, ngân sách dự án có bao nhiêu...
Ngân sách
Đây là 1 trong những yếu tố quan trọng nhất ở đây, các công cụ tự động hóa, người kiểm thử, kịch bản và framwork phục vụ công việc đòi hỏi phải có thêm chi phí có thể là 1 phần của ngân sách dự án tổng thể. Nếu ngân sách dự án không cho phép chi phí bổ sung thì dự án của bạn có thể sẽ chỉ thực hiện được kiểm thử thủ công. Đối với việc kiểm thử dự án đơn giản hoặc 1 dự án với thời gian ít, thì việc kiểm thử thủ công được ưu tiên hơn cả. Ngược lại với dự án có thời gian dài hoặc dự án bảo trì thì nên cần tự động hóa để tiết kiệm thời gian và công sức.
Cần kiểm thử ngẫu nhiên/ thăm dò
Chúng ta không thể phủ nhận thực tế là 1 số lỗi quan trọng có thể được tìm thấy bằng cách chỉ làm một số kiểm thử random hoặc thăm dò. Ví dụ nếu bạn đang kiểm thử 1 ứng dụng di động, có thể có nhiều tình huống ngẫu nhiên có thể phá vỡ chức năng đó và cung cấp cho bạn các lỗi mà không tìm thấy bằng cách kiểm thử hồi quy. Nếu dự án của bạn yêu cầu kiểm thử random hoặc thăm dò nhiều thì phần việc kiểm thử thủ công sẽ vất vả hơn kiểm thử tự động.
Quy mô nhóm
Khi nhóm của bạn có ít người bạn sẽ muốn sử dụng các công cụ tự động hóa để tiết kiệm thời gian và giảm nỗ lực test lặp đi lặp lại. Ngược lại khi nhóm của bạn có nhiều người , bạn có thể khiến họ thực hiện nhiều kịch bản thủ công và ngẫu nhiên hơn, việc phân bổ khối lượng công việc sẽ phù hợp hơn.
Kiểm thử là vốn cổ phần dài hạn
Chúng ta không thể phủ nhận một thực tế là mặc dù việc kiểm thử thủ công đã thu được nhiều lỗi nhưng nó không phải là một công cụ dài hạn như kiểm thử tự động hóa. Chúng ta có thể đồng ý rằng tại một thời điểm chúng ta có một đội ngũ có tay nghề có kiến thức rất tốt về hành vi ứng dụng. Điều gì sẽ xảy ra nếu 1 ngày nào đó những người kiểm thử thủ công lành nghề thoái xuất khỏi tổ chức? Liệu kiểm thử thủ công của chúng ta với người kiểm thử tự động sẽ gặt hái được lợi ích tương tự như việc phát hành miễn phí lỗi? Rõ ràng, câu trả lời không phải là 100 phần trăm. Trong trường hợp xây dựng môi trường tự động hóa kiểm thử sẽ giúp rất nhiều trong việc xây dựng vốn chủ sở hữu dài hạn, có thể đảm bảo kiểm thử hồi quy ít nhất về việc phát hành lặp lại mà những người kiểm thử thủ công có đã tay nghề hoặc người kiểm thử mới vào có thể đã bỏ lỡ trong khi kiểm thử ứng dụng. Vì vậy, kiểm thử tự động hóa có thể được chứng minh là một vốn cổ phần dài hạn hoặc tài sản cho một dự án trong thời gian dài. Nhưng như đã thảo luận, đội ngũ tự động hóa đòi hỏi ngân sách cho việc phát triển kịch bản tự động và bảo trì của họ trong tương lai.
Kết luận:
Việc lựa chọn kiểm thử thủ công hay kiểm thử tự động cho dự án của bạn phụ thuộc vào nhiều yếu tố đã nêu ở trên. Vậy nên dù có dùng loại kiểm thử nào hay dùng cả 2 loại đi chăng nữa, việc yêu cầu kỹ năng chuyên ngành và đạo đức nghề nghiệp luôn được đề cao hàng đầu, bởi vì chất lượng của sản phẩm là cái kết quả cuối cùng để khách hàng và người dùng có thể an tâm đặt niềm tin vào nhóm phát triển và nhóm kiểm thử phần mềm.
Bài viết được dịch từ http://www.softwaretestingclass.com/automated-vs-manual-testing-make-an-informed-decision/
All rights reserved