Tôi chưa từng gặp một lập trình viên nào, người mà có thể code một cách hoàn hoản. Tôi không nghĩ kiểu người đó tồn tại.

Đã từng có một thời gian tôi ghét phải kiểm thử phần mềm. Nó chẳng quan trọng với tôi. Và tôi cũng chẳng thấy mục đích gì cả. Nó dường như chỉ làm tốn công sức và tiền bạc.

Trong suốt sự nghiệp của mình, tôi chưa bao giờ được học như thế nào và tại sao tôi nên kiểm thử lại phầm mềm của tôi. Tôi đã viện ra rất nhiều lý do vì tôi không muốn học. Tôi cũng nói chuyện với những lập trình viên khác, những người cũng chẳng muốn học như tôi. Tới bây giờ, họ vẫn đưa ra những lý do đấy. Cuối cùng tôi đã học, nhưng họ thì vẫn chưa.

Trong suốt thời gian làm việc với những người khác, tôi được chứng kiến rất nhiều các góc nhìn khác nhau về việc kiểm thử phần mềm. Dưới đây là một số lý do phổ biến mà người ta bỏ qua kiểm thử.

Code của tôi chạy ngon rồi, tôi còn phải kiểm thử làm gì nữa ?

Tôi chưa từng gặp một lập trình viên nào, người mà có thể code một cách hoàn hoản. Tôi không nghĩ kiểu người đó tồn tại.

Lấy ví dụ những công ty công nghệ  lớn nhất thế giới đi. Google, Facebook ... Họ thuê được những lập trình viên bậc thầy trên thế giới. Nhưng họ vẫn mắc sai lầm đó thôi.

Lời phản hồi của tôi với những người tự tin tuyên bố code của họ hoàn hảo : "Tại sao bạn biết code của bạn chạy hoàn hoản? Bạn thử test nó chưa? Bạn có thể test nó ngay bây giờ và cho tôi biết nó đang chạy hoàn hảo"

Nhưng tôi không biết test cái gì bây giờ?!

Test tất cả, ngoại trừ các thư viện sử dụng bên ngoài vì chúng đã có test riêng của chúng rồi.

Tôi sẽ trích lại câu trả lời từ StackExchange bởi vì nó rất hợp lý:

  1. Test mọi trường hợp phổ biến nhất mà bạn có thể nghĩ tới. Điều này sẽ giúp bạn biết được code sẽ bị hỏng khi bạn thay đổi gì đó.
  2. Test vài trường hợp đặc biệt ở những đoạn code phức tạp mà bạn nghi ngờ có thể xảy ra lỗi.
  3. Bất cứ khi nào có bug xảy ra, hãy viết test case cho trường hợp đó trước khi fix.
  4. Viết thêm test cho những trường hợp đặc biệt ở những đoạn code ít quan trọng khi bạn rảnh.

Thực sự nó rất khó để biết bắt đầu từ đâu khi bạn mới tham gia vào thế giới kiểm thử phần mềm. Có rất nhiều loại test khác nhau, nhưng tôi có thể khuyến nghị việc bắt đầu với: Unit Testing, Integration TestingRegression Testing.

Trong trường hợp bạn muốn tìm hiểu kỹ tất cả các loại test, bạn có thể tham khảo thêm ở đây.

Điều quan trọng là việc khiến testing là điều cần thiết, không phải là tuỳ chọn.

Testing tốn thời gian

Đây là một quan niệm sai lầm cơ bản.

Bất cứ ai mới bắt đầu testing sẽ đấu tranh vì điều này. Vùng đất mới chưa được khám phá, khiến bạn không thoải mái. Là con người, điều đó hoàn toàn bình thường.

Trong giai đoạn đầu, nó sẽ tốn kha khá thời gian. Gắn bó với nó, học hỏi thêm, và dần dần nó sẽ trở thành ngôn ngữ thứ hai của bạn. Hãy gắn liền với nó trong quy trình phát triển phần mềm của bạn để nó dần trở thành một thói quen.

Viết test tiết kiệm được rất nhiều thời gian và công sức khi bạn làm việc lâu dài. Việc chạy lệnh test để xác thực mọi thứ đều chạy trơn tru khiến bạn tự tin hơn khi triển khai ứng dựng lên môi trường production. Giả sử có lỗi gì xảy ra, bạn cũng dễ dàng nắm được nơi gây ra lỗi.

Tài liệu nghiên cứu thêm

Nếu bạn là người mới hoặc muốn học thêm về testing, đây là những tài liệu tuyệt vời bạn nên tham khảo.

Nguồn: Common Excuses Why Developers Don’t Test Their Software