Trang chủ » Software Testing là gì? Khái niệm cơ bản

Software Testing là gì? Khái niệm cơ bản

Admin
Software Testing là gì? Chắc hẳn đây là cụm từ xuất hiện nhiều nhất trong các quá trình tạo ra một sản phẩm phần mềm. Bài viết này sẽ cung cấp cho bạn cái nhìn tổng quan về, hỗ trợ quá trình tìm hiểu và tiếp cận nhanh hơn với lĩnh vực của Software Testing hay còn gọi là kiểm thử phần mềm.

Software Testing là gì?

Software Testing

Software Testing

Software Testing – Kiểm thử phần mềm là quá trình xác minh và xác thực xem phần mềm, ứng dụng không có lỗ, đáp ứng các yêu cầu kỹ thuật như được hướng dẫn bởi thiết kế, phát triển và đáp ứng các yêu cầu của người dùng một cách hiệu quả bằng cách xử lý tất cả các trường hợp ngoại lệ và biên. Quá trình kiểm thử phần mềm không chỉ nhằm mục đích tìm ra các lỗi trong phần mềm hiện có mà còn nhằm tìm ra các biện pháp cải thiện phần mềm hiệu quả, độ chính xác và khả năng sử dụng. Nó chủ yếu nhằm mục đích đo lường đặc điểm kỹ thuật, chức năng và hiệu suất của một chương trình hoặc ứng dụng phần mềm Software Testing có thể được chia thành 2 bước:
  • Xác minh: đề cập đến tập hợp các nhiệm vụ đảm bảo rằng phần mềm thực hiện chính xác một chức năng cụ thể
  • Xác thực: đề cập đến các nhiệm vụ khác nhau để đảm bảo rằng phần mềm đã được xây dựng có thể thực hiện được các yêu cầu của khách hàng

Các loại kiểm thử phần mềm khác nhau

Kiểm thử thủ công – Manual Testing: Bao gồm kiểm thử phần mềm theo cách thủ công, tức là không sử dụng công cụ tự động hoặc tệp lệnh nào. Trong loại kiểm thử này, người kiểm thử đảm nhận vai trò người dùng cuối và kiểm tra phần mềm để xác định lỗi không mong muốn. Có các giai đoạn khác nhau để kiểm thử thủ công như: kiểm thử đơn vị, tích hợp, hệ thống và kiểm thử chấp nhận người dùng. Ưu điểm: 
  • Dễ dàng cho việc test giao diện, người tester sẽ có phản hồi nhanh và trực quan về giao diện ứng dụng.
  • Mất ít chi phí cho các tool tự động và quy trình.
  • Khi có thay đổi nhỏ manual testing manual testing không bị mất nhiều thời gian để thay đổi các trường hợp kiểm thử.
Nhược điểm:
  • Kết quả kiểm thử ít tin cậy hơn vì có thể sai sót do yếu tố con người.
  • Quá trình thực hiện các ca kiểm thử không được ghi lại, do vậy nó không có tính tái sử dụng.
  • Với một số task khó thực hiện thủ công như performance testing và stress testing thì manual testing rất khó để thực hiện.
Các loại kiểm thử phần mềm Kiểm thử tự động – Automation Testing: Quá trình này liên quan đến việc tự động hóa quy trình kiểm thử thủ công. Kiểm thử tự động được sử dụng để chạy lại các kịch bản kiểm thử một cách nhanh chóng và lặp lại, được thực hiện thủ công trong kiểm thử thủ công. Ưu điểm :
  • Sử dụng tool tự động giúp tìm kiếm được nhiều lỗi hơn. Automation testing nhanh và hiệu quả. Quá trình kiểm thử được ghi lại, điều đó giúp chạy lại kịch bản kiểm thử nhiều lần và thực hiện trên nhiều nền tảng khác nhau, thực hiện bằng các công cụ phần mềm, do đó nó hoạt động không mệt mỏi không giống như người kiểm thử tester.
  • Automation testing năng suất và chính xác. Phạm vi kiểm thử rộng vì kiểm tra tự động không quên kiểm tra ngay cả đơn vị nhỏ nhất.
Nhược điểm:
  • Rất khó có cái nhìn đúng và trực quan về giao diện người dùng như màu sắc, font chữ, vị trí, kích thước các button nếu như không có yếu tố con người. Chi phí cho các tool kiểm thử có thể tốn kém, có thể làm tăng chi phí trong khâu kiểm thử của dự án.
  • Nếu có một thay đổi nhỏ cũng sẽ mất thời gian để update kịch bản kiểm thử.

