Kỹ thuật hoặc danh mục kiểm thử phần mềm [đã đóng]


16

Những loại kiểm thử phần mềm nào bạn biết? Tôi đã nghe nói về Phát triển dựa trên thử nghiệm, thử nghiệm đơn vị, v.v., nhưng không thể hiểu tầm quan trọng và sự khác biệt của chúng. Ví dụ, tại sao chúng ta sử dụng các bài kiểm tra hồi quy hoặc kiểm tra chấp nhận. Họ cung cấp lợi thế gì?


8
Phần nào của điều này là khó hiểu hoặc không đầy đủ? vi.wikipedia.org/wiki/Software_testing
S.Lott

2
YOu có thể bỏ qua các bài kiểm tra hồi quy nếu bạn không quan tâm nếu bạn phá vỡ chức năng hiện có và bạn có thể bỏ qua bài kiểm tra chấp nhận nếu bạn không quan tâm liệu mọi người có thực sự sử dụng phần mềm hay trả tiền cho việc đó nghĩ rằng họ sẽ làm gì . Lập trình viên chuyên nghiệp quan tâm đến cả những điều đó.
HLGEM

Tôi đang bỏ phiếu để mở lại câu hỏi này vì đây là người duy nhất tôi có thể tìm thấy đưa ra một cái nhìn tổng quan tốt về các loại bài kiểm tra khác nhau. Có lẽ ai đó có một ý tưởng tốt làm thế nào để đặt lại câu hỏi để làm cho nó phù hợp hơn cho trang web này?
Doc Brown

Câu trả lời:


38

Các loại rộng lớn trong tâm trí của tôi sẽ là:

Kiểm tra hộp đen . Bạn không được xem mã và chỉ kiểm tra một cách mù quáng ở một mức độ nào đó vì những gì trong ứng dụng hoặc hệ thống bị ẩn khỏi bạn. Do đó, trong trường hợp này, mọi người không biết tất cả các trường hợp lỗi và phải đoán với các điều kiện biên khác nhau có thể có hoặc không rõ ràng để tìm tất cả các trường hợp.

Kiểm tra hộp trắng . Bạn có thể xem mã và có thể xác minh đường dẫn mã nào đang được sử dụng để phạm vi mã có thể được sử dụng làm số liệu để đảm bảo rằng tất cả logic đang được sử dụng trong hệ thống. Ý tưởng ở đây là để biết mã trông như thế nào để giúp hướng dẫn các bài kiểm tra sao cho nó không quá bí ẩn như kiểm thử hộp đen.

Kiểm tra hộp màu xám là một kết hợp của hai trước đó.

Các trường hợp ranh giới có xu hướng là một cái gì đó mà người ta có thể nhìn thấy trong kiểm tra hộp trắng vì có nhiều điều kiện khác nhau để xem trong mã mà người ta viết các bài kiểm tra để đánh, ví dụ: nếu bạn có một chương trình yêu cầu số và ai đó nhập X thì xử lý như thế nào nên được nhìn thấy ở đâu đó trong mã.

Phân loại chung của thử nghiệm sẽ là:

Bài kiểm tra đơn vị . Nhìn chung đây là các thử nghiệm nhỏ nhất kiểm tra một cái gì đó khá cụ thể, ví dụ phương pháp này có xử lý trường hợp ranh giới này không? Lưu ý rằng tiêm phụ thuộc có thể được sử dụng ở đây cho các trường hợp liên quan đến các đối tượng giả để giảm bất kỳ sự phụ thuộc nào cho các xét nghiệm.

Kiểm tra tích hợp . Đây là các thử nghiệm trong đó một vài thành phần được kết nối và các thử nghiệm được chạy để đảm bảo các thành phần hoạt động tốt với nhau. Lưu ý rằng trong khi các bài kiểm tra đơn vị có thể hoạt động độc lập, thì đây là bài kiểm tra xem mọi thứ kết hợp với nhau như thế nào vì có thể có sự nhầm lẫn giữa các lớp khiến các bài kiểm tra này hữu ích trong việc nắm bắt các vấn đề khác nhau. Thuật ngữ End-to-End tests được sử dụng cho các thử nghiệm tích hợp trong đó một chuỗi đầy đủ các thành phần được kiểm tra từ "một điểm cuối của ứng dụng này đến điểm khác" (bất kể điều đó có nghĩa là gì).

Kiểm tra hồi quy . Đây sẽ là các thử nghiệm được thực hiện trong quá khứ được thực hiện lại để đảm bảo rằng những gì đã được sửa vẫn được sửa và các lỗi không được giới thiệu lại cho mã.

