Gần đây tôi đã hỏi một câu hỏi về các bài kiểm tra trong phát triển trò chơi - đây là BTW làm thế nào tôi biết về bài kiểm tra này. Các câu trả lời chỉ ra một số nhược điểm tò mò, cụ thể:
- Nó là tốn kém để làm khi mã của bạn nên được kết hợp cao .
- Thật khó để làm khi bạn phải nhận thức được các nền tảng phần cứng khác nhau, khi bạn nên phân tích đầu ra cho người dùng và kết quả mã chỉ có ý nghĩa trong bối cảnh rộng hơn .
- Kiểm tra UI và UX là rất khó .
- Và đáng chú ý, các thử nghiệm tự động có thể tốn kém hơn và kém hiệu quả hơn so với một loạt các thử nghiệm beta chi phí rất thấp (hoặc miễn phí) .
Điểm thứ 4 khiến tôi nhớ về một số kinh nghiệm của tôi. Tôi đã làm việc cho một công ty được quản lý Scrum rất định hướng, XP, nơi các bài kiểm tra đơn vị rất được khuyến khích. Tuy nhiên, trên con đường đi đến một phong cách gọn gàng, ít quan liêu hơn, công ty chỉ bỏ qua việc xây dựng một nhóm QA - chúng tôi không có người thử nghiệm. Vì vậy, thường xuyên khách hàng tìm thấy các lỗi nhỏ khi sử dụng một số hệ thống, ngay cả với phạm vi kiểm tra> 95%. Vì vậy, tôi sẽ thêm một điểm khác:
- Kiểm tra tự động có thể khiến bạn cảm thấy rằng QA và kiểm tra không quan trọng.
Ngoài ra, tôi đã suy nghĩ những ngày đó về tài liệu và đưa ra một giả thuyết có thể hợp lệ (với một phần mở rộng ít hơn) để kiểm tra hai. Tôi chỉ cảm thấy rằng mã phát triển quá nhanh đến nỗi khá khó để tạo ra tài liệu tuân theo vận tốc như vậy, vì vậy sẽ có giá trị hơn khi dành thời gian để làm cho mã dễ đọc hơn là viết tài liệu nặng, dễ lỗi thời. (Tất nhiên, điều này không áp dụng cho API, mà chỉ áp dụng cho việc triển khai nội bộ.) Bài kiểm tra chịu một chút vấn đề tương tự: có thể quá chậm để viết khi so sánh với mã được kiểm tra. OTOH, đó là một vấn đề ít hơn bởi vì các bài kiểm tra cảnh báo chúng đã lỗi thời, trong khi tài liệu của bạn sẽ giữ im lặng miễn là bạn không đọc lại nó rất, rất cẩn thận .
Cuối cùng, một vấn đề đôi khi tôi thấy: kiểm tra tự động có thể phụ thuộc vào các công cụ và những công cụ đó có thể được viết kém. Tôi đã bắt đầu một dự án bằng XUL một thời gian trước đây và, thật khó để viết các bài kiểm tra đơn vị cho nền tảng như vậy. Tôi đã bắt đầu một ứng dụng khác bằng Objective-C, Ca cao và Xcode 3 và mô hình thử nghiệm trên đó về cơ bản là một loạt các cách giải quyết.
Tôi có kinh nghiệm khác về những bất lợi của kiểm tra tự động, nhưng hầu hết chúng được liệt kê trong các câu trả lời khác. Tuy nhiên, tôi là một người ủng hộ kịch liệt của thử nghiệm tự động. Điều này đã tiết kiệm rất nhiều công việc và đau đầu và tôi luôn đề xuất nó theo mặc định. Tôi đánh giá những nhược điểm đó chỉ là chi tiết khi so sánh với lợi ích của kiểm tra tự động. (Điều quan trọng là luôn luôn tuyên bố đức tin của bạn sau khi bạn nhận xét những điều dị giáo để tránh tự động.)