Software testing là gì? 7 nguyên tắc phải biết trong software testing

Vì ngành software testing chứa rất nhiều kiến thức, bạn có thể bị rối khi tìm hiểu về nó. Vậy hãy để Got It giải đáp giúp bạn software testing là gì cũng như những nguyên tắc cơ bản cần phải biết. Cùng xắn tay áo lên và bắt đầu ghi chép nào!

Software testing là gì?

Software testing (kiểm thử phần mềm) là quá trình đánh giá và kiểm duyệt chất lượng của phần mềm. Nhờ đó, chúng ta có thể giảm thiểu số lượng lỗi cũng như rủi ro vận hành của sản phẩm. Trong quá trình test, các hạng mục, khía cạnh của phần mềm sẽ được đánh giá và dò tìm lỗi. Tester (kiểm thử viên) có thể thực hiện manual test (test thủ công) hoặc test automation (kiểm thử tự động).

Có một quan niệm sai lầm rất phổ biến là kiểm thử chỉ gồm có chạy phần mềm và test. Thực ra, kiểm thử phần mềm bao gồm rất nhiều hoạt động và kỹ thuật test khác nhau. Ở khâu chuẩn bị, bạn phải lập kế hoạch, thực hiện phân tích, tạo test case (trường hợp kiểm thử),… Sau đó thì mới chạy test, báo cáo tiến độ, kết quả đồng thời đánh giá chất lượng sản phẩm.

định nghĩa software testing là gì
Software testing là gì?

Về kỹ thuật kiểm thử, các kỹ thuật dynamic testing (kỹ thuật động) cần phải chạy test khi kiểm thử. Chúng gồm có regression testing (kiểm thử hồi quy), functional testing (test chức năng), system testing (kiểm thử hệ thống),… Ngược lại, những kỹ thuật static testing (kỹ thuật tĩnh) thì không chạy code (mã lệnh) . Ví dụ như code review (đánh giá code), documents inspection (kiểm tra tài liệu), walkthrough (tổng duyệt),…

Có thể nói software testing là sự kết hợp của validation (thẩm định) và verification (kiểm định). Verification là quá trình kiểm tra xem phần mềm có đáp ứng những yêu cầu về kỹ thuật hay chưa. Trong khi đó, validation xác minh tính phù hợp của sản phẩm với yêu cầu nghiệp vụ của khách hàng.

Mục đích của software testing

Mỗi dự án sẽ có những khác biệt về mục tiêu kiểm thử tùy theo nhiều yếu tố khác nhau. Chúng bao gồm phần mềm, hạng mục test, mức độ kiểm thử và vòng đời phát triển của phần mềm. Tuy nhiên, mục đích quan trọng của software testing chủ yếu gồm những điều sau:

  • Ngăn ngừa lỗi bằng cách đánh giá các tài liệu, hạng mục của sản phẩm. Ví dụ: bản mô tả yêu cầu, bản thiết kế, test case, code,…
  • Kiểm tra xem liệu sản phẩm cuối cùng đã đáp ứng tất cả yêu cầu hay không.
  • Đảm bảo phần mềm đã được xây dựng theo đúng thiết kế, có thể vận hành như mong đợi.
  • Gia tăng độ tin cậy về chất lượng sản phẩm.
  • Tìm ra lỗi nhằm giảm thiểu rủi ro về chất lượng sản phẩm.
  • Cung cấp đầy đủ thông tin cho việc đưa ra quyết định về dự án của các bên liên quan.
  • Tuân thủ hợp đồng, pháp luật và quy định về yêu cầu, tiêu chuẩn đối với kiểm thử phần mềm.
  • Xác minh sản phẩm cuối cùng đã đáp ứng những yêu cầu, tiêu chuẩn về phần mềm hay chưa.

7 nguyên tắc “bất di bất dịch” trong software testing

7 nguyên tắc phải biết trong software testing
7 nguyên tắc dựa theo tiêu chuẩn quốc tế hóa ISTQB

Theo chứng chỉ tiêu chuẩn quốc tế hóa ISTQB về software testing, tester phải nắm vững 7 nguyên tắc sau:

1. Kiểm thử chỉ giúp phát hiện lỗi

