Làm thế nào để làm cho các bài kiểm tra tự động phổ biến? [đóng cửa]


13

Cơ sở mã của chúng tôi đang phát triển trong 20 năm nay. Chúng tôi có khoảng 10 dev + sqa làm việc với 500kloc. Cách đây một thời gian, một nhóm nhỏ của chúng tôi (2 nhà phát triển, một người từ sqa) bắt đầu làm việc trên một chương trình thử nghiệm tự động. Hiện tại một lần chạy mất 11h và bằng cách nào đó là một bài kiểm tra tích hợp. Chúng tôi đang làm việc để giảm bớt điều này và giảm các kết quả dương tính giả và đang đạt được tiến bộ tốt trong đó. Nhưng chi tiết không quan trọng.

Nó đang hoạt động tốt và chúng tôi tiếp tục cải thiện nó. Chúng tôi (nhóm nhỏ) rất thích nó. Nếu chúng tôi phá vỡ một cái gì đó, chúng tôi nhận thấy một ngày sau đó và không 2 tháng sau khi sqa xem xét. Ngoài ra, các nhà quản lý của chúng tôi (dev + sqa) thích ý tưởng này. Nhưng những người khác trong đội chỉ bỏ qua các bài kiểm tra. Trong suy nghĩ của họ, nếu các bài kiểm tra thất bại sau khi đăng ký, thì đó là vấn đề của bài kiểm tra chứ không phải do thay đổi mã và đó chỉ là dự án đồ chơi của chúng tôi. Chúng tôi đã thảo luận nhiều lần nếu một bài kiểm tra thất bại là một lỗi thực sự. Hầu hết các lần nó là.

Chúng tôi không thể và không muốn thực thi một cái gì đó. Làm thế nào chúng ta có thể chỉ ra rằng kiểm tra tự động là một điều?


11
Đây không phải là vấn đề Kỹ thuật phần mềm; đó là một vấn đề của mọi người
Robert Harvey

@RobertHarvey Tôi đã đánh giá thấp về SO vì "dựa trên ý kiến" và một nhận xét rằng trang web này sẽ phù hợp hoàn hảo (và đánh giá cao về nhận xét đó). Vậy: tôi nên hỏi ở đâu? Giáo dục tôi.
Peter Schneider

2
Tôi với @RobertHarvey về vấn đề này. Nhưng theo Workplace, câu hỏi của bạn có thể sẽ được chúng tôi coi là lừa bịp. Ví dụ, hãy xem câu hỏi này, về cơ bản là những gì bạn đang hỏi nơi làm
Peter M

1
Đừng để những người phản đối (hoặc thậm chí bỏ phiếu gần) làm bạn nản lòng! Một số người có thể hiểu rằng những câu hỏi như vậy rất quan trọng và có lẽ có thể cung cấp trợ giúp. Nhân tiện, đồng nghiệp của tôi cũng không thấy được sự hữu ích của các bài kiểm tra tự động, mặc dù phiên bản trước (không có bất kỳ bài kiểm tra tự động nào) là một hộp lỗi. Chỉ cần thay đổi một điều, và phá vỡ một vài điều khác, dường như không liên quan. Một số người không muốn học (có sự phản kháng mở đối với việc học những điều mới).
Bernhard Hiller

1
Thật xấu hổ vì câu hỏi này đã bị đóng cửa. Nếu công nghệ phần mềm có nghĩa là bất cứ điều gì thì nó có nghĩa là các vấn đề khi làm việc với người thực tế và câu trả lời cho các vấn đề đó sẽ liên quan đến ý kiến. Điều đó nói rằng, một vài ý tưởng nhanh: (1) nếu bạn kiểm tra cho kết quả âm tính giả, điều này chắc chắn sẽ làm tăng phản hồi vì kết quả sẽ cảm thấy lãng phí thời gian; (2) đưa thời gian chạy xuống, nếu có thể. 11 giờ không cảm thấy tức thì, ngay cả khi nó tốt hơn hai tháng; (3) sqa sẽ áp dụng các thử nghiệm này như là số liệu họ xem. họ đã được công nhận bởi org của bạn trong lĩnh vực này.
Dale Hagglund

Câu trả lời:


4

Khước từ

Mặc dù tôi có vẻ giống như một người quản lý, tôi đã viết điều này với tư cách là một nhà phát triển, người cũng cần được thuyết phục rằng các bài kiểm tra tự động là tốt.


