Kiểm thử (Test) là một quá trình đánh giá một hệ thống hay là các thành phần của nó với mục đích là xác định xem nó có thỏa mãn những yêu cầu được đưa ra hay không. Hiểu một cách đơn giản, kiểm thử – test là chạy một chương trình để xác nhận bất kì lỗ hổng, lỗi sai hay những yêu cầu bị bỏ quên, những yêu cầu không đúng so với yêu cầu thực tế đề ra.
Ai sẽ là người test ?
Chắc chắn các bạn sẽ nghĩ ngay là người được phân công làm công việc kiểm thử rồi đúng không! Đương nhiên điều đó là chính xác! Nhưng nếu câu trả lời đơn giản như vậy thì mình sẽ không đưa nó nào trong Blog này!
Sự Thật là: Việc ai là người test phụ thuộc vào quy trình và các bên liên quan đến dự án. Trong ngành công nghiệp phần mềm, những công ty lớn có một team chuyên chịu trách nhiệm việc đánh giá phần mềm đã phát triển với những yêu cầu được chỉ định từ trước. Hơn thế nữa, nhân viên phát triển phần mềm – developer cũng tiến hành kiểm thử – test sản phẩm, và việc đó được gọi là unit testing. Trong hầu hết các trường hợp, người kiểm thử – tester có thể là :
- Software Tester – Nhân viên kiểm thử phần mềm
- Software Developer – Nhân viên phát triển phần mềm
- Leader hoặc Manager của dự án
- User – Người sử dụng cuối cùng
Mình là Software Tester nhưng các bạn thấy đấy mình không phải là người duy nhất thực hiện công việc test! Nên các bạn đừng ngạc nhiên khi bạn không phải là người duy nhất tìm thấy Bug (lỗi) nhé các bạn new tester!
Khi nào chúng ta bắt đầu test ?
Việc kiểm thử – test sớm sẽ giúp giảm chi phí và thời gian để xây dựng lại và sửa lỗi để bàn giao sản phẩm phần mềm. Nên đương nhiên là càng sớm càng tốt rồi!!
Tuy nhiên trong một vòng đời của phần mêm, việc kiểm thử – test nên được bắt đầu từ khi có những yêu cầu từ phía khách hàng và được kéo dài đến cho đến khi triển khai phần mềm. Thời điểm bắt đầu kiểm thử còn phụ thuộc vào mô hình phát triển phần mềm đang được sử dụng.
Ví dụ như: trong mô hình thác nước – waterfall model, kiểm thử – test chính thức được thực hiện ở giai đoạn kiểm thử – testing phase. Nhưng ở trong mô hình gia tăng – incremental model, kiểm thử được thực hiện ở cuối mỗi chu kỳ con và kiểm thử cho toàn bộ sản phẩm được thực hiện ở giai đoạn cuối khi hoàn thiện sản phẩm.
Khi nào thì dừng việc test ?
Có phải là sẽ dừng khi test được 100% hiệu quả ? Để trả lời được câu hỏi này trước hết chúng ta phải trả lời được câu hỏi : Liệu có thể tìm thấy mọi khiếm khuyết trong các phần mềm?
Sự Thật là hầu hết các phần mềm phức tạp và có một phạm vi kiểm thử rất lớn. Nó không phải là không thể tìm thấy tất cả các khiếm khuyết trong phần mềm nhưng nó được thực hiện mãi mãi.Ngay sau khi phát hiện nhiều lỗi trong phần mềm và sửa lỗi, không ai thực sự có thể đảm bảo rằng phần mềm sẽ hoàn thành. Và đương nhiên, chúng ta không có thể tự tin nói rằng chúng tôi đã hoàn thành việc kiểm thử, tìm thấy tất cả các khiếm khuyết trong phần mềm và nó không có bất kỳ lỗi nào nữa.
Vậy Dừng việc kiểm thử phần mềm lại khi tất cả các khiếm khuyết được tìm thấy: Điều này là có thể hay không?
Câu trả lời là: mục đích của kiểm thử không phải là tìm thấy khiếm khuyết trong phần mềm. Mục đích của kiểm thử phần mềm là để chứng minh rằng các phần mềm không làm việc như dự định bằng cách phá vỡ nó hoặc tìm độ lệch giữa kết quả hành vi của người dung và kết quả mà họ mong đợi.
Có những khuyết tật không giới hạn trong phạm vi phần mềm và do đó thực tế là không thể thực hiện việc kiểm thử cho đến khi tất cả các khuyết tật được tìm thấy như thể chúng ta không bao giờ có thể biết được đâu là lỗi cuối cùng của phần mềm. Sự thật là chúng ta không thể phụ thuộc vào việc tìm kiếm tất cả các khiếm khuyết trong phần mềm để kết luận sản phẩm đã hoàn chỉnh hay chưa.
Thật tình mà nói, kiểm thử phần mềm là chu kỳ vô tận và việc kiểm thử sẽ tiếp tục cho đến khi có quyết định khi nào và dừng lại ở đâu. Để đi đến một quyết định ngừng việc kiểm thử phải trải qua nhiều công đoạn rất phức tạp.
Nếu “dừng lại khi tất cả các khiếm khuyết được tìm thấy” không phải là tiêu chí để ngừng kiểm thử phần mềm thì đâu là cơ sở đi đến quyết định này?
Rất khó để xác định khi nào thì dừng kiểm thử – test, vì test là quá trình ko bao giờ kết thúc và không ai có thể yêu cầu phần mềm được test 100%. Các khía cạnh dưới đây có thể được cân nhắc cho việc dừng lai quy trình test:
- Hạn chót phát triển phần mềm – deadline.
- Đã thực hiện hết các testcase được đề ra.
- Hoàn thiện các chức năng và toàn bộ code đã đảm bảo được các yêu cầu đề ra.
- Tỷ lệ bug phải trong giới hạn mong muốn.
- Không có những bug nghiêm trọng
- Quyết định của quản lý dự án
Trên đây là những câu hỏi mà mình cảm thấy nó khá là đơn giản nhưng việc hiểu được nó lại khá phức tạp-cùng với những suy nghĩ và lập luận của mình! Đừng ngần ngại tìm hiểu và trao dồi thêm thông tin nhé! Vì kiến thức là kho tàng quý báu nhất của nhân loại mà!
Nếu có bất kỳ thắc mắc và góp ý nào, hãy liên hệ với chúng tôi! Labian Labs!!
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink