Kiểm thử phá hủy trong phần mềm là gì?
⚡ Tóm tắt thông minh
Kiểm thử phá hoại cố tình đẩy ứng dụng phần mềm đến khi nó bị lỗi, từ đó phát hiện ra chính xác những điểm mà tính ổn định bị suy giảm khi sử dụng không đúng cách, nhập liệu không hợp lệ và hành vi khó đoán mà các kiểm tra chức năng thông thường không bao giờ phát hiện ra.

Thử nghiệm phá hủy là gì?
Thử nghiệm phá hủy Kiểm thử phá hoại là một phương pháp kiểm thử phần mềm được sử dụng để tìm ra các điểm lỗi trong một chương trình phần mềm. Trong kỹ thuật này, một ứng dụng được cố ý làm cho bị lỗi, để có thể kiểm tra tính ổn định và xác định các điểm lỗi của nó. Không giống như các phương pháp kiểm thử xác minh những gì ứng dụng được cho là phải làm, kiểm thử phá hoại kiểm tra hành vi người dùng không thể đoán trước được bên trong ứng dụng.
Việc nắm rõ các yêu cầu ban đầu không bắt buộc đối với thử nghiệm phá hủy. Tuy nhiên, một số kiến thức nhất định sẽ hữu ích trong quá trình phát triển.ping một chiến lược kiểm thử tốt.
Hình minh họa bên dưới thể hiện ý tưởng này — người thử nghiệm làm việc chống lại sản phẩm chứ không phải hợp tác với sản phẩm.
Tại sao cần tiến hành thử nghiệm phá hủy?
- Điều này giúp hiểu được hành vi có thể dự đoán được của phần mềm khi phần mềm bị sử dụng không đúng cách.
- Nó giúp kiểm tra độ bền của một sản phẩm phần mềm.
- Nó giúp phát hiện những lỗi hiếm gặp mà người dùng thông thường không bao giờ gây ra, nhưng lại xuất hiện sau này trong quá trình sản xuất.
Kiểm tra phá hủy so với kiểm tra không phá hủy
Hai phương pháp này bổ sung cho nhau, chứ không phải đối lập. Kiểm tra không phá hủy — Còn được gọi là kiểm thử tích cực hoặc kiểm thử theo kịch bản thành công — tương tác với phần mềm một cách chính xác và giữ nguyên bản dựng. Kiểm thử phá hoại thì ngược lại: nó cung cấp dữ liệu không hợp lệ và các trình tự sai cho đến khi có lỗi xảy ra.
| Yếu tố | Thử nghiệm phá hủy | Kiểm tra không phá hủy |
| Intent | Buộc ứng dụng phải thất bại | Xác nhận rằng ứng dụng hoạt động đúng như yêu cầu. |
| Đầu vào được sử dụng | Không hợp lệ, bị lỗi định dạng, nằm ngoài phạm vi, không đúng trình tự | Dữ liệu hợp lệ nằm trong phạm vi dự kiến. |
| Câu hỏi đã được trả lời | Nó bị hỏng ở đâu và như thế nào? | Nó có làm những gì nó nên không? |
| Kiến thức về yêu cầu | Tùy chọn | Cần thiết |
| Chi phí điển hình | Cao hơn — mang tính khám phá và không giới hạn | Thấp hơn — được lập trình và có thể lặp lại |
| Kết quả | Các điểm lỗi, giới hạn phạm vi, hành vi phục hồi | Đạt hoặc không đạt theo tiêu chuẩn kỹ thuật |
Bạn kiểm tra những gì trong quá trình thử nghiệm phá hủy?
Thử nghiệm phá hủy xem xét cả hai khía cạnh của ranh giới hành vi:
- Hành vi phần mềm đúng đắn
- Hành vi phần mềm không đúng cách
- Sử dụng không đúng cách
- Dữ liệu đầu vào không chính xác
- Dữ liệu đầu ra phù hợp
Hai điều kiện phải được đáp ứng trong suốt quá trình thực hiện bài tập:
- Phần mềm sẽ không bao giờ xử lý hoặc chấp nhận dữ liệu đầu vào không hợp lệ.
- Bất kể tính hợp lệ hay chính xác của dữ liệu đầu vào, phần mềm luôn phải tạo ra dữ liệu đầu ra phù hợp.
Làm thế nào để thực hiện kiểm tra phá hủy?
Kiểm thử phá hủy bao gồm nhiều hoạt động, chẳng hạn như thiết kế một bộ kịch bản kiểm thử, thực thi các kịch bản đó, phát hiện lỗi, khắc phục lỗi và cung cấp các chỉ số đạt hoặc không đạt cho các bên liên quan khi kết thúc chu kỳ lặp.
Có rất nhiều cách để vận hành nó. Một số ví dụ được nêu dưới đây.
- Phương pháp phân tích điểm thất bại: Một bản hướng dẫn chi tiết về hệ thống, đánh giá những sự cố có thể xảy ra ở các giai đoạn khác nhau. Sự hỗ trợ từ... phân tích kinh doanh có thể áp dụng chiến lược này.
- Đánh giá ngang hàng của người kiểm thử: lấy của bạn trường hợp thử nghiệm được phân tích hoặc xem xét bởi một người kiểm thử khác, người ít quen thuộc hơn với hệ thống hoặc chức năng đó.
- Đánh giá nghiệp vụ của các trường hợp thử nghiệm: Người dùng cuối hoặc chuyên gia thường nghĩ ra những tình huống hợp lý mà người kiểm thử bỏ sót, bởi vì người kiểm thử chỉ tập trung vào các yêu cầu đã nêu.
- Tiến hành thử nghiệm thăm dò bằng cách sử dụng bảng ghi kết quả: thử nghiệm thăm dò Việc sử dụng bảng ghi kết quả cho phép ghi lại những gì đã được kiểm tra, cho phép lặp lại các bài kiểm tra và kiểm soát phạm vi kiểm tra.
- Hãy sử dụng nguồn khác: Hãy nhờ người khác tìm cách phá vỡ sản phẩm phần mềm và phân tích các tình huống mà họ gặp phải.
Ví dụ về thử nghiệm phá hủy
Hãy xem xét màn hình đăng nhập và hồ sơ của một ứng dụng ngân hàng. Một cuộc tấn công phá hoại có thể thực hiện được trong các trường hợp như sau:
- Hãy dán một chuỗi ký tự dài 5,000 ký tự vào một trường chỉ giới hạn 50 ký tự và xác nhận xem trường đó có từ chối chuỗi đó thay vì tự động cắt bớt hay không.
- Nhập chữ cái, ký hiệu và giá trị âm vào trường số lượng.
- Phá vỡ trình tự thông thường — mở trực tiếp trang xác nhận thanh toán mà không cần hoàn thành bước trước đó.
- Nhấn nút gửi nhiều lần và liên tiếp nhanh chóng để xem có tạo ra các bản ghi trùng lặp hay không.
- Ngắt kết nối mạng giữa chừng giao dịch và kiểm tra xem ứng dụng có khôi phục hoàn toàn hay để lại bản ghi chưa đầy đủ.
Mỗi trường hợp đều có một kỳ vọng xác định: thông báo xác thực rõ ràng, không có lỗi dữ liệu và không có ngoại lệ không được xử lý. Bất cứ điều gì khác đều là điểm lỗi cần được báo cáo.
Phương pháp thử nghiệm phá hủy
Các phương pháp sau đây được sử dụng trong kỹ thuật phần mềm để phục vụ mục tiêu kiểm thử phá hủy:
- Thử nghiệm Alpha/Beta
- Kiểm tra hồi quy
- Kiểm tra giao diện
- Phân vùng tương đương
- kiểm tra vòng lặp
- Kiểm thử nghiệm thu, v.v.
Kỹ thuật kiểm tra phá hủy
Các kỹ thuật dưới đây có thể được sử dụng với một số điều chỉnh:
- Kiểm tra hộp trắng
- Kiểm tra bảo mật
- Kiểm tra lỗi
- Kiểm tra khói, và như thế
Các kỹ thuật bổ sung đáng cân nhắc khi mục tiêu là tính ổn định bao gồm: thử nghiệm tiêu cực, căng thẳng thử nghiệm, thử nghiệm phục hồi và kiểm tra lông tơ.
Ưu điểm và nhược điểm của thử nghiệm phá hủy
Cần phải nêu rõ sự đánh đổi này trước khi đưa kỹ thuật đó vào bản phát hành.
Ưu điểm
- RevNó chỉ ra những điểm lỗi mà phương pháp kiểm thử dựa trên thông số kỹ thuật không bao giờ phát hiện ra.
- Thiết lập các giới hạn phạm vi thực tế, để sản phẩm có thể được vận hành một cách an tâm trong phạm vi đó.
- Phát hiện những lỗi hiếm gặp xuất hiện trong quá trình sản xuất rất lâu sau khi sản phẩm được tung ra thị trường.
- Kiểm tra độ bền, khả năng phục hồi và khả năng xử lý lỗi khi bị lạm dụng.
Nhược điểm
- Vì bản chất là không xác định, nên phạm vi bao phủ không thể được đảm bảo hoặc đo lường một cách dễ dàng.
- Tốn thời gian và phụ thuộc vào kinh nghiệm cũng như sự sáng tạo của người kiểm thử.
- Việc tái tạo kết quả có thể khó khăn nếu không ghi chép cẩn thận các bước thực hiện.
- Các lần chạy thử nghiệm không được kiểm soát tốt có thể làm hỏng dữ liệu thử nghiệm được chia sẻ, do đó cần có một môi trường biệt lập.