Bạn phải hiểu tâm lý cơ bản của các nhà phát triển. Đó là một nhu cầu ăn sâu của các nhà phát triển để cam kết mã. Bất cứ điều gì ngăn cản họ làm như vậy là một điều rất, rất xấu. Kiểm tra thất bại chắc chắn là một cái gì đó ngăn cản họ làm như vậy, ergo nó là một điều xấu. Do đó kháng chiến.

Những gì bạn phải chỉ ra là, trong khi các bài kiểm tra tự động làm chúng chậm lại trong thời gian ngắn, về lâu dài nó sẽ giúp họ tiết kiệm rất nhiều đau buồn và thực sự sẽ tăng tốc chúng, bởi vì họ sẽ có thể tập trung hơn vào sự phát triển của những điều mới và sẽ mất ít thời gian hơn để làm điều khác mà các nhà phát triển ghét phải làm: sửa lỗi.

Và vâng, bạn phải thực thi nó. Bạn phải nhận được sự hỗ trợ vô điều kiện từ ban quản lý và thực hiện viết bài kiểm tra tự động bắt buộc và không thể thương lượng. Theo thời gian, các nhà phát triển sẽ quen với chúng. Điều gì sẽ giúp là nếu bạn có thể đưa ra một số số liệu sẽ cho thấy mức độ phát triển mới đã được thực hiện nhiều hơn và số lượng lỗi đã giảm bao nhiêu kể từ khi bạn giới thiệu các bài kiểm tra tự động. Từ ngữ không ổn định. Số là rắn. Và con số là thứ mà một nhà phát triển trung bình hiểu rõ hơn từ ngữ. Nếu bạn có thể chứng minh bằng cách sử dụng các số rắn rằng các bài kiểm tra tự động là tốt, bạn sẽ nhận được rất ít để không kháng lại chúng.


11

Trong suy nghĩ của họ, nếu các bài kiểm tra thất bại sau khi đăng ký, thì đó là vấn đề của bài kiểm tra chứ không phải do thay đổi mã và đó chỉ là dự án đồ chơi của chúng tôi. Chúng tôi đã thảo luận nhiều lần nếu một bài kiểm tra thất bại là một lỗi thực sự. Hầu hết các lần nó là.

Có vấn đề của bạn. Nếu các bài kiểm tra của bạn không ổn định (ngay cả khi chúng đáng tin cậy 'hầu hết thời gian'), thì mọi người sẽ có xu hướng bỏ qua kết quả. Nhóm tự động hóa của bạn nên tập trung vào việc loại bỏ những tiêu cực sai. Chỉ sau đó, phần còn lại của nhóm sẽ có đủ tự tin vào kết quả để thực sự tin tưởng họ.


5
Sau đó, một lần nữa, nó có thể là một cái gì đó khác. Thích chống lại sự thay đổi. Nếu một bài kiểm tra thất bại, luôn có một cái gì đó để sửa, hoặc là mã hoặc bài kiểm tra, vì vậy thái độ mà mọi người sẽ bỏ qua các bài kiểm tra vì các bài kiểm tra không ổn định bị đặt sai chỗ.
Robert Harvey

Chúng tôi đã nói chuyện với họ khi chúng tôi chắc chắn rằng một cái gì đó đã bị hỏng (ví dụ: Thử nghiệm thất bại 3 lần liên tiếp sau khi đăng ký của anh ấy ảnh hưởng đến chức năng được đề cập). Nhưng có, tăng độ tin cậy là ưu tiên hiện tại.
Peter Schneider

1
@PeterSchneider một bài kiểm tra có thể thất bại 100 lần liên tiếp, nó sẽ làm điều đó đặc biệt nếu bài kiểm tra sai.
Pieter B

Mặt khác, một bài kiểm tra không bao giờ thất bại rất có thể hoàn toàn vô dụng
Vladimir Stokic

1
Các bài kiểm tra giòn +1 chắc chắn là một vấn đề. Các nhà phát triển phải được thuyết phục các bài kiểm tra họ viết là hữu ích, không đưa ra các biến chứng không cần thiết và không bận rộn .
Andres F.

6

Chúng tôi không thể và không muốn thực thi một cái gì đó.

Bạn chắc chắn nên thực thi nó! Nếu ai đó đẩy mã mới và các thử nghiệm thất bại, mã sẽ bị từ chối! Đó là cách duy nhất đáng tin cậy để duy trì một dự án phần mềm lớn hơn.


Tôi đoán điều đó phụ thuộc vào hệ thống, các bài kiểm tra, quy mô và quá trình phát triển. Không phải tất cả các lỗi có thể được giải quyết ngay lập tức, cũng như không phải giải quyết tất cả các vấn đề ngay lập tức.
NickL
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.