Kiểm thử phần mềm - Tổng quan
Thử nghiệm là gì?
Kiểm tra là quá trình đánh giá một hệ thống hoặc (các) thành phần của nó với mục đích tìm xem liệu nó có đáp ứng các yêu cầu đã chỉ định hay không. Nói một cách dễ hiểu, kiểm thử là thực thi một hệ thống nhằm xác định bất kỳ khoảng trống, lỗi hoặc yêu cầu nào còn thiếu trái với yêu cầu thực tế.
Theo tiêu chuẩn ANSI / IEEE 1059, Kiểm thử có thể được định nghĩa là - Một quá trình phân tích một mục phần mềm để phát hiện sự khác biệt giữa các điều kiện hiện có và điều kiện bắt buộc (đó là các khiếm khuyết / lỗi / lỗi) và để đánh giá các tính năng của mục phần mềm.
Ai làm thử nghiệm?
Nó phụ thuộc vào quá trình và các bên liên quan liên quan của (các) dự án. Trong ngành CNTT, các công ty lớn có một nhóm chịu trách nhiệm đánh giá phần mềm được phát triển theo các yêu cầu nhất định. Hơn nữa, các nhà phát triển cũng tiến hành thử nghiệm được gọi làUnit Testing. Trong hầu hết các trường hợp, các chuyên gia sau đây tham gia vào việc thử nghiệm một hệ thống trong phạm vi năng lực của họ -
- Phần mềm thử nghiệm
- Người phát triển phần mềm
- Trưởng nhóm / Quản lý dự án
- Người dùng cuối
Các công ty khác nhau có các chỉ định khác nhau cho những người kiểm tra phần mềm dựa trên kinh nghiệm và kiến thức của họ, chẳng hạn như Kiểm thử viên phần mềm, Kỹ sư đảm bảo chất lượng phần mềm, Nhà phân tích QA, v.v.
Không thể kiểm tra phần mềm bất kỳ lúc nào trong chu kỳ của nó. Hai phần tiếp theo cho biết khi nào nên bắt đầu kiểm tra và khi nào thì kết thúc trong SDLC.
Khi nào bắt đầu thử nghiệm?
Việc bắt đầu thử nghiệm sớm giúp giảm chi phí và thời gian để làm lại và tạo ra phần mềm không có lỗi được giao cho khách hàng. Tuy nhiên, trong Vòng đời phát triển phần mềm (SDLC), việc kiểm thử có thể được bắt đầu từ giai đoạn Thu thập yêu cầu và tiếp tục cho đến khi triển khai phần mềm.
Nó cũng phụ thuộc vào mô hình phát triển đang được sử dụng. Ví dụ, trong mô hình Waterfall, thử nghiệm chính thức được tiến hành trong giai đoạn thử nghiệm; nhưng trong mô hình tăng dần, kiểm tra được thực hiện ở cuối mỗi lần tăng / lặp và toàn bộ ứng dụng được kiểm tra ở cuối.
Thử nghiệm được thực hiện ở các hình thức khác nhau ở mọi giai đoạn của SDLC -
Trong giai đoạn thu thập yêu cầu, việc phân tích và xác minh các yêu cầu cũng được coi là thử nghiệm.
Xem xét thiết kế trong giai đoạn thiết kế với mục đích cải thiện thiết kế cũng được coi là thử nghiệm.
Thử nghiệm do nhà phát triển thực hiện khi hoàn thành mã cũng được phân loại là thử nghiệm.
Khi nào thì dừng thử nghiệm?
Rất khó để xác định khi nào nên dừng thử nghiệm, vì thử nghiệm là một quá trình không bao giờ kết thúc và không ai có thể khẳng định rằng một phần mềm đã được thử nghiệm 100%. Các khía cạnh sau đây sẽ được xem xét để dừng quá trình thử nghiệm:
Thời hạn kiểm tra
Hoàn thành việc thực thi trường hợp thử nghiệm
Hoàn thành phạm vi chức năng và mã đến một điểm nhất định
Tỷ lệ lỗi giảm xuống dưới một mức nhất định và không có lỗi có mức độ ưu tiên cao nào được xác định
Quyết định quản lý
Xác minh & Xác thực
Hai thuật ngữ này rất khó hiểu đối với hầu hết mọi người, những người sử dụng chúng thay thế cho nhau. Bảng sau đây nêu bật sự khác biệt giữa xác minh và xác thực.
Sr.No. | xác minh | Thẩm định |
---|---|---|
1 | Xác minh giải quyết mối quan tâm: "Bạn có đang xây dựng nó đúng không?" | Xác thực giải quyết mối quan tâm: "Bạn có đang xây dựng đúng không?" |
2 | Đảm bảo rằng hệ thống phần mềm đáp ứng tất cả các chức năng. | Đảm bảo rằng các chức năng đáp ứng hành vi dự định. |
3 | Việc xác minh diễn ra đầu tiên và bao gồm việc kiểm tra tài liệu, mã, v.v. | Việc xác nhận xảy ra sau khi xác minh và chủ yếu liên quan đến việc kiểm tra tổng thể sản phẩm. |
4 | Do các nhà phát triển thực hiện. | Thực hiện bởi người thử nghiệm. |
5 | Nó có các hoạt động tĩnh, vì nó bao gồm thu thập các bài đánh giá, hướng dẫn và kiểm tra để xác minh một phần mềm. | Nó có các hoạt động động, vì nó bao gồm việc thực thi phần mềm theo yêu cầu. |
6 | Đó là một quá trình khách quan và không cần quyết định chủ quan để xác minh một phần mềm. | Đó là một quá trình chủ quan và liên quan đến các quyết định chủ quan về cách thức hoạt động của một phần mềm. |