Có và không. Vâng, như với tất cả mọi thứ, nó phụ thuộc. Trong bài đăng này, tôi sẽ cố gắng minh họa trải nghiệm của mình với thử nghiệm với tư cách là nhà phát triển, sau đó là nhà sáng lập công ty khởi nghiệp.
CHÀO! Tôi là Simone, một nhà phát triển toàn diện và CTO với 15 năm kinh nghiệm viết mã trong các ngành khác nhau, bao gồm đại lý web, thương mại điện tử, phần mềm dành cho người lớn và doanh nghiệp. Trong bài đăng trên blog này, tôi muốn chia sẻ những hiểu biết sâu sắc về kiểm thử phần mềm và cách xác định các phương pháp phù hợp cho các nhu cầu và giai đoạn kinh doanh khác nhau.
Tôi là CTO và đồng sáng lập của Bugpilot, một công cụ theo dõi lỗi giúp các nhóm SaaS phát hiện các lỗi lọt qua các quy trình phát triển, thử nghiệm và QA.
Trong thế giới phát triển phần mềm, nhiều hoạt động kiểm thử từ lâu đã được coi là cần thiết để đảm bảo độ tin cậy và chất lượng của các sản phẩm phần mềm. Tuy nhiên, điều quan trọng là phải nhận ra rằng trong khi các phương pháp này có giá trị của chúng, chúng không phải là không có nhược điểm.
Bài đăng trên blog này nhằm khơi dậy một cuộc trò chuyện và làm sáng tỏ tác hại tiềm ẩn mà TDD và QA có thể gây ra cho các nhóm phần mềm. Bằng cách thừa nhận rằng không có cách tiếp cận nào phù hợp cho tất cả và các doanh nghiệp và giai đoạn khác nhau yêu cầu các phương pháp phù hợp, chúng ta có thể bắt đầu điều hướng sự phức tạp của phát triển phần mềm một cách hiệu quả hơn.
Tôi thừa nhận nhiều phương pháp khác nhau, các phương pháp phổ biến và khuyến nghị xung quanh việc kiểm thử phần mềm; trong bài đăng này, tôi chủ yếu tập trung vào Phát triển dựa trên thử nghiệm và Đảm bảo chất lượng.
Dưới đây là tổng quan, trong trường hợp bạn không quen thuộc với các điều khoản:
TDD
Phát triển dựa trên thử nghiệm (TDD) là một phương pháp phát triển phần mềm liên quan đến việc viết các bài kiểm tra tự động trước khi viết mã. Điều này giúp phát hiện sớm các vấn đề trong chu kỳ phát triển, đảm bảo rằng mã được kiểm tra kỹ lưỡng và đáp ứng các yêu cầu kinh doanh. Trước tiên, các nhà phát triển xác định hành vi dự kiến của một tính năng mới bằng một thử nghiệm, sau đó viết mã để vượt qua thử nghiệm và cuối cùng tối ưu hóa mã thông qua tái cấu trúc.
QA
Đảm bảo chất lượng (QA) đảm bảo phần mềm đáp ứng các tiêu chuẩn chất lượng trước khi phát hành. Điển hình là quy trình thủ công do Kỹ sư QA thực hiện, xác định và sửa lỗi thông qua thử nghiệm thủ công và tự động, chẳng hạn như xác minh các yêu cầu chức năng và kiểm tra hiệu suất. Điều này đảm bảo phần mềm ổn định, đáng tin cậy đáp ứng nhu cầu của doanh nghiệp và người dùng cuối.
Mục tiêu của tôi với bài đăng này là khơi dậy một cuộc trò chuyện. Tôi không thể nhấn mạnh đến mức tôi tin tưởng mạnh mẽ rằng các xét nghiệm là cần thiết trong nhiều trường hợp. Hãy nghĩ về các thiết bị y tế, phần mềm máy bay, hệ thống điều khiển, ngân hàng, v.v., phần mềm được hàng tỷ người sử dụng trong đó màu sắc của một nút tạo ra sự khác biệt đáng kể về lợi nhuận.
Việc phát triển phần mềm yêu cầu sự cân bằng giữa cấu trúc và tính linh hoạt, đồng thời mù quáng tuân theo các nguyên tắc thử nghiệm mà không xem xét bối cảnh có thể dẫn đến kết quả dưới mức tối ưu - các thư viện mã có thể được hưởng lợi từ phạm vi bảo hiểm 99%. Nhưng phần mềm của bạn có cần bảo hiểm 99% không?
Tôi đã chuẩn bị một vài câu hỏi. Cố gắng trả lời có hoặc không - tại sao vậy?
Sự phát triển dựa trên thử nghiệm (TDD) đã thu được một lượng người theo dõi gần như tôn giáo. Một số người cho rằng nó giúp ích cho sức khỏe tâm thần và nó thường đi kèm với niềm tin giáo điều rằng đó là con đường duy nhất dẫn đến thành công. Chương này nhằm mục đích khám phá những nhược điểm của TDD và làm sáng tỏ cái bẫy cứng nhắc, hạn chế về thời gian và cảm giác an toàn sai lầm .
Với tư cách là một CTO, tôi đã gặp phải những đồng nghiệp khăng khăng đòi TDD cho cả những chức năng tầm thường nhất. Giáo điều phổ biến dường như là, "Bạn phải thực hiện TDD, hoặc bạn là một thằng ngốc!" Niềm tin vững chắc vào TDD là cách tiếp cận duy nhất có thể chấp nhận được thường khiến tôi đặt câu hỏi về khả năng đánh giá và năng lực của chính mình. Tôi nhớ rõ sự cố khi tôi bị cười nhạo vì từ chối viết bài kiểm tra cho một hàm 2 dòng đơn giản để lọc một mảng.
Kinh nghiệm cá nhân này đã làm nổi bật một trong những cạm bẫy chính của TDD— cái bẫy cứng nhắc. Việc tuân thủ một cách giáo điều các bài kiểm tra viết trước đôi khi có thể dẫn đến các quy trình cứng nhắc, do đó có thể ảnh hưởng đến lợi thế về thời gian đưa ra thị trường và đối thủ cạnh tranh của công ty.
Một thách thức đáng kể do TDD đặt ra là hạn chế về thời gian mà nó áp đặt lên quá trình phát triển.
Việc viết các bài kiểm tra toàn diện cho mọi đoạn mã có thể tốn thời gian, đặc biệt là đối với các chức năng tầm thường có tác động tối thiểu đến toàn bộ hệ thống. Trong các môi trường có nhịp độ nhanh, nơi việc lặp lại nhanh chóng và phân phối kịp thời là rất quan trọng, chi phí bổ sung của TDD có thể làm chậm chu kỳ phát triển và cản trở sự linh hoạt.
Tôi thấy thật vô lý khi luôn áp dụng cách tiếp cận “Tôi cần mức độ phù hợp 99%”. Cân bằng giữa tính kỹ lưỡng và hiệu quả là điều cần thiết và có những tình huống mà phương pháp thử nghiệm hợp lý hơn có thể phù hợp hơn, cho phép lặp lại nhanh hơn và đáp ứng nhanh hơn nhu cầu thị trường.
Hơn nữa, sự phức tạp và không hoàn hảo của các bài kiểm tra viết liên quan đến tương tác với các phụ thuộc bên ngoài hoặc các hệ thống phức tạp có thể làm tăng thêm các hạn chế về thời gian của TDD.
Là một nhà phát triển, tôi thậm chí có thể nói rằng tôi thích viết bài kiểm tra, nhưng… hãy tìm một Giám đốc điều hành hài lòng khi nhóm của họ dành 80% thời gian để viết bài kiểm tra mã mà cuối cùng sẽ bị xóa.
Các nhà phát triển thường cần tạo các đối tượng giả hoặc sơ khai để mô phỏng hành vi của các phụ thuộc này trong quá trình thử nghiệm. Mặc dù các mô hình giả có thể là công cụ có giá trị để cô lập mã và giảm sự phụ thuộc, nhưng chúng cũng có thể gây ra thêm chi phí hoạt động và độ phức tạp.
Việc phụ thuộc vào mô hình giả có thể dẫn đến việc thể hiện không hoàn hảo các tương tác trong thế giới thực, vì việc sao chép chính xác hành vi của các hệ thống bên ngoài hoặc các thành phần của bên thứ ba có thể là một thách thức. Điều này có thể đưa một mức độ không chắc chắn vào quá trình thử nghiệm, có khả năng dẫn đến kết quả dương tính giả hoặc âm tính giả.
Các bài kiểm tra đang trôi qua; Tôi có thể có một giấc ngủ ngon, phải không? Phải?
Có một nguy cơ cố hữu nhưng thường bị bỏ qua khi chỉ dựa vào các bài kiểm tra —một cảm giác an toàn sai lầm. Mặc dù thử nghiệm chắc chắn là cần thiết để xác định và ngăn ngừa lỗi, nhưng nó không phải là một giải pháp hoàn hảo.
Cũng rất khó để kiểm tra tất cả các trường hợp có thể xảy ra. Đặc biệt trong lĩnh vực phát triển web, có vô số yếu tố có thể ảnh hưởng đến trải nghiệm người dùng. Một yếu tố như vậy là sự đa dạng của các thiết bị người dùng cuối, bao gồm các kích thước màn hình, độ phân giải, hệ điều hành và trình duyệt khác nhau. Mỗi sự kết hợp đưa ra một tập hợp các thách thức duy nhất có thể ảnh hưởng đến cách phần mềm hoạt động và hiển thị cho người dùng.
Hãy xem xét vô số thiết bị và cấu hình: điện thoại thông minh, máy tính bảng, máy tính xách tay và máy tính để bàn, chạy trên iOS, Android, Windows hoặc macOS, sử dụng nhiều phiên bản trình duyệt khác nhau như Chrome, Safari, Firefox, Edge hoặc Internet Explorer. Mỗi tổ hợp thiết bị, hệ điều hành và trình duyệt có thể hiển thị nội dung web khác nhau và tương tác của người dùng cũng có thể khác nhau. Hầu như không thể dự đoán và giải thích cho mọi thiết bị và cấu hình có thể, khiến các thử nghiệm khó có thể cung cấp phạm vi bao quát đầy đủ.
Tính cách người dùng và hồ sơ thêm một lớp phức tạp khác. Phần mềm của bạn có thể nhắm mục tiêu đối tượng đa dạng với các sở thích, hành vi và nhu cầu trợ năng khác nhau. Thử nghiệm có thể giúp phát hiện các sự cố phát sinh trong các tình huống điển hình, nhưng nó có thể bỏ sót các trường hợp cạnh hoặc các tương tác cụ thể của người dùng khác với tiêu chuẩn. Ví dụ: người dùng bị khiếm thị phụ thuộc vào các công nghệ hỗ trợ có thể gặp phải những thách thức về khả năng sử dụng mà khó nắm bắt được thông qua các thử nghiệm tự động.
Ngoài các biến thể kỹ thuật, bối cảnh người dùng và các kịch bản trong thế giới thực đóng một vai trò quan trọng trong việc định hình trải nghiệm người dùng. Các yếu tố như điều kiện mạng, giới hạn băng thông hoặc sử dụng đồng thời có thể ảnh hưởng đến hiệu suất và độ tin cậy của phần mềm.
Mặc dù các thử nghiệm có thể cung cấp một môi trường được kiểm soát, nhưng chúng có thể không mô phỏng chính xác các điều kiện mạng và kiểu sử dụng đa dạng mà người dùng gặp phải trong cuộc sống hàng ngày. Nếu các bài kiểm tra không thể đảm bảo phần mềm của bạn hoạt động tốt, liệu chúng có xứng đáng vào cuối ngày không?
Tôi đã tận mắt chứng kiến những thách thức do các hoạt động Đảm bảo Chất lượng “nghiêm ngặt” đặt ra, đặc biệt là khi nói đến các công ty nhỏ hơn phải hành động nhanh chóng để vượt lên trên các đối thủ cạnh tranh của họ.
Tôi tin rằng điều này đặc biệt đúng đối với các công ty khởi nghiệp ở giai đoạn đầu; bằng cách nào đó, bạn có khả năng sẽ sớm vứt bỏ toàn bộ tính năng nếu khách hàng của bạn không sử dụng nó. Vì vậy, cả tuần thử nghiệm và tinh chỉnh các bài kiểm tra đơn vị có đáng không?
Hãy để tôi chia sẻ kinh nghiệm cá nhân của mình và làm sáng tỏ những nguy cơ của việc bị cuốn vào chủ nghĩa hoàn hảo, đặc biệt là khi các khía cạnh hình ảnh hoặc trình bày nhỏ trở thành trọng tâm của các nỗ lực QA.
Trong vai trò trước đây của tôi tại một công ty khởi nghiệp, chúng tôi phải đối mặt với cuộc chiến không ngừng giữa việc cung cấp các tính năng một cách nhanh chóng và đảm bảo chất lượng hoàn hảo. Đã có những trường hợp chu kỳ phát hành của chúng tôi bị trì hoãn một cách không cần thiết do các vấn đề nhỏ chẳng hạn như lề CSS bị lệch, lựa chọn phông chữ không chính xác hoặc thiếu dấu ngắt dòng. Mặc dù chú ý đến từng chi tiết là rất quan trọng, nhưng tôi bắt đầu đặt câu hỏi về tác động của việc ám ảnh về những khiếm khuyết về mặt thẩm mỹ này đối với khả năng dẫn đầu thị trường của chúng ta.
Một trong những rủi ro của QA quá mức là ưu tiên sự hoàn hảo hơn tính thực tế. Trong quá trình theo đuổi sự hoàn hảo, chúng tôi thường nhận thấy mình đã đầu tư thời gian và nguồn lực đáng kể vào việc khắc phục những lỗi nhỏ về hình ảnh. Đây không phải là kẻ thù của năng suất sao?
Mặc dù việc duy trì các tiêu chuẩn cao là điều cần thiết, nhưng tôi bắt đầu nhận ra rằng việc dành nhiều nỗ lực cho những chi tiết nhỏ này có thể phản tác dụng, khiến chúng tôi không tập trung vào chức năng cốt lõi và cải tiến trải nghiệm người dùng thực sự quan trọng đối với khách hàng của chúng tôi.
Mối nguy hiểm trở nên rõ ràng khi chúng tôi quan sát thấy hậu quả của cách tiếp cận QA quá thận trọng. Nhóm của chúng tôi bắt đầu thể hiện hành vi không thích rủi ro, chọn quy trình phát hành chậm và tỉ mỉ. Mặc dù mục đích là cung cấp một sản phẩm gần như hoàn hảo, nhưng chúng tôi đã vô tình bóp nghẹt sự đổi mới và cản trở khả năng đáp ứng nhanh chóng nhu cầu của khách hàng. Là một công ty nhỏ (30 nhân viên), chúng tôi dựa vào sự linh hoạt của mình để thay đổi nhanh chóng và vượt qua các đối thủ cạnh tranh lớn hơn. Tuy nhiên, các hoạt động QA quá mức dẫn đến nỗi sợ hãi lan rộng về “lỗi” đang kìm hãm chúng tôi.
Chúng ta không nên chấp nhận lỗi tồn tại? Bất cứ ai làm việc đều phạm sai lầm; nếu bạn không làm việc, bạn sẽ không bao giờ phạm sai lầm. (Xin lỗi - trích dẫn bóng đá)
Ý nghĩa tài chính của các chu kỳ phát hành kéo dài đã trở nên rõ ràng. Các cơ hội thị trường bị bỏ lỡ, việc tạo doanh thu bị trì hoãn và sự thay đổi của khách hàng tiềm năng bắt đầu gây ra hậu quả. Chúng tôi không đủ khả năng để chậm chạp như một công ty nhỏ với nguồn lực hạn chế. Chúng tôi cần tận dụng sự nhanh nhẹn và tốc độ của mình để nắm bắt cơ hội và duy trì lợi thế cạnh tranh.
Thời gian dành cho việc hoàn thiện các chi tiết nhỏ cần được cân bằng với nhu cầu lặp lại nhanh chóng và đáp ứng thị trường. Hoãn, hoãn và hoãn mọi bản phát hành cho đến khi chúng tôi “chắc chắn hơn” rằng mọi thứ hoạt động; vận chuyển vào các ngày thứ Ba đã trở thành lựa chọn ưa thích. Tại sao phải giao hàng vào thứ Hai nếu chúng tôi có thể mất thêm một ngày để kiểm tra mọi thứ?
Mặc dù thử nghiệm giúp xác định và ngăn ngừa lỗi, nhưng điều quan trọng không kém là nắm lấy phản hồi của người dùng như một nguồn thông tin có giá trị. Trải nghiệm, tùy chọn và đề xuất của người dùng có thể cung cấp thông tin chuyên sâu vượt xa những gì mà thử nghiệm đơn lẻ có thể phát hiện ra. Chúng tôi có thể tạo ra một sản phẩm lấy người dùng làm trung tâm đáp ứng mong đợi của họ bằng cách thúc đẩy vòng phản hồi với người dùng, tích cực lắng nghe nhu cầu của họ và kết hợp ý kiến đóng góp của họ vào quy trình phát triển.
Thay vì chỉ dựa vào thử nghiệm nội bộ rộng rãi, việc lôi kéo người dùng tham gia vào quá trình thử nghiệm có thể mang lại nhiều lợi ích. Thử nghiệm người dùng ban đầu, chẳng hạn như thử nghiệm beta hoặc nghiên cứu khả năng sử dụng, cho phép quan sát các tình huống trong thế giới thực và tương tác của người dùng.
Cách tiếp cận lấy người dùng làm trung tâm này giúp xác định các vấn đề khó khăn, vấn đề về khả năng sử dụng và các vấn đề không lường trước được mà có thể không phát hiện được chỉ thông qua thử nghiệm nội bộ. Kết hợp sớm phản hồi này có thể nâng cao đáng kể trải nghiệm và sự hài lòng của người dùng.
Thật không may, cá nhân tôi đã chứng kiến sự “mất cân bằng” mạnh mẽ trong nhiều nhóm phần mềm. Đây là câu hỏi dành cho bạn: QA có nên thất bại do giao diện người dùng không nhất quán không? QA nên thất bại bao lâu một lần?
Nghiên cứu luôn nhấn mạnh tác động tiêu cực của chức năng bị hỏng đối với việc giữ chân người dùng. Chúng tôi được biết nhiều nghiên cứu cho thấy rằng người dùng sẽ ít có khả năng tiếp tục sử dụng một sản phẩm nếu họ thường xuyên gặp lỗi, sự cố hoặc lỗi làm gián đoạn trải nghiệm của họ.
Theo khảo sát của Qualitet , 88% người dùng sẽ từ bỏ một ứng dụng chỉ sau một hoặc hai trường hợp hoạt động kém. Những phát hiện này nhấn mạnh vai trò quan trọng của tính ổn định chức năng trong việc giữ chân người dùng và xây dựng sự gắn kết lâu dài.
Khi người dùng gặp phải chức năng bị hỏng, điều đó làm xói mòn niềm tin của họ vào sản phẩm và nhóm phát triển đằng sau nó. Ngay cả khi các vấn đề cuối cùng đã được giải quyết, người dùng vẫn có thể có nhận thức tiêu cực và không muốn quay lại. Người dùng có thể mất niềm tin vào một trang web hoặc ứng dụng nếu họ liên tục gặp lỗi chức năng hoặc trục trặc.
Lỗi ở khắp mọi nơi và tất cả chúng ta đều biết phần mềm không có lỗi có thể không bao giờ tồn tại .
Đôi khi, người dùng có thể gặp lỗi và điều quan trọng là phải phân biệt giữa các lỗi nhỏ và các vấn đề chức năng quan trọng. Ngày nay, người dùng có thể tha thứ hơn cho các lỗi nhỏ không ảnh hưởng đáng kể đến trải nghiệm chung của họ. Theo quan điểm của chúng tôi, người dùng đã học cách chấp nhận lỗi là điều không thể tránh khỏi trong quá trình phát triển phần mềm; lỗi là một phần của cuộc sống hàng ngày của chúng tôi.
Tuy nhiên, khi nói đến chức năng cốt lõi bị hỏng cản trở khả năng sử dụng phần mềm như dự định, người dùng có thể sẽ ít tha thứ hơn và có thể tìm kiếm các giải pháp thay thế.
Trong các tình huống B2B, chức năng bị hỏng có thể gây hậu quả nghiêm trọng cho người dùng và doanh nghiệp của họ. Nó có thể dẫn đến các mốc thời gian dự án bị trì hoãn, trễ hạn và thậm chí là tổn thất tài chính 440 triệu đô la .
Đối với phần mềm tiêu dùng, người dùng doanh nghiệp có thể trở nên thất vọng và tức giận khi gặp lỗi khiến họ không thể hoàn thành công việc của mình. Lòng trung thành của họ đối với một sản phẩm phần mềm gắn chặt với độ tin cậy và khả năng giúp họ thành công trong trách nhiệm nghề nghiệp của mình. Độ tin cậy thấp sẽ tương đương với churn cao hơn.
Tuy nhiên, tôi đã học được rằng không phải lúc nào cũng vậy. Khi toàn bộ tổ chức áp dụng một công nghệ, có dễ dàng khiến toàn bộ công ty chuyển sang giải pháp của đối thủ cạnh tranh không? Không chắc.
Trong thương mại điện tử, người dùng có sẵn nhiều lựa chọn thay thế trong tầm tay. Là người dùng, công việc cần hoàn thành của bạn rất rõ ràng. Bạn đang cần mua máy hút bụi. Nếu ứng dụng Amazon gặp sự cố, mất bao lâu trước khi bạn thử ứng dụng tiếp theo trong ngăn kéo của mình?
Chức năng bị hỏng hoặc lỗi có thể dẫn đến giỏ hàng nhanh chóng bị bỏ rơi, giảm vĩnh viễn sự hài lòng của khách hàng và đánh mất cơ hội kinh doanh.
Rõ ràng là không. Mặc dù các thử nghiệm đóng vai trò quan trọng trong việc xác định và ngăn ngừa một số lỗi, nhưng có thể thực hiện các biện pháp bổ sung để giảm thiểu tác động của lỗi đối với người dùng. Dưới đây là một vài cách tiếp cận tôi đã nghiên cứu:
Việc triển khai các hệ thống giám sát và theo dõi lỗi mạnh mẽ cho phép chủ động xác định và giải quyết các vấn đề. Giám sát thời gian thực có thể giúp phát hiện các điểm bất thường, các vấn đề về hiệu suất và lỗi, cho phép khắc phục kịp thời trước khi chúng ảnh hưởng đến nhiều người dùng. Theo dõi lỗi cho phép nắm bắt chi tiết lỗi và giúp ưu tiên sửa lỗi dựa trên tác động của chúng đối với người dùng.
Các công cụ như Sentry , Rollbar , Bugsnag và Bugpilot giúp các nhóm tự động phát hiện lỗi mã hóa và các phiên UX có vấn đề, để nhóm có thể chủ động giải quyết các vấn đề.
Tích cực khuyến khích và thu thập phản hồi của người dùng cung cấp thông tin chi tiết có giá trị về các vấn đề về khả năng sử dụng, lỗi và các lĩnh vực cần cải thiện. Giải quyết kịp thời các vấn đề do người dùng báo cáo và cung cấp hỗ trợ thể hiện cam kết giải quyết vấn đề và duy trì trải nghiệm người dùng tích cực.
Các công cụ như Canny , Hotjar và Bugpilot giúp các nhóm dễ dàng thu thập phản hồi từ người dùng của họ.
Tài liệu và giáo dục người dùng
Tài liệu hướng dẫn người dùng và tài liệu rõ ràng và toàn diện có thể giúp người dùng điều hướng phần mềm một cách hiệu quả và giảm thiểu rủi ro lỗi do người dùng gây ra. Việc cung cấp các tài nguyên giải thích các sự cố phổ biến và các bước khắc phục sự cố cho phép người dùng tự giải quyết các sự cố nhỏ một cách độc lập.
Tại Bugpilot, chúng tôi sử dụng trang Notion để lưu giữ tất cả tài liệu của mình. Dễ dàng và miễn phí.
Thử nghiệm hoạt động như một biện pháp phòng ngừa quan trọng bằng cách xác định sớm các vấn đề trong quá trình phát triển. Thử nghiệm kỹ lưỡng, bao gồm thử nghiệm đơn vị, thử nghiệm tích hợp và thử nghiệm đầu cuối, giúp - ở một mức độ nào đó - bắt lỗi và đảm bảo tính ổn định cũng như chức năng của phần mềm. Nhưng việc kiểm tra quá mức và các quy trình quá nghiêm ngặt rất có thể gây thiệt hại cho công ty về lâu dài.
Tuy nhiên, đôi khi lỗi có thể lọt qua mạng thử nghiệm bất chấp những nỗ lực tốt nhất của chúng tôi. Do đó, điều quan trọng không kém là phải có các chiến lược giảm thiểu tại chỗ. Bằng cách triển khai các giải pháp giảm thiểu, các nhóm phần mềm có thể nhanh chóng phát hiện và giải quyết các lỗi, giảm thiểu tác động của chúng đối với người dùng và nhanh chóng giải quyết mọi vấn đề phát sinh.
Thừa nhận rằng không có phần mềm nào có thể hoàn toàn không có lỗi , việc tạo ra một môi trường khuyến khích phản hồi của người dùng và cung cấp hỗ trợ khách hàng hiệu quả là điều cần thiết. Bằng cách tích cực lắng nghe báo cáo của người dùng và giải quyết kịp thời các mối quan tâm của họ, các nhóm phần mềm có thể duy trì mối quan hệ tích cực với người dùng của họ và thúc đẩy lòng tin và lòng trung thành.
tl;dr
Đừng kiểm tra quá mức. Bạn có thể không cần phạm vi kiểm tra đơn vị 99%. Tàu nhanh.
Cũng được xuất bản ở đây .