Các loại kỹ thuật kiểm thử phần mềm

Các kỹ thuật kiểm thử phần mềm có thể được chia thành hai loại:
  • Kiểm thử hộp đen: Là kỹ thuật kiểm thử trong đó người kiểm thử không có quyền truy cập vào mã nguồn của phần mềm và được tiến hành tại giao diện phần mềm mà không cần quan tâm đến cấu trúc logic bên trong.
  • Kiểm thử hộp trắng: Là kỹ thuật kiểm thử trong đó người kiểm thử nhận thức được hoạt động bên trong của sản phẩm, có quyền truy cập vào mã nguồn và được tiến hành bằng cách đảm bảo rằng tất cả các hoạt động nội bộ được thực hiện theo các thông số kỹ thuật đã biết.

Các cấp độ khác nhau của kiểm thử phần mềm

Kiểm thử phần mềm có thể được phân loại chính thành 4 cấp độ: 
  • Kiểm thử đơn vị: Một cấp độ của quá trình kiểm thử phần mềm trong đó các đơn vị/ thành phần riêng lẻ của một phần mềm / hệ thống được kiểm thử. Mục đích là để xác nhận rằng mỗi đơn vị của phần mềm hoạt động như thiết kế đề ra.
  • Kiểm thử tích hợp: Một cấp độ của quá trình kiểm thử phần mềm trong đó các đơn vị riêng lẻ được kết hợp và kiểm thử như một nhóm. Mục đích của mức độ kiểm thử này là để lộ ra các lỗi trong tương tác giữa các đơn vị tích hợp. 
  • Kiểm thử hệ thống: Một cấp độ của quá trình kiểm thử phần mềm trong đó một hệ thống / phần mềm tích hợp, hoàn chỉnh được kiểm tra. Mục đích của kiểm thử này là để đánh giá sự tuân thủ của hệ thống với các yêu cầu quy định. 
  • Kiểm thử chấp nhận: Một cấp độ của quá trình kiểm thử phần mềm trong đó hệ thống được kiểm thử khả năng chấp nhận. Mục đích của quá trình này là để đánh giá sự tuân thủ của hệ thống với các yêu cầu nghiệp vụ và đánh giá xem liệu nó có được chấp nhận để cung cấp tới người dùng hay không.

Mục đích của Software Testing là gì?

  • Tìm kiếm lỗi/ Finding defects
  • Đảm bảo được một mức độ chất lượng/ Gaining confidence about the level of quality
  • Cung cấp thông tin để đưa ra quyết định/ Providing information for decision-making
  • Ngăn ngừa lỗi/ Preventing defects

Các nguyên tắc kiểm  thử phần mềm 

  • Kiểm tra sự hiện diện của lỗi/ Testing shows presence of defect
  • Kiểm tra toàn bộ là không thể/ Exhaustive testing is impossible
  • Thực hiện kiểm thử sớm/ Early testing
  • Phân loại lỗi/ Defect clustering
  • Phương pháp thuốc trừ sâu/ Pesticide paradox
  • Kiểm thử phụ thuộc vào bối cảnh/ Testing is context dependent
  • Sự vắng mặt của lỗi/ Absence of error fallacy

Các giai đoạn của Software Testing

  • Nhận yêu cầu đặc tả của khách hàng và phân tích yêu cầu
  • Lập kế hoạch kiểm thử
  • Thiết kế Test Case/ test design
  • Tiến hành các Test Case
  • Báo cáo lỗi, báo cáo kết quả kiểm thử

Ưu điểm của nghề Software testing

  • Được tiếp cận , cập nhật những công nghệ, Kỹ thuật mới nhất
  • Làm việc với các team khác nhau tùy từng dự án giúp bạn phát huy khả năng cũng như học tập cách làm việc nhóm
  • Là một nghề có thu nhập tốt và cơ hội phát triển nghề nghiệp nhanh chóng
  • Nghề đầy thách thức và nhiều ý nghĩa
  • Software là nghề rất cần thiết, nó đề cao tính sáng tạo, khả năng phân tích và trí tuệ
  • Không có Software testing thì không có software
  • Đem sự hài lòng của khách hàngCơ hội phát triển và chế độ đãi ngộ tốt.
5/5 - (2 bình chọn)
Từ khóa:
Bình luận
Đăng ký nhận ưu đãi hấp dẫn
Đăng ký nhận ưu đãi hấp dẫn

    Icon Phone Icon Zalo