Hits: 219
Trong thế giới của Testing có rất nhiều loại kiểm thử phần mềm khác nhau. Mỗi một loại có nhiệm vụ khác nhau và cùng bổ sung , mang lại lợi ích là đạt chất lượng phần mềm, do đó không nên so sánh loại nào tốt hơn. Bài viết sau đây nêu các loại kiểm thử phần mềm điển hình và công dụng của chúng.
NỘI DUNG CHÍNH
1. Component Testing
Component Testing được định nghĩa là một loại kiểm thử phần mềm, trong đó kiểm thử được thực hiện trên từng thành phần riêng lẻ một cách riêng biệt mà không tích hợp với các thành phần khác. Component Testing còn được gọi là Kiểm thử đơn vị, Kiểm thử chương trình hoặc kiểm thử module.
2. Intergration Testing
Một phần mềm được tạo ra sẽ bao gồm rất nhiều module trong đó, để chắc chắn rằng phần mềm hoạt động tốt thì chúng ta cần phải gom các module lại với nhau để kiểm tra sự giao tiếp giữa các module cũng như bản thân từng thành phần từng module.. Kiểm thử tích hợp bao gồm 2 mục tiêu chính là :
- Phát hiện lỗi giao tiếp xảy ra giữa các Unit.
- Tích hợp các Unit đơn lẻ thành các hệ thống nhỏ và cuối cùng là 1 hệ thống hoàn chỉnh để chuẩn bị cho bước kiểm thử hệ thống ( System test).

3. Incremental Testing
Khi thực hiện kĩ thuật test này, chúng ta sẽ kiểm thử từng module riêng biệt trong giai đoạn kiểm thử đơn vị (unit). Sau đó, các module sẽ được tích hợp dần dần vào và kiểm tra kĩ càng, để đảm bảo rằng, giao tiếp (interface) và tương tác giữa các module được mượt mà.
Incremental Testing là một loại trong Intergration Testing.
4. Non-Incremental Testing
Khi luồng dữ liệu phức tạp và rất khó phân loại child-parent thì sẽ sử dụng phương pháp tích hợp không tăng dần.
Non-Incremental Testing là một loại trong Intergration Testing.
5. System Testing
Kiểm thử 1 hệ thống đã được tích hợp hoàn chỉnh để xác minh rằng nó đáp ứng được yêu cầu Kiểm thử hệ thống thuộc loại kiểm thử hộp đen . Kiểm thử hệ thống tập trung nhiều hơn vào các chức năng của hệ thống . Kiểm tra cả chức năng và giao diện , các hành vi của hệ thống 1 cách hoàn chỉnh, đáp ứng với yêu cầu.
6. Regression Testing
Khi một chức năng mới được thêm vào phần mềm, chúng ta cần chắc chắn rằng phần chức năng mới được thêm vào hoặc các lỗi đã được chỉnh sửa không phá hỏng các phần khác trong ứng dụng. Để test điều này chúng ta thực hiện kiểu test lặp đi lặp lại gọi là test hồi quy.
7. Recovery Testing
Kỹ thuật kiểm tra đánh giá mức độ phục hồi của hệ thống sau sự cố, lỗi phần cứng hoặc các sự cố nghiêm trọng khác. Nó được thực hiện bởi các nhóm test.

