Công việc hiện tại của tôi chủ yếu là viết mã kiểm tra GUI cho các ứng dụng khác nhau mà chúng tôi làm việc. Tuy nhiên, tôi thấy rằng tôi có xu hướng sao chép và dán rất nhiều mã trong các bài kiểm tra. Lý do cho điều này là các khu vực tôi đang thử nghiệm có xu hướng tương tự nhau, cần lặp lại nhưng không đủ tương tự để đóng gói mã vào các phương thức hoặc đối tượng. Tôi thấy rằng khi tôi cố gắng sử dụng các lớp học hoặc phương thức rộng rãi hơn, các bài kiểm tra trở nên cồng kềnh hơn để duy trì và đôi khi hoàn toàn khó viết ngay từ đầu.
Thay vào đó, tôi thường sao chép một đoạn lớn mã kiểm tra từ một phần và dán nó vào phần khác, và thực hiện bất kỳ thay đổi nhỏ nào tôi cần. Tôi không sử dụng các cách mã hóa có cấu trúc hơn, chẳng hạn như sử dụng nhiều nguyên tắc hoặc chức năng OO hơn.
Các lập trình viên khác có cảm thấy như vậy khi viết mã kiểm tra không? Rõ ràng tôi muốn tuân theo các nguyên tắc DRY và YAGNI, nhưng tôi thấy rằng mã kiểm tra (mã kiểm tra tự động để kiểm tra GUI dù sao) có thể làm cho các nguyên tắc này khó tuân theo. Hay tôi chỉ cần thực hành mã hóa nhiều hơn và một hệ thống tổng thể tốt hơn để làm mọi thứ?
EDIT: Công cụ tôi đang sử dụng là SilkTest, ngôn ngữ độc quyền có tên 4Test. Đồng thời, các thử nghiệm này chủ yếu dành cho các ứng dụng máy tính để bàn Windows, nhưng tôi cũng đã thử nghiệm các ứng dụng web bằng cách sử dụng thiết lập này.