Kiểm thử phần mềm và mô hình chữ V
Kiểm thử phần mềm (tiếng Anh: Software testing) là một cuộc kiểm tra được tiến hành để cung cấp cho các bên liên quan thông tin về chất lượng của sản phẩm hoặc dịch vụ được kiểm thử. Kiểm thử có thể cung cấp cho doanh nghiệp một quan điểm, một cách nhìn độc lập về phần mềm để từ đó cho phép đánh giá và thấu hiểu được những rủi ro trong quá trình triển khai phần mềm.
1. Kiểm thử là gì? Testing là gì?
Kiểm thử hay còn gọi là testing, là quá trình đánh giá một hệ thống hay các thành phần của nó với mục đích tìm xem liệu hệ thống có đáp ứng các yêu cầu được đã được chỉ định hay không. Nói một cách đơn giản, kiểm thử được thực hiện trên một hệ thống để xác định bất kỳ lỗ hổng, các lỗi hoặc các yêu cầu đang bị thiếu hay trái ngược với các yêu cầu thực tế đã được đề ra.
Theo tiêu chuẩn ANSI / IEEE 1059, kiểm thử có thể được định nghĩa là quá trình phân tích các thành phần của phần mềm để phát hiện sự khác biệt giữa những điều kiện của phần mềm đang tồn tại thực tế và những điều kiện được yêu cầu (đó là defects/ errors/ bugs) và từ đó có thể đánh giá được chất lượng của chất lượng của phần mềm.
2. Ai là người kiểm thử? Tester là gì?
Người kiểm thử hay còn gọi là tester, họ là những người có nhiệm vụ tìm ra lỗi của phần mềm, điều này sẽ phụ thuộc vào quy trình và các bên liên quan trong dự án. Trong ngành Công nghiệp phần mềm, các công ty lớn có đội ngũ chuyên chịu trách nhiệm đánh giá phần mềm phát triển trong bối cảnh các yêu cầu đã được đề ra trước đó. Hơn nữa, các nhà phát triển (deverloper) cũng tiến hành kiểm thử được gọi là Kiểm thử Đơn vị (Unit Testing). Trong hầu hết các trường hợp, các chuyên gia kiểm thử cho một hệ thống trong phạm vi năng lực tương ứng của họ có thể là:
Bài viết được đăng tại freetuts.net
- Software Tester – Nhân viên kiểm thử phần mềm, còn gọi là QC ( Quality control )
- Software Developer – Nhân viên phát triển phần mềm
- Project Lead/Manager - Leader hoặc Manager của dự án
- End User - Người dùng cuối cùng
Các công ty khác nhau cũng sẽ có các quy định khác nhau về tên gọi của người kiểm thử phần mềm dựa trên kinh nghiệm và kiến thức của họ như Software Tester – Nhân viên kiểm thử phần mềm, Software Quality Assurance Engineer - Kĩ sư đảm bảo chất lượng phần mềm, QA Analyst – Nhân viên phân tích chất lượng phần mềm...
Không thể kiểm thử bất kỳ lúc nào trong chu kỳ phát triển phần mềm. Hai phần tiếp theo nêu ra khi nào bắt đầu và kết thúc quá trình kiểm thử trong vòng đời phát triển hệ thống.
3. Khi nào bắt đầu kiểm thử?
Kiểm thử sớm làm 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 cho khách hàng. Tuy nhiên trong quy trình phát triền phần mềm, kiểm thử có thể bắt đầu từ giai đoạn từ khi có những yêu cầu từ khách hang 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 được sử dụng. Ví dụ: trong mô hình Thác nước (Waterfall Model), kiểm thử chính thức được tiến hành ở giai đoạn Kiểm thử (testing phase). Nhưng trong mô hình Gia tăng (Incremental Model), kiểm thử được tiến hành ở cuối mỗi chu kỳ con. Kiểm thử cho toàn bộ sản phẩm phần mềm được thực hiện vào giai đoạn cuối khi hoàn thiện sản phẩm.
Kiểm thử được thực hiện theo nhiều dạng khác nhau ở mỗi giai đoạn trong vòng đời phát triển phầm mềm:
- Trong quá trình thu thập yêu cầu (Requirement Gathering Phase), việc phân tích và xác minh yêu cầu cũng được coi là kiểm thử.
- Trong giai đoạn thiết kế (Design Phase), rà soát các 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à kiểm thử.
- Kiểm thử được thực hiện bởi lập trình viên khi hoàn thành code cũng được coi là kiểm thử.
4. Khi nào kết thúc kiểm thử?
Rất khó để xác định thời điểm kết thúc kiểm thử, vì kiểm thử là quá trình không có điểm kết thúc và không ai có thể đảm bảo rằng phần mềm đã được kiểm tra 100%. Các điểm sau đây có thể được xem là thời điểm kết thúc kiểm thử:
- Thời hạn hoàn thành kiểm thử (Testing Deadlines).
- Thực thi tất cả các testcase đã đề ra.
- Hoàn thành các chức năng và bao phủ toàn bộ các yêu cầu đã được đề ra.
- Tỉ lệ lỗi ở dưới một mức nhất định và không có lỗi nghiêm trọng nào được tìm thấy.
- Quyết định của người quản lý dự án.
5. Phân biệt Xác minh (Verification) & Xác nhận (Validation)
Có 2 khái niệm hay bị nhầm lẫn và thường được sử dụng thay thế cho nhau. Dưới đây là bảng cho thấy sự khác nhau của xác minh và xác nhận:
STT | Xác minh | Xác nhận |
---|---|---|
1 | Diễn tả sự quan tâm: "Are you building it right?" (Bạn đang xây dựng nó phải không?) | Diễn tả sự quan tâm: "Are you building the right thing?" (Bạn đang xây dựng là đúng đắn?) |
2 | Đảm bảo phần mềm đáp ứng tất cả các chức năng. | Đảm bảo các chức năng đáp ứng đúng với các hành vi dự định, có trong yêu cầu đã đề ra. |
3 | Việc xác minh cần phải là đầu tiên và bao gồm việc kiểm tra tài liệu, code, v.v... | Xác nhận xảy ra sau khi xác minh và phần chính liên quan đến kiểm tra tổng thể. |
4 | Hoàn thành bởi Developer. | Hoàn thành bởi Tester. |
5 | Có các hoạt động tĩnh vì bao gồm thu thập các đánh giá, hướng dẫn và kiểm tra xác minh một phần mềm. | Là các hoạt động động vì bao gồm việc thực thi lại các yêu cầu của phần mềm. |
6 | Là một quá trình khách quan và không quyết định chủ quan để xác minh phần mềm | Là quá trình chủ quan và bao gồm các quyết định chủ quan về các thức hoạt động của phần mềm. |
Trong các mô hình kiểm thử có V model, mô hình rất phổ biến và nâng cao chất lượng sản phẩm, giảm thiểu rủi ro và chi phí trong quá trình phát triển phần mềm
Mô hình chữ V (V Model)
Để giải quyết vấn đề từ mô hình thác nước, mô hình chữ V được phát triển trong đó ở mỗi giai đoạn phát triển là giai đoạn kiểm thử được thực hiện tương ứng
- Bên trái của mô hình là vòng đời phát triển phần mềm - SDLC
- Toàn bộ hình trông giống chữ V, do đó có tên là V model
Ngoài mô hình V, còn có các mô hình phát triển iterative trong đó hoạt động phát triển được thực hiện theo từng giai đoạn, với mỗi giai đoạn thực hiện thêm một chức năng cho phần mềm. Mỗi giai đoạn bao gồm tập hợp của các hoạt động phát triển và thử nghiệm.
Trong quá trình phát triển phần mềm nói chung cũng như thiết kế web và triển khai xuống giai đoạn coding thì khâu kiểm thử rất quan trong9 để đảm bảo đúng yêu cầu và chất lượng sản phẩm như khách hàng yêu cầu. Công ty TNHH Vinaspar luôn tự hào có đội ngũ QC / kiểm thử chuyên nghiệp hơn 10 năm kinh nghiệm với nhiều kỹ năng về kiểm thử từ thủ công tới tự động bằng code.
Bạn có thể tham khảo thêm https://www.slideshare.net/TIenLe39/kiem-thu-phan-mem