8. Usability Testing
Kiểm tra tính khả dụng là một kỹ thuật kiểm thử hộp đen để xác định sản phẩm của bạn có thân thiện với người dụng hay không
9. Migration Testing
Migration Testing là một quá trình xác minh sự di chuyển của hệ thống kế thừa sang hệ thống mới với sự gián đoạn / thời gian chết tối thiểu, với sự toàn vẹn dữ liệu và không mất dữ liệu, đồng thời đảm bảo rằng tất cả các khía cạnh chức năng và phi chức năng đã được xác định của ứng dụng đều được đáp ứng.
10. Functional Testing
Là một loại kiểm thử hộp đen (black box) và các trường hợp kiểm thử của nó được dựa trên đặc tả của ứng dụng phần mềm/thành phần đang test. Các chức năng được test bằng cách nhập vào các giá trị nhập và kiểm tra kết quả đầu ra, và ít quan tâm đến cấu trúc bên trong của ứng dụng
11. Software and Hardware Testing
Mục đích của việc kiểm tra hệ thống này là để đảm bảo rằng phần cứng và phần mềm tương thích với nhau. Để vận hành phần mềm mà không gặp sự cố, thiết lập phần cứng phải tương thích với nó. Bằng cách cho phép tương tác giữa phần cứng và phần mềm, khả năng tương thích mang lại sự linh hoạt.
12. Acceptance Testing
Acceptance Testing là quá trình xác nhận rằng phần mềm đã tạo ra có hoạt động phù hợp với người dùng cuối hay không.
Trong giai đoạn test này, tester có thể cũng thực hiện hoặc khách hàng có các tester của riêng họ để thực hiện. Có 2 loại kiểm thử chấp nhận đó là kiểm thử Alpha và kiểm thử Beta
13. Alpha Testing
Là loại kiểm thử nội bộ, phần mềm sẽ được 1 đội kiểm thử độc lập hoặc do khách hàng thực hiện tại nơi sản xuất phần mềm.
14. Beta Testing
Là loại kiểm thử mà khách hàng thực hiện kiểm thử ở chính môi trường của họ. Loại kiểm thử này được thực hiện sau kiểm thử Alpha.
15. Manual Testing
Manual testing là việc thử nghiệm một phầm mềm hoàn toàn được làm bằng tay bởi người tester. Nó được thực hiện nhằm phát hiện lỗi trong phầm mềm đang được phát triển. Trong manual testing, tester sẽ thực hiện các trường hợp kiểm thử và tạo báo cáo kiểm thử hoàn toàn thủ công mà không có bất kỳ sự trợ giúp của công cụ tự động nào.
16. Black box Testing
Kiểm thử hộp đen là 1 phương pháp kiểm thử mà tester sẽ chỉ xem xét đến đầu vào và đầu ra của chương trình mà không quan tâm code bên trong được viết ra sao. Tester thực hiện kiểm thử dựa hoàn toàn vào đặc tả yêu cầu . Mục đích của kiểm thử hộp đen là tìm ra các lỗi ở giao diện , chức năng của phần mềm. Các trường hợp kiểm thử sẽ được xây dựng xung quanh đó.
17. API Testing
API là một từ viết tắt của Application Programming Interface (Giao diện lập trình ứng dụng).
Nó cho phép giao tiếp và trao đổi dữ liệu giữa hai hệ thống phần mềm riêng biệt. Một hệ thống phần mềm thực hiện một API chứa các hàm / các thủ tục phụ có thể được thực hiện bởi một hệ thống phần mềm khác.

18. Database Testing
Database Testing là quá trình kiểm tra độ chính xác và tính toàn vẹn của cơ sở dữ liệu (CSDL). Đảm bảo rằng các dữ liệu là chính xác và duy nhất. Những lỗi sau đây của CSDL có thể gây ra một số vấn đề nghiêm trọng: deadlock, hỏng dữ liệu, hiệu suất kém, không thống nhất, vv…
19. Requirements Testing
Kỹ thuật kiểm thử xác nhận rằng các yêu cầu là chính xác, đầy đủ, rõ ràng và nhất quán về mặt logic và cho phép thiết kế một bộ các trường hợp kiểm thử cần và đủ từ các yêu cầu đó. Nó được thực hiện bởi các nhóm QA.
20. White box Testing
Kiểm thử hộp trắng là phương pháp kiểm thử mà cấu trúc thuật toán của chương trình được đưa vào xem xét. Các trường hợp kiểm thử được thiết kế dựa vào cấu trúc mã hoặc cách làm việc của chương trình. Người kiểm thử truy cập vào mã nguồn của chương trình để kiểm tra nó.
21. Branch Testing (White box)
Kỹ thuật kiểm tra trong đó tất cả các nhánh trong mã nguồn chương trình được kiểm tra ít nhất một lần.

