Công cụ hỗ trợ thực hiện và giám sát
Các công cụ được mô tả trong phần này hỗ trợ việc kiểm thử mà có thể thực hiện được trên hệ thống khi hệ thống đang hoạt động (tức là trong khi hệ thống đang chạy). Điều này có thể xảy ra trong quá trình kiểm thử hoặc có thể xảy ra sau khi hệ thống được đưa vào hoạt động trực tiếp.
Công cụ phân tích động (D)
Các công cụ phân tích động (Dynamic analysis tools) là “động” vì chúng yêu cầu mã phải chạy. Chúng là các công cụ “phân tích” chứ không phải là công cụ “kiểm thử” vì chúng phân tích những gì đang xảy ra “đằng sau hậu trường” trong khi phần mềm đang chạy (dù là đang được thực thi với các trường hợp kiểm thử hay đang được sử dụng trong vận hành).
Một ví dụ tương tự với một chiếc xe hơi có thể giúp dễ hình dung. Nếu bạn đi xem xe để mua, bạn có thể ngồi trong xe để xem có thoải mái không và xem tiếng cửa phát ra (đây sẽ là phân tích tĩnh vì xe không được lái). Nếu bạn lái thử, thì bạn sẽ kiểm tra xem chiếc xe có hoạt động như bạn mong đợi không (ví dụ: rẽ phải khi bạn xoay vô lăng theo chiều kim đồng hồ), đây sẽ là một bài kiểm thử. Trong khi xe đang chạy, nếu bạn kiểm tra áp suất dầu hoặc dầu phanh, đây sẽ là phân tích động lực học (nó chỉ có thể được thực hiện khi động cơ đang chạy, nhưng đó không phải là trường hợp kiểm thử).
Khi thời gian phản hồi của PC ngày càng chậm hơn theo thời gian, nhưng được cải thiện nhiều sau khi bạn khởi động lại, điều này có thể là do “rò rỉ bộ nhớ” (memory leak), trong đó các chương trình không giải phóng chính xác các khối bộ nhớ trở lại hệ điều hành . Cuối cùng, hệ thống sẽ hết bộ nhớ hoàn toàn và dừng lại. Khởi động lại sẽ khôi phục tất cả bộ nhớ đã bị mất, vì vậy hiệu suất của hệ thống hiện được khôi phục về trạng thái bình thường.
Các tính năng hoặc đặc điểm của công cụ phân tích động bao gồm hỗ trợ cho:
- Phát hiện rò rỉ bộ nhớ
- Xác định lỗi số học con trỏ (chẳng hạn như con trỏ null)
- Xác định thời gian phụ thuộc.
Các công cụ này thường được các nhà phát triển sử dụng trong kiểm thử thành phần và kiểm thử tích hợp thành phần, ví dụ: khi kiểm thử phần mềm trung gian, khi kiểm thử bảo mật hoặc khi tìm kiếm các lỗi về độ bền.
Một hình thức phân tích động khác dành cho các trang web là kiểm tra xem mỗi liên kết có thực sự liên kết với một thứ khác hay không (loại công cụ này có thể được gọi là “mạng nhện”). Công cụ này không biết liệu bạn có liên kết đến đúng trang hay không, nhưng ít nhất nó có thể tìm thấy các liên kết chết, điều này có thể hữu ích.
Các công cụ kiểm thử hiệu năng (Performance-testing), kiểm thử tải (load-testing) và kiểm thử mức độ chịu đựng (stress-testing). Các công cụ kiểm thử hiệu năng liên quan đến việc kiểm thửở cấp độ hệ thống để xem liệu hệ thống có chịu được khối lượng sử dụng cao hay không. Volume test (kiểm thử khối lượng) kiểm tra xem hệ thống có thể đối phó với số lượng giao dịch dự kiến hay không. Stress test kiểm tra xem hệ thống có thể xử lý một lượng lớn dữ liệu hay không, ví dụ: nhiều trường trong một bản ghi, nhiều bản ghi trong một tệp…. Stress test là kiểm thử vượt ra ngoài mức sử dụng dự kiến thông thường của hệ thống (để xem điều gì sẽ xảy ra ngoài mong đợi thiết kế của hệ thống), liên quan đến tải hoặc khối lượng.
Trong kiểm thử hiệu năng, nhiều đầu vào kiểm thử có thể được gửi đến phần mềm hoặc hệ thống mà các kết quả riêng lẻ có thể không được kiểm thử chi tiết. Mục đích của kiểm thử là đo lường các đặc điểm, chẳng hạn như thời gian phản hồi, thông lượng hoặc thời gian trung bình giữa các lần lỗi (để kiểm thử độ tin cậy).
Để đánh giá hiệu năng, công cụ cần tạo ra một số loại hoạt động trên hệ thống và điều này có thể được thực hiện theo nhiều cách khác nhau. Ở mức độ rất đơn giản, cùng một giao dịch có thể được lặp lại nhiều lần (nhưng điều này là không thực tế). Có nhiều mức độ hiện thực có thể được đặt, tùy thuộc vào công cụ, chẳng hạn như hồ sơ người dùng khác nhau, loại hoạt động khác nhau, độ trễ thời gian và các tham số khác. Sao chép đầy đủ môi trường người dùng cuối hoặc hồ sơ người dùng thường là chìa khóa dẫn đến kết quả thực tế.
Phân tích đầu ra của một công cụ kiểm thử hiệu năng không phải lúc nào cũng đơn giản, nó đòi hỏi thời gian và chuyên môn. Nếu hiệu năng không đạt tiêu chuẩn mong đợi, thì cần thực hiện một số phân tích để xem vấn đề nằm ở đâu và biết những gì có thể được thực hiện để cải thiện hiệu năng.
Các tính năng hoặc đặc điểm của công cụ kiểm tra hiệu năng bao gồm hỗ trợ cho:
- Tạo tải trên hệ thống cần kiểm thử
- Đo thời gian của các giao dịch cụ thể khi tải trên hệ thống thay đổi
- Đo thời gian phản hồi trung bình
- Tạo đồ thị hoặc biểu đồ phản hồi theo thời gian.
Công cụ giám sát
Công cụ giám sát được sử dụng để theo dõi liên tục tình trạng của hệ thống đang sử dụng, nhằm có cảnh báo sớm nhất về sự cố và cải thiện dịch vụ.
Có các công cụ giám sát cho máy chủ, mạng, cơ sở dữ liệu, bảo mật, hiệu suất, trang web và việc sử dụng internet cũng như các ứng dụng.
Các tính năng hoặc đặc điểm của công cụ giám sát bao gồm:
- Xác định các vấn đề và gửi thông báo cảnh báo tới quản trị viên (ví dụ: quản trị mạng)
- Ghi thông tin lịch sử và thời gian thực
- Tìm cài đặt tối ưu
- Theo dõi số lượng người dùng trên mạng
- Giám sát lưu lượng mạng (trong thời gian thực hoặc trong một khoảng thời gian hoạt động nhất định với phân tích được thực hiện sau đó).
Công cụ hỗ trợ cho các lĩnh vực ứng dụng cụ thể
Trong chương này, chúng ta đã mô tả các công cụ theo phân loại chức năng chung của chúng. Ngoài ra còn có các chuyên môn hóa khác của các công cụ trong các phân loại này. Ví dụ: có các công cụ kiểm thử hiệu năng dựa trên web cũng như các công cụ kiểm thử hiệu suất cho các hệ thống hỗ trợ văn phòng. Có các công cụ phân tích tĩnh cho các nền tảng phát triển và ngôn ngữ lập trình cụ thể (vì mỗi ngôn ngữ lập trình và mọi nền tảng đều có các đặc điểm riêng biệt).
Có các công cụ phân tích động tập trung vào các vấn đề bảo mật, cũng như các công cụ phân tích động cho các hệ thống nhúng.
Các bộ công cụ thương mại có thể được đóng gói cho các lĩnh vực ứng dụng cụ thể, chẳng hạn như hệ thống nhúng hoặc dựa trên web.
Công cụ hỗ trợ khác
Các công cụ được mô tả trong chương này không phải là công cụ duy nhất mà người kiểm thử có thể sử dụng. Thông thường, bạn có thể không nghĩ đến trình xử lý văn bản hoặc bảng tính như một công cụ kiểm thử, nhưng chúng thường được sử dụng để lưu trữ các thiết kế kiểm thử, tập lệnh kiểm thử hoặc dữ liệu kiểm thử.
Người kiểm thử cũng có thể sử dụng SQL để thiết lập và truy vấn cơ sở dữ liệu chứa dữ liệu kiểm thử. Các công cụ được các nhà phát triển sử dụng khi gỡ lỗi, để giúp định vị các lỗi và kiểm tra các bản sửa lỗi của chúng cũng là các công cụ kiểm thử.
Các nhà phát triển sử dụng các công cụ sửa lỗi khi xác định và sửa lỗi. Các công cụ sửa lỗi cho phép họ chạy các bài kiểm thử riêng lẻ và cục bộ để đảm bảo rằng họ đã xác định chính xác nguyên nhân gây ra lỗi và để xác nhận rằng thay đổi của họ đối với mã thực sự sẽ khắc phục lỗi.
Bạn nên xem xét bất kỳ loại công cụ nào có sẵn để biết cách sử dụng công cụ đó để giúp hỗ trợ bất kỳ hoạt động kiểm thử nào. Ví dụ: người kiểm thử có thể sử dụng tập lệnh Perl để giúp so sánh kết quả kiểm thử.