Tư Duy Khác Biệt Của Tester Và Developer

21/33
senior-tester-job-da-nang-sioux-high-tech-software

Có nhiều ý kiến cho rằng vai trò của tester là không cần thiết bởi vì một developer vẫn có thể test được những dòng code do anh ta viết ra. Bạn nghĩ sao về nhận định này?

Một người developer hoàn toàn có thể test được nhưng dòng code do chính người đó hoặc những team members khác viết ra, nhưng có một điều developer có thể chưa đáp ứng, đó là phương thức và cách tư duy như một tester.

Trong bài viết này, chúng ta sẽ thảo luận về sự khác nhau trong tư duy của một developer và một tester. Chúng ta cũng sẽ nhấn mạnh về những lợi ích của sự khác nhau này và làm thế nào để mối quan hệ giữa developer – tester được củng cố hiệu quả hơn.

senior-tester-job-da-nang-sioux-high-tech-software

Sự khác biệt căn bản giữa cách thức tiếp cận của developer và tester đó là, công việc của một developer là tạo ra một ứng dụng/ sản phẩm trong khi tester thì tìm ra những lỗi trong đó và bảo đảm chất lượng cho sản phẩm. Mặc dù cách thức tiếp cận có thể khác nhau, nhưng cả hai vai trò này đều làm việc vì một mục đích chung: tạo ra một sản phẩm ổn định và chất lượng. Trong suốt chu trình phát triển phần mềm, cả developer và tester cùng làm việc trong cùng một dự án nhưng mối quan tâm của họ hoàn toàn đối ngược nhau.

Tư duy của Tester trong quá trình phát triển phần mềm (SDLC)

Trong giai đoạn lấy yêu cầu, tester cần nắm những nội dung/ yêu cầu tổng quan của dự án. Họ tạo ra test plans, test strategies và thấu hiểu phạm vi của dự án;

Một khi giai đoạn phát triển hoàn tất và đã tạo ra một sản phẩm khả dụng, họ sẽ test sản phẩm theo một quy trình nghiêm ngặt trong những môi trường khác nhau, kiểm tra tổng quan performance và chức năng của sản phẩm;

Tester bắt đầu việc testing với tư duy rằng, việc phát triển sản phẩm có thể ẩn chứa nhiều lỗi làm ảnh hưởng đến chất lượng và sản phẩm đó cần được kiểm tra kĩ lưỡng trước khi bàn giao;

Bất kỳ lỗi nào phát sinh trong quá trình kiểm tra đều được ghi lại trong công cụ theo dõi lỗi;

Sau đó, các kịch bản tự động được tạo ra để giảm chi phí thủ công;

Kiểm tra hồi quy và kiểm tra lại được thực hiện để đảm bảo sản phẩm có chất lượng tốt nhất.

 Tư duy của Developer trong quy trình phát triển phần mềm

Sau khi thu thập yêu cầu, developer phân tích yêu cầu và nhận diện những thách thức tiềm ẩn và đưa ra cách giải quyết tốt nhất;

Developer thường có xu hướng tự tin về khả năng lập trình của họ. Họ có xu hướng nghĩ rằng những dòng code của họ hầu như không có lỗi. Một khi việc coding hoàn thành, họ sẽ tạo unit tests và test sản phẩm dựa trên sự hiểu biết của họ;

Nếu có những vấn đề gì xuất hiện trong giai đoạn này, họ sẽ chỉnh sửa lại code cho hoàn thiện;

software-developer-job-sioux-high-tech-software

Bên trên là task list riêng của tester và developer, bây giờ chúng ta sẽ thảo luận về việc cộng tác của developer và tester trong chu kỳ phát triển phần mềm.

Sau khi thực hiện quá trình thu thập và phân tích yêu cầu dự án, developer thường dành thời gian để phát triển tính năng trong khi tester sử dụng tài liệu về yêu cầu dự án để tạo ra tests cases và test strategies;

Sau khi một developer tạo ra unit test cases và test sơ khởi ít nhất một lần, sản phẩm sẽ được chuyển sang cho testers. Trong giai đoạn này, developer thường theo sát yêu cầu và cung cấp dữ liệu test cho hoạt động testing. Việc testing này có phạm vi khá hẹp và có thể bỏ qua rất nhiều lỗi tiềm ẩn;