22. Statement Coverage Testing (White box)
Statement testing là một kỹ thuật kiểm thử hộp trắng (white-box testing) giúp xác định các test case để thực thi một số câu lệnh của một chức năng nào đó.
23. Path Coverage Testing (White box)
Path Coverage là một phương pháp kiểm tra cấu trúc liên quan đến việc sử dụng mã nguồn của chương trình để tìm mọi đường dẫn thực thi có thể. Path Coverage đảm bảo phạm vi của tất cả các đường dẫn từ đầu đến cuối.
24. Grey box Testing
Greybox testing là một phương pháp kiểm thử phần mềm để kiểm tra ứng dụng phần mềm với một phần kiến thức về cấu trúc làm việc bên trong, được thực hiện ở cấp độ chức năng như kiểm thử hộp đen.
25. Non-Functional Testing
Loại kiểm thử này tập trung vào các khía cạnh phi chức năng của ứng dụng. Bao gồm như:
- Kiểm thử chịu tải
- Kiểm thử bảo mật
- Kiểm tra tính tương thích trên từng môi trường,…
26. Performance Testing
Performance Testing là một loại kiểm thử nhằm xác định mức độ đáp ứng, băng thông, độ tin cậy và/hoặc khả năng mở rộng của hệ thống dưới một khối lượng làm việc/truy cập nhất định.
Performance Testing bao gồm các loại sau: Load Testing, Stress Testing, Endurance Testing, Spike Testing, Volume Testing, Scalability Testing, Reliability Testing.
Các bạn có thể tham khảo cách test performance bằng tool JMeter tại đây: JMeter Series

27. Load Testing
Kiểm tra khả năng chịu tải của hệ thống với một lượng tải dự kiến trong một khoảng thời gian cố định.
Load Testing là một loại trong Performance Testing.
28. Stress Testing
Mục tiêu chính của Stress Test là tìm ra ngưỡng đỉnh của hệ thống, tại đó nếu vượt ngưỡng đỉnh hệ thống sẽ xảy ra sự cố và không thể đáp ứng dịch vụ.
Stress Testing là một loại trong Performance Testing.
29. Endurance Testing
Mô phỏng hệ thống hoạt động trong thời gian dài quá đó tìm ra các vấn đề về bộ nhớ, phân mảnh dữ liệu v.v.
Endurance Testing là một loại trong Performance Testing.
30. Spike Testing
Kiểm tra phản ứng của hệ thống khi lượng truy cập thay đổi đột ngột. Đồng thời cũng kiếm tra khả năng phục hồi của hệ thống khi lượng truy cập giảm.
Spike Testing là một loại trong Performance Testing.
31. Volume Testing
Mô phỏng khả năng xử lý hệ thống đối với một lượng dữ liệu lớn. Mục tiêu bài test là đánh giá các vấn đề làm ảnh hưởng tới hiệu năng hệ thống khi phải xử lý lượng dữ liệu rất lớn.
Volume Testing là một loại trong Performance Testing.
32. Scalability Testing
Kiểm tra khả năng mở rộng của phần mềm, hỗ trợ cho việc xác định hiệu quả của phần mềm khi tăng tải cho người dùng, hỗ trợ cho việc lập kế hoạch bổ sung dung lượng cho hệ thống.
Scalability Testing là một loại trong Performance Testing.
33. Reliability Testing
Kiểm tra độ tin cậy, dùng để xác minh rằng phần mềm có khả năng thực hiện một hoạt động không có lỗi trong một khoảng thời gian nhất định trong một môi trường được chỉ định.
Reliability Testing là một loại trong Performance Testing.
34. Security Testing
Là việc tìm kiếm tất cả cá lỗ hổng có thể và điểm yếu của hệ thống mà có thể dẫn đến mất thông tin trong tay nhân viên hoặc người ngoài của tổ chức.
Trong Security Testing có nhiều loại như:
Vulnerability Scanning, Risk Assessment, Security Scanning, Penetration Testing, Security Auditing, Ethical Hacking, Posture Assessment