Kiểm tra khả năng sử dụng . Đây sẽ là các thử nghiệm được thực hiện để xem người dùng cuối có thể làm việc tốt như thế nào với phần mềm để hoàn thành các tác vụ khác nhau. Nơi nào đó có thể được tự động hóa để làm cho một cái gì đó nhanh hơn hoặc điều chỉnh giao diện người dùng để một cái gì đó dễ sử dụng hơn.

Kiểm tra chấp nhận người dùng . Đây sẽ là các thử nghiệm được thực hiện bởi người dùng cuối để họ có thể thấy tận mắt cách thức hoạt động của một cái gì đó và đồng ý rằng phần mềm đáp ứng nhu cầu kinh doanh đã yêu cầu nó ngay từ đầu.

Kiểm tra chức năng là tất cả các loại kiểm tra dựa trên đặc điểm kỹ thuật chức năng của phần mềm được kiểm tra. Đây luôn là những bài kiểm tra hộp đen.

Kiểm tra hiệu năng. Đây sẽ là các thử nghiệm được thực hiện để đảm bảo một hệ thống có thể xử lý một lượng tải nhất định mà không bị quá chậm. Ví dụ: thử nghiệm một trang trại máy chủ web mới có thể xử lý tất cả 100 người dùng truy cập một trang web cùng một lúc sẽ là một ví dụ về kiểm tra hiệu suất. Đây cũng có thể được gọi là "kiểm tra tải" hoặc "kiểm tra căng thẳng" vì nói chung ý tưởng ở đây là đẩy hệ thống đến giới hạn của nó hoặc xác minh rằng hệ thống có thể xử lý một số phép chiếu từ bộ phận khác. Lý do căn bản của các thử nghiệm này là thường có nhiều cài đặt cấu hình để tối ưu hóa có thể mất nhiều hơn một chút công việc để khám phá các tắc nghẽn và giải quyết các vấn đề với điều này. Nút thắt ở đây có thể là bộ nhớ, I / O, CPU hoặc băng thông mạng khiến hệ thống không đáp ứng như mong đợi.

Test Driven Development là một phương pháp và không đề cập đến một loại thử nghiệm cụ thể mà thay vào đó các thử nghiệm được viết trước mã để các thử nghiệm là yếu tố thúc đẩy sự phát triển thay vì hành vi , miền hoặc tính năng là một số ví dụ khác về quá trình.

Tích hợp liên tục là một thực hành chạy một số bài kiểm tra như kiểm tra đơn vị, tích hợp và hồi quy thường xuyên để nếu một thay đổi phá vỡ một bài kiểm tra thì điều này được nắm bắt càng sớm càng tốt.


5
+1 ... và thật không may, vẫn có những bài kiểm tra thủ công ngay cả sau tất cả những điều đó.
Steven Evers

2
và Stres Test - tất cả các phiên có thể kiểm tra cùng một mặt nạ cùng một lúc và liên tục thông qua kịch bản thử nghiệm, ở đâu đó được bao gồm như một phần của UAT, btw +1
mKorbel

1
Bạn không thiếu kiểm tra bảo hiểm / bảo hiểm chi nhánh? Ngoài ra, chạy dưới một số loại hệ thống xem bộ nhớ, như malloc "Hàng rào điện", hoặc Valgrind?
Bruce Ediger

1
@Bruce Ediger: phạm vi bảo hiểm là một thống kê để kiểm tra hộp trắng, không phải là phương pháp kiểm tra chính nó và các công cụ bạn mô tả là để kiểm tra hoàn hảo.
Steven Evers

Tôi phải khác nhau về "các công cụ ... dành cho thử nghiệm hoàn hảo". Trong một số ngôn ngữ (C hoặc C ++) chạy toàn bộ rất nhiều bài kiểm tra đơn vị trong valgrind sẽ tìm thấy các lỗi mà không có loại kiểm tra nào khác được liệt kê ở trên sẽ tìm thấy. Valgrind chắc chắn là một công cụ sửa lỗi, nhưng chạy thử nghiệm trong một chương trình valgrinded là rất cần thiết.
Bruce Ediger

4

Kiểm tra hồi quy được thực hiện để đảm bảo rằng các thay đổi mới đối với hệ thống không phá vỡ bất kỳ chức năng hiện có nào không được cho là đã bị ảnh hưởng bởi các thay đổi.

Thử nghiệm chấp nhận thường được thực hiện bởi khách hàng / khách hàng / người dùng doanh nghiệp, nó thường ở mức độ cao hơn các hình thức thử nghiệm khác và nó được thực hiện để những người yêu cầu thay đổi hài lòng với họ và sẽ cho phép bạn quảng bá các thay đổi vào hệ thống sản xuất.


1
Và điều quan trọng nhất để họ đồng ý họ có được những gì họ muốn nhận và có thể trả cho bạn ngay bây giờ.
Mchl
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.