Nhiệm vụ, vai trò của việc test là chỉ ra các lỗi đang có trong phần mềm. Tuy vậy, kiểm thử không phải là bằng chứng cho việc sản phẩm không có lỗi. Software testing chỉ giúp hạn chế lỗi tiềm ẩn chứ không thể triệt tiêu xác suất phát sinh lỗi.

2. Kiểm thử phải có sàng lọc

Mỗi test case là một tổ hợp input (dữ liệu đầu vào) và precondition (điều kiện tiên quyết) khác nhau. Chỉ cần thay đổi input hoặc precondition là dự án đã có thêm một test case mới hoàn toàn. Do vậy, dù cần thiết hay không, tester vẫn có thể tạo ra rất nhiều test case khi kiểm thử.

kiểm thử phần mềm cần có sàng lọc
Với phần mềm phức tạp, lượng test case có thể lên đến hàng nghìn

Với phần mềm có kiến trúc phức tạp, lượng test case có thể lên đến hàng nghìn hoặc nhiều hơn. Vì rất tốn thời gian và tài nguyên, kiểm thử viên không nên và không thể test toàn bộ chúng. Thay vào đó, tester nên phân tích rủi ro, mức ưu tiên và kỹ thuật kiểm thử của test case. Bước tiếp theo là giới hạn số lượng test case để ước tính chính xác quy mô test.

3. Kiểm thử sớm giúp tiết kiệm thời gian, ngân sách

Trong vòng đời phát triển phần mềm, việc thực hiện kiểm thử nên được bắt đầu càng sớm càng tốt. Nhờ vậy, chúng ta sẽ sớm tìm và vá được lỗi, giảm bớt gánh nặng thời gian lẫn tiền bạc. Việc thực hiện test từ sớm còn được gọi là Shift-left Testing. Cái tên này ám chỉ hướng di chuyển sang trái của việc kiểm thử trên dòng thời gian dự án.

4. Tester nên tập trung tìm các cụm lỗi

Trên thực tế, một số module (mô-đun) thường chứa nhiều lỗi xuất hiện trong lúc test trước khi phát hành. Một vài module khác còn chịu trách nhiệm cho hầu hết các lỗi xuất hiện khi vận hành sản phẩm. Những module này được xem là các cụm lỗi. Khi thấy một hạng mục phần mềm có vài lỗi, tester nên kiểm thử thêm các phần có liên quan.

software tester nên tập trung tìm các cụm lỗi
Khi thấy một hạng mục có lỗi, tester cần phải kiểm thử cả những phần có liên quan.

Bên cạnh đó, kiểm thử viên cũng nên test những hạng mục khác ở gần nó để có thể tìm ra thêm lỗi. Tuy nhiên, tester không được bỏ qua các phần còn lại của sản phẩm hay những lỗi tiềm ẩn khác. Ngoài ra, việc phân tích rủi ro cũng dựa trên số cụm lỗi mà bạn dự đoán hay tìm được.

5. Tester cần đề phòng “nghịch lý thuốc trừ sâu”

Giống như thuốc trừ sâu, test case sẽ không tìm ra lỗi mới khi đã bị dùng quá nhiều lần. Đây chính là “nghịch lý thuốc trừ sâu” – khi thuốc trừ sâu không diệt được sâu bọ. Để phát hiện các lỗi mới, tester phải cập nhật thường xuyên test case cũ và viết test case mới. Tuy nhiên, đôi khi nghịch lý này có thể cung cấp những kết quả có lợi cho việc kiểm thử. Ví dụ: khi chạy automated regression testing (kiểm thử hồi quy tự động) thì lỗi hồi quy tương đối ít.

6. Tester phải kiểm thử đúng kỹ thuật, đúng thời điểm

Mỗi ngữ cảnh kiểm thử sẽ có quy trình, kỹ thuật kiểm thử tương ứng. Do đó, tester phải xem xét ngữ cảnh khi test để quyết định chính xác cách thực hiện kiểm thử. Ví dụ: phần mềm diệt virus sẽ cần kỹ thuật test mà ứng dụng vẽ trên điện thoại không cần.

7. Cái bẫy khó lường của kiểm thử

