Kiểm thử phần mềm: Các công cụ hỗ trợ cho việc kiểm thử. (Phần 2)
Tiếp tục series tóm tắt từ cuốn sách: FOUNDATIONS OF SOFTWARE TESTING ISTQB CERTIFICATION của tác giả Dorothy Graham, Erik van Veenendaal, Isabel Evans và Rex Black và một số kinh nghiệm của cá nhân trong quá trình làm việc nhằm cung cấp cho các bạn một cái nhìn tổng quan về kiểm thử phần mềm và các kiến thức cơ bản về kiểm thử, các kỹ thuật dùng trong kiểm thử và các công cụ hỗ trợ.
Tiếp nối bài viết trước Kiểm thử phần mềm: Các công cụ hỗ trợ cho việc kiểm thử. (Phần 1) bài viết lần này mình sẽ giới thiệu với các bạn **Những lợi ích và rủi ro tiềm ẩn khi sử dụng các công cụ để hỗ trợ kiểm thử và một số lưu ý đối với các công cụ **.
1. Các lợi ích khi sử dụng các công cụ hỗ trợ kiểm thử.
Có nhiều lợi ích có thể thu được bằng cách sử dụng các công cụ hỗ trợ kiểm thử, bất kể loại công cụ nào, bao gồm:
- Giảm các công việc lặp đi lặp lại.
Mọi người có xu hướng măc lỗi khi thực hiện các công việc lặp đi lặp lại nhiều lần, ví dụ như kiểm thử hồi quy, nhập các dữ liệu kiểm thử, kiểm tra các tiêu chuẩn mã hóa hoặc tạo một cơ sở dữ liệu kiểm thử cụ thể. Do vậy, một công cụ hỗ trợ kiểm thử sẽ thực hiện chính xác những gì đã làm trước đó mà không xảy ra sai sót gì.
- Có tính nhất quán và tính lặp lại cao hơn.
Khi thực hiện thủ công thì con người có xu hướng làm cùng một công việc nhưng không thực hiện đúng các bước như lần kiểm tra trước đó. Một công cụ sẽ tái tạo chính xác những bước đã làm trước đó, do vậy sau mỗi lần chạy thì kết quả sẽ được nhất quán.
- Đánh giá khách quan.
Nếu một người đánh giá giá trị của phần mềm, hệ thống hoặc là báo cáo sự cố, họ có thể vô tình bỏ sót vấn đề hoặc có những ý kiến chủ quan dẫn đến việc giải thích dữ liệu không chính xác. Sử dụng công cụ có nghĩa là xu hướng chủ quan sẽ bị loại bỏ và việc đánh giá tính nhất quán và lặp lại sẽ tốt hơn.
- Dễ dàng để truy cập thông tin về các kiểm tra hoặc kiểm thử.
Khi sử dụng các công cụ hỗ trợ thì thông tin được trình bày trực quan, dễ hiểu hơn. Ví dụ: trình bày bằng các biểu đồ hoặc sơ đồ sẽ dễ hiểu hơn là một danh sách dài các con số. Các công cụ có mục đích đặc biệt cung cấp trực tiếp các tính năng này cho thông tin mà chúng xử lý. Ví dụ bao gồm thống kê và đồ thị về tiến độ thử nghiệm (công cụ kiểm tra hoặc công cụ kiểm tra), tỷ lệ sự cố ( công cụ quản lý sự cố hoặc công cụ quản lý kiểm tra) và hiệu suất (công cụ kiểm tra hiệu suất ).
2. Những rủi ro tiềm ẩn khi sử dụng các công cụ.
Mặc dù có những lợi ích đáng kể có thể đạt được khi sử dụng các công cụ để hỗ trợ các hoạt động kiểm thử nhưng có nhiều tổ chức chưa đạt được những lợi ích mà họ mong đợi. Mỗi loại công cụ đòi hỏi sự nỗ lực và thời gian để đạt được những lợi ích tiềm năng.
Có nhiều rủi ro khi các công cụ hỗ trợ kiểm thử được giới thiệu và sử dụng, các rủi ro bao gồm:
- Kỳ vọng không thực tế cho mỗi công cụ.
- Đánh giá thấp thời gian, chi phí, động lực cho việc giới thiệu ban đầu của công cụ.
- Đánh giá thấp thời gian và động lực cần thiết để đạt được những lợi ích có ý nghĩa và những lợi ích kéo dài của công cụ.
- Đánh giá thấp động lực cần thiết để duy trì các giá trị kiểm thử được tạo ra bởi công cụ.
- Quá phụ thuộc vào công cụ.
Những kỳ vọng không thực tế có thể là một trong những rủi ro lớn nhất cho sự thành công của các công cụ. Điều quan trọng là phải có mục tiêu rõ ràng, các công cụ có thể làm được những gì và những mục tiêu đấy phải thực tế. Chắc chắn 1 công cụ có thể trợ giúp nhưng không thể thay thế sự thông minh của con người biết cách sử dụng nó tốt nhất và đánh giá được khả năng sử dụng của nó trong hiện tại và tương lai.
Danh sách rủi ro chưa được nghiên cứu, có 2 yếu tố quan trọng khác là:
- Các kỹ năng cần thiết để tạo nên các kiểm tra tốt.
- Các kỹ năng cần thiết để sử dụng tốt công cụ, tùy thuộc vào loại công cụ.
Các kỹ năng của một tester không giống với các kỹ năng của người sử dụng công cụ. Tester tập trung vào những những vấn đề cần kiểm thử, những testcase cần test và những kiểm thử được ưu tiên như thế nào. Còn người sử dụng công cụ thì tập trung vào cách làm thế nào để công cụ làm việc một cách hiệu quả và làm thế nào để làm tăng lợi nhuận từ việc sử dụng công cụ.
3. Một số lưu ý đối với một vài công cụ
3.1. Công cụ thực thi test.
Các công cụ thực thi test sẽ cho chúng ta biết phải thực hiện test những gì và chạy chúng như thế nào, nhờ vào các kịch bản, vì vậy cần lưu ý các mức kịch bản khác nhau:
- Kịch bản tuyến tính(linear scripts)( có thể tạo bằng tay hoặc bắt được bằng cách ghi lại các thao tác test thủ công).
- Các kịch bản có cấu trúc (sử dụng các cấu trúc lập trình lặp và lựa chọn).
- Các kịch bản chia sẻ ( nơi một kịch bản có thể được gọi bởi các kịch bản khác vì vậy có thể tái sử dụng - các kịch bản chia sẻ cũng yêu cầu một thư viện kịch bản chính thức dưới quản lý cấu hình).
- Các kịch bản data-driven ( nơi dữ liệu test nằm trong các tệp hoặc bảng tính được đọc bởi một kịch bản điều khiển).
- Các kịch bản keyword-driven(nơi mà tất cả các thông tin về các kiểm tra được lưu trữ.
- Kịch bản mà không biết kết quả mong đợi là gì cho đến khi được lập trình-nó chỉ chứa các đầu vào được ghi lại, chứ không phải các testcase.
- Một sự thay đổi nhỏ cho phần mềm có thể làm hàng trăm, hàng chục kịch bản bị vô hiệu.
- Những kịch bản được ghi lại chỉ có thể đối phó với chính xác những điều kiện giống khi nó được ghi lại. Những sự kiện không mong đợi sẽ không được công cụ diễn tả chính xác.
3.2. Công cụ kiểm thử hiệu suất.
Đối với công cụ kiểm thử hiệu suất cần lưu ý những vấn đề sau:
- Dự kiến về tải trọng của công cụ (vd: các đầu vào ngẫu nhiên hoặc theo hồ sơ người dùng).
- Các khía cạnh về thời gian (vd: chèn độ trễ để tạo các đầu vào của người dùng được mô phỏng thực tế hơn).
- Độ dài của kiểm thử và nên làm gì nếu kiểm thử kết thúc sớm.
- Thu hẹp vị trí nút thắt ( bottleneck)
- Xác định chính xác những khía cạnh nào cần đo lường (vd: cấp độ tương tác của người dùng hoặc cấp độ server)
- Trình bày những thông tin thu thập được như thế nào.
3.3. Công cụ phân tích tĩnh.
Những vấn đề cần lưu ý khi sử dụng các công cụ phân tích tĩnh.
- Khi sử dụng các công cụ phân tích mới thì sẽ xảy ra một số vấn đề, Ví dụ: công cụ kiểm tra tiêu chuẩn mã hóa hiện tại đối với code đã được viết cách đây vài năm, có thể sẽ tìm thấy những thứ trong code cũ không đáp ứng được tiêu chuẩn mã hóa mới.
- Khi thay đổi để đáp ứng với tiêu chuẩn mã hóa mới có thể xảy ra những tác động phụ không mong đợi.
- Các công cụ phân tích tĩnh có thể tạo ra một số lượng lớn các thông điệp và bộ lọc trên đầu ra của công cụ phân tích tĩnh có thể loại bỏ một số thông điệp ít quan trọng và làm cho các thông điệp quan trọng được chú ý và cố định hơn.
3.4. Công cụ quản lý test.
Những vấn đề cần lưu ý khi sử dụng các công cụ quản lý test.
- Công cụ quản lý test có thể cung cấp nhiều thông tin hữu ích nhưng thông tin được cung cấp không ở dạng có hiệu quả nhất trong ngữ cảnh của người sử dụng.
- Sử dụng bảng tính hoặc một số công việc bổ sung tạo giao diện cho các công cụ để đảm bảo thông tin được truyền đạt hiệu quả.
- Báo cáo được tạo ra bởi công cụ quản lý test chỉ có hữu ích trong thời điểm hiện tại nhưng trong tương lai thì có thể không có ích.
- Cần phải có một quy trình kiểm tra xác định trước khi sử dụng các công cụ quản lý kiểm thử.
- Nếu quá trình kiểm thử đang hoạt động tốt theo cách thủ công thì công cụ quản lý test có thể hỗ trợ quy trình và làm cho nó hoạt động hiệu quả hơn.
- Nếu áp dụng công cụ quản lý test khi quá trình kiểm thử chưa hoàn thành thì phải tuân theo các tiêu chuẩn và quy trình được giả định theo cách công cụ hoạt động.
Trên đây là một số lợi ích, rủi ro và một số chú ý khi sử dụng công cụ hỗ trợ kiểm thử. Các bạn có thể tham khảo và có thể lựa chọn được công cụ hỗ trợ thích hợp để tăng lợi ích, giảm thiểu rủi ro đối với sản phẩm của mình.