Tiếp theo, khi sản phẩm được chuyển sang cho tester, người này sẽ tìm hiểu tài liệu yêu cầu và thực hiện từng trường hợp kiểm thử. Ngoài ra, một vòng kiểm thử tích hợp cũng được thực hiện để đảm bảo rằng logic hoặc chức năng mới được triển khai không phát sinh lỗi cho phiên bản trước đó của sản phẩm;

Những hoạt động testing chi tiết và chuyên sâu như vậy mang lại nhiều lợi thế cho tester và giúp họ nhận diện được nhiều lỗi bị bỏ qua bởi developer, vì tester không tham gia vào giai đoạn code sản phẩm nên họ có cái nhìn đa chiều hơn;

Khi những hoạt động test cơ bản được hoàn thành và những vấn đề phát hiện ra cũng được ghi lại, các kịch bản tự động được tạo và thực thi trong những khoản thời gian định kỳ để đưa ra những giải pháp test toàn diện hơn;

Một tester cũng chịu trách nhiệm thực hiện nhiều loại hình testing khác nhau như test performance, API để loại bỏ những vấn đề tiềm ẩn trong tương lai. Những loại hình test này được lựa chọn phụ thuộc vào loại sản phẩm và yêu cầu của khách hàng.

Vậy thì Tester và Developer nên có tư duy khác nhau không?

Bây giờ chúng ta đã hiểu tổng quan những nhiệm vụ của developer và tester, một câu hỏi được đặt ra: Liệu việc khác biệt trong tư duy giữa tester và developer có phải là tốt? Câu trả lời là: CÓ.

Trong khi mối quan tâm của một developer đó là tìm giải pháp cho vấn đề hiện tại, thì một tester quan tâm tới việc tìm ra lỗi và các lỗ hổng trong sản phẩm. Vì lí do này, nên việc giao trách nhiệm những hoạt động testing chủ yếu cho Tester sẽ là phương thức tốt nhất. Khi một developer test một sản phẩm, một vài kịch bản test có thể bị bỏ sót bởi vì cách tư duy đã được hình thành trước và không thể tách suy nghĩ ra khỏi mã code của họ. Nhưng khi một Tester nắm giữ nhiệm vụ này, họ sẽ có cái nhìn mới mẻ và có cơ hội tìm ra nhiều sai sót hơn.

Sự khác biệt này chính là tư duy kiểm thử phần mềm được đánh giá cao nhất bởi rất nhiều công ty, và hầu hết công ty thường xây dựng những đội ngũ phát triển và kiểm thử sản phẩm riêng biệt.

software-tester-job-da-nang-sioux-high-tech-software

Làm thế nào để hai ‘thế giới’ này hoạt động hiệu quả nhất?

Mặc dù tester và developer có những vai trò khác nhau, cả hai đều nỗ lực để tạo ra những sản phẩm chất lượng nhất. Vì vậy, để hoạt động tối ưu, dưới đây là một số thực hành hai bên có thể bắt đầu:

Việc tìm hiểu yêu cầu dự án nên cần sự tham gia của cả tester và developer. Điều này sẽ giúp developer nhận diện được những ‘nút thắt cổ chai’ trong những yêu cầu từ khách hàng và giúp tester lên kế hoạch hiệu quả hơn;

Khi developer viết unit tests thì nên được kiểm tra lại bởi tester để nâng cao chất lượng kiểm thử;

Thực hiện những hoạt động tester cặp với developer để nhận diện ra lỗi nhanh hơn;

Cùng nhau tạo ra unit test: Điều gì sẽ xảy ra nếu một Tester và một Developer đã viết một bộ unit test cùng nhau? Điều này có thể giúp cả hai hiểu sâu hơn về quan điểm về chất lượng của nhau và hợp tác hiệu quả hơn.

Kết luận

Cuối cùng, mặc dù vai trò của Tester và Developer trong dự án là khác nhau nhưng mục tiêu của họ là như nhau. Nếu cả hai vai trò này tập trung thống nhất vào việc đáp ứng nhu cầu của khách hàng và làm việc trong tinh thần hợp tác, kết quả cuối cùng sẽ tạo ra những sản phẩm chất lượng với tinh thần làm việc nhóm hiệu quả và khắng khít hơn.

Bài viết gốc: http://www.helpingtesters.com/mind-set-difference-testers-developer/

Sioux High Tech Software Ltd.

#We together bring high-tech to life

Address: 10th Floor, Petrolimex Building, 122 2/9 Street, Danang, Vietnam

Email: jobs@sioux.asia

Phone: +84 236 3 888 756



Write Comment...

Name

Email