Nhiều người cho rằng đã test thì phải dùng mọi test case có thể để không bỏ sót lỗi. Đây là quan điểm hoàn toàn sai lầm. Hai nguyên tắc đầu tiên đã chứng minh rằng tester không thể và không nên làm điều đó.

software testing và cái bẫy khó lường
Software testing và cái bẫy khó lường

Hơn nữa, kiểm thử sẽ trở nên vô nghĩa nếu phần mềm không thể vận hành được như yêu cầu. Thành công của dự án phụ thuộc nhiều tiêu chí khác nhau chứ không phải vá hết lỗi là được. Dù không có lỗi nhưng nếu sản phẩm không phù hợp với khách hàng thì nó là một thất bại.

Tóm lại, software testing là quá trình kiểm tra chất lượng trước khi ra mắt sản phẩm cuối cùng. Got It hy vọng bài viết này có thể giúp các bạn nắm vững hơn về khái niệm software testing là gì cũng như mục đích và nguyên tắc của nó.

Theo EdurekaToolsqa

Nếu bạn quan tâm, hãy xem các vị trí đang tuyển dụng của Got It tại: bit.ly/gotit-hanoi và đọc thêm về quy trình tuyển dụng tại đây.

https://vn.got-it.ai/blog/wp-content/uploads/2021/04/1_QAG9RXQyyMAY7i9OYo84FA.png
Got It Vietnam
February 23, 2021
Share this post to:
Tags:
0 Comments
Inline Feedbacks
View all comments
Các bài viết liên quan
Những câu hỏi thường gặp khi phỏng vấn Test Engineer

Những câu hỏi thường gặp khi phỏng vấn Test Engineer

Chìa khoá ôn tập giúp bạn “công phá” vòng phỏng vấn QA Engineer tại Got It
Cách tạo test plan cho sản phẩm hoặc tính năng mới

Cách tạo test plan cho sản phẩm hoặc tính năng mới

Nếu bạn đã hiểu test plan là gì, hẳn là bạn sẽ muốn biết cách tạo test plan hoàn chỉnh cho sản phẩm hoặc tính năng mới. Hãy cùng Got It tìm hiểu 5 bước cần thiết cho một test plan hoàn chỉnh. Mục lục1. Phân tích sản phẩm hoặc tính năng bạn đang thử […]
Tìm hiểu những tiêu chí đánh giá chất lượng phần mềm

Tìm hiểu những tiêu chí đánh giá chất lượng phần mềm

Bất cứ một phần mềm nào được đưa ra thị trường đều được đánh giá chất lượng dựa trên những tiêu chí nhất định. Hãy cùng tìm hiểu xem chất lượng phần mềm là gì? Và làm thế nào để đánh giá chính xác được chất lượng của một phần mềm hiện nay. Mục lụcChất […]
Tester là ai? 3 điều cần nắm vững khi tìm hiểu về tester

Tester là ai? 3 điều cần nắm vững khi tìm hiểu về tester

Trên đà phát triển công nghiệp 4.0, nghề tester ngày càng trở nên hot. Cũng vì thế mà càng có nhiều người bắt đầu tìm hiểu về tester hơn. Bài viết hôm nay sẽ tập trung giải đáp thắc mắc của bạn về nghề tester và một số điều cần nắm vững khi muốn làm […]
Top 8 website tự học tester miễn phí (updated 2021)

Top 8 website tự học tester miễn phí (updated 2021)

Ở bài viết này, Got It sẽ giới thiệu top 8 website tự học tester miễn phí tốt nhất. Với nguồn tài liệu phong phú và chất lượng, các website này chính là những gì bạn cần để chinh phục nghề tester. > QA tester là gì? Kỹ năng cần có và lộ trình sự […]
Test script là gì? 6 bước chuyển test case thành test script

Test script là gì? 6 bước chuyển test case thành test script

Trong bài viết trước, chúng ta đã hiểu test case là gì và cách viết test case hoàn chỉnh. Hôm nay, Got It sẽ giúp bạn hiểu test script là gì và cách dựng test script từ test case. Cùng bắt đầu nhé! Mục lụcTest script là gì?6 bước biến test case thành test script1. […]