35. Automation Testing
Automation testing là phương pháp kiểm thử tự động. Người tester sẽ phải viết các kịch bản kiểm thử sau đó sử dụng các tool hỗ trợ để thực hiện kiểm thử, phương pháp này sẽ giúp việc kiểm thử hiệu quả và tốn ít thời gian hơn. Automation testing giúp chạy các kịch bản kiểm thử lặp lại nhiều lần và các task kiểm thử khác khó thực hiện bằng tay như performance testing và stress testing.
36. Compatibility Testing
Compatibility Testing sẽ validate cách mà phần mềm hoạt động và chạy trong các môi trường khác nhau: web servers, hardware, and network environment. Compatibility Testing đảm bảo rằng phần mềm có thể chạy trên các cấu hình khác nhau, cơ sở dữ liệu khác nhau, các trình duyệt khác nhau và trên các phiên bản khác nhau của ứng dụng. Và nó được thực hiện bởi team test.
37. Smoke Testing
Là quá trình kiểm tra liệu bản build có ổn định hay không? Để xem bản build có đủ ổn định để thực hiện test chi tiết hay không (trong trường hợp bản build ko ổn định, lỗi luôn chức năng chính hoặc build bị lỗi thì trả lại Dev, yêu cầu sửa luôn). Hay kiểm tra các tính năng quan trọng có đang hoạt động hay không.
38. Monkey Testing
Là một phương pháp kiểm thử với đầu vào ngẫu nhiên, không theo testcase hay một chiến lược test nào.
39. Re-test Testing
Re-test là thực hiện test để đóng bug/ defect / lỗi sau khi lập trình viên đã được sửa hoặc sửa 1 chức năng nào đó rồi test lại chức năng sửa đó.
40. Ad-hoc Testing
Test được thực hiện mà không có kế hoạch và tài liệu, tester cố gắng ‘phá vỡ’ hệ thống bằng cách thử ngẫu nhiên chức năng của hệ thống.
41. End to end Testing
Tương tự như System test, liên quan đến kiểm thử môi trường ứng dụng hoàn chỉnh trong tình huống bắt chước việc sử dụng trong thế giới thực, chẳng hạn như tương tác với cơ sở dữ liệu, sử dụng truyền thông mạng hoặc tương tác với phần cứng, ứng dụng hoặc hệ thống khác nếu thích hợp. Nó được thực hiện bởi các nhóm QA.
42. Configuration Testing
Kỹ thuật kiểm tra xác định cấu hình tối thiểu và tối ưu của phần cứng và phần mềm cũng như tác động của việc thêm hoặc sửa đổi các tài nguyên như bộ nhớ, ổ đĩa và CPU. Thông thường nó được thực hiện bởi các performance Tester.
43. Decision Coverage Testing
Loại kiểm thử phần mềm trong đó mỗi điều kiện/quyết định được thực hiện bằng cách đặt nó thành true/false. Nó thường được thực hiện bởi các Automation tester.
44. Exploratory Testing
Là thử nghiệm không chính thức (informal testing) được thực hiện bởi team test. Mục tiêu của thử nghiệm này là khám phá ứng dụng và tìm kiếm các bug/defect tồn tại trong ứng dụng. Đôi khi các bug/defect có thể xảy ra trong quá trình test này, và đôi khi đó là các bug nghiêm trọng. Trong quá trình test này, tester nên thực hiện theo flow với các output đầu ra đã test trước đó. Kỹ thuật này được thực hiện mà không cần có tài liệu hay test case.
45. GUI software Testing
Mục tiêu của kiểm tra GUI là xác nhận GUI theo yêu cầu nghiệp vụ. GUI của ứng dụng sẽ được thể hiện trong màn hình mockup và tài liệu thiết kế chi tiết (Detailed Design Document).
46. Localization Testing
Một phần của quy trình kiểm thử phần mềm tập trung vào việc điều chỉnh một ứng dụng toàn cầu hóa cho một nền văn hóa/địa phương cụ thể, thường được thực hiện bởi tester.
47. Globalization Testing
Globalization Testing là một loại kiểm thử phần mềm khác được sử dụng để kiểm tra phần mềm được phát triển cho nhiều ngôn ngữ, được gọi là kiểm tra toàn cầu hóa và cải thiện ứng dụng hoặc phần mềm cho các ngôn ngữ khác nhau.
48. Install, Uninstall Testing
Công việc tập trung vào những gì khách hàng sẽ cần làm để cài đặt và thiết lập thành công phần mềm mới. Công việc này có thể bao gồm các quy trình cài đặt, gỡ cài đặt toàn bộ, một phần hoặc nâng cấp và thường được thực hiện bởi tester cùng với người quản lý cấu hình.
49. Upgrade Testing
Kỹ thuật kiểm tra xác minh xem phiên bản mới được nâng cấp lên từ phiên bản cũ hơn có thể được sử dụng đúng cách hay không và không gây ra khó khăn cho người dùng.
50. Pair Testing
Kỹ thuật test trong đó hai thành viên trong nhóm làm việc cùng nhau trên một bàn phím để kiểm tra ứng dụng phần mềm. Những người tham gia thay phiên nhau điều khiển bàn phím.
51. Storage Testing
Loại thử nghiệm xác minh chương trình đang thử nghiệm lưu trữ các tệp dữ liệu trong các thư mục chính xác và nó dự trữ đủ dung lượng để ngăn việc kết thúc bất ngờ do thiếu dung lượng.
52. Sanity Testing
Sanity testing là một tập hợp con của kiểm thử hồi quy. Sau khi nhận được bản dựng phần mềm, kiểm tra độ chính xác được thực hiện để đảm bảo rằng các thay đổi mã được giới thiệu đang hoạt động như mong đợi . Thử nghiệm này là một điểm kiểm tra để xác định xem thử nghiệm cho bản dựng có thể tiến hành hay không.
53. Dynamic Testing
Kiểm thử động là một trong những phần quan trọng nhất của Kiểm thử phần mềm, được sử dụng để phân tích hành vi động của mã.
Thử nghiệm động đang làm việc với phần mềm bằng cách đưa ra các giá trị đầu vào và xác minh xem đầu ra có được mong đợi hay không bằng cách thực hiện một trường hợp thử nghiệm cụ thể có thể được thực hiện thủ công hoặc bằng quy trình tự động hóa.
54. Visual Testing
Kiểm tra trực quan (còn gọi là kiểm tra bằng mắt) là một trong những kỹ thuật phổ biến nhất liên quan đến việc người vận hành khi nhìn vào mẫu thử. Kiểm tra trực quan có thể được hỗ trợ bằng cách sử dụng các công cụ quang học như kính lúp, kính hiển vi hoặc hệ thống đo quang học tự động .
55. Positive testing Testing
Positive testing – hay còn được gọi là “Happy path testing” là quá trình chạy 1 kịch bản kiểm thử chỉ với dữ liệu đúng và hợp lệ.
56. Negative Testing
Negative testing – hay còn gọi là error path testing hay failure testing – thường được thực hiện để đảm bảo tính ổn định của ứng dụng. Negative testing là quá trình áp dụng sáng tạo nhiều nhất có thể và xác nhận ứng dụng đối ứng lại dữ liệu không hợp lệ.