Trong quá trình thực hiện công việc kiểm thử phần mềm, chúng ta gặp phải vô số các khái niệm khác nhau. Các khái niệm này có thể đã quen thuộc với nhiều người, nhưng cũng có rất nhiều khái niệm mà chúng ta lạ lẫm và chưa từng nghe thấy.
Requirements Testing
Kiểm tra các yêu cầu: xác nhận rằng yêu cầu này là chính xác, đầy đủ, rõ ràng, và hợp lý; phù hợp và cho phép thiết kế một bộ các test case cần và đủ của những yêu cầu (được thực hiện bởi đội ngũ QA).
Parallel Testing
Kiểm thử song song là kiểm tra khả năng tương thích của hệ thống mới được phát triển với hệ thống cũ. (thực hiện bởi Tester).
Path Testing
Kiểm tra đường dẫn 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 một chương trình để tìm ra tất cả các đường dẫn thực thi tốt (thực hiện bởi developer).
Penetration Testing
Kiểm thử thâm nhập là một loại kiểm tra an ninh dùng để kiểm tra các khu vực không an toàn của hệ thống hoặc ứng dụng. Phương pháp mà đánh giá sự an toàn của một hệ thống máy tính hoặc mạng bằng cách mô phỏng một cuộc tấn công từ một nguồn độc hại. Tạo ra bởi công ty kiểm thử thâm nhập chuyên ngành.
Qualification Testing
Là loại kiểm thử với mục đích kiểm tra lại các thông số kỹ thuật của phiên bản trước, thường được thực hiện bởi dev cho người tiêu dùng, để chứng minh rằng các phần mềm đáp ứng yêu cầu quy định của nó.
Ramp Testing
Loại thử nghiệm bao gồm việc nâng cao một tín hiệu đầu vào liên tục cho đến khi hệ thống bị phá vỡ (có thể được thực hiện bởi tester hoặc developer).
Scenario Testing
Một kịch bản thử nghiệm là một kịch bản được trình bày từ quan điểm người dùng cuối và dựa trên kịch bản này, các thử nghiệm được tiến hành.Trong thử nghiệm kịch bản, tester đặt mình vào người dùng cuối và tìm ra các kịch bản thực tế.
Statement Testing
Là loại kiểm thử hộp trắng đáp ứng các tiêu chí mỗi câu lệnh trong một chương trình được thực hiện ít nhất một lần trong chương trình kiểm thử (thường được thực hiện bởi developer).
Scalability Testing
Kiểm tra khả năng mở rộng là kiểm tra hiệu suất hoạt động điều tra khả năng của một hệ thống để phát triển bằng cách tăng khối lượng công việc cho mỗi người dùng, hoặc số lượng người dùng đồng thời, hoặc kích thước của một cơ sở dữ liệu. Là một loại kiểm thử phi chức năng, là loại nhỏ trong kiểm thử hiệu suất.
Static Testing
Là một cách gọi của quá trình review code và các tài liệu của dự án. Đây là hình thức test mà không cần chạy thử phần mềm. Phương pháp này sử dụng giấy, bút để kiểm tra lần lượt từng logic, ngay sau khi lập trình xong. Chủ yếu kiểm tra tính đúng đắn của các dòn code, thuật toán và các tài liệu đặc tả (thực hiện bởi Developer, Code Reviewer, Business Analysts).
Stability Testing
Là kỹ thuật test nhằm xác minh sự ổn định của phần mềm qua việc kiểm tra khả năng chạy liên tục của ứng dụng trong hoặc hơn khoảng thời gian có thể chấp nhận được. Kiểm tra xem tại giới hạn nào thì ứng dụng bị crash. Là một phần của performance test, cũng thường được gọi là Load testing hoặc Endurance testing (test khả năng chịu đựng) (thực hiện bởi performance tester/ engineer).
Smoke Testing
Là kiểu test mở đầu cho quá trình test, được thực hiện ngay khi code được build trên môi trường test. Kiểu này cơ bản giống như kiểu Adhoc testing: kiểm tra xem phần mềm có sẵn sàng cho việc test chưa, có đủ môi trường cho việc test chưa? Kiểm tra đại khái các thành phần cơ bản của hệ thống phần mềm để xem rằng các chức năng chính có bị bất thường hay không? Sau khi test smoke, các tester sẽ thực hiện test khả năng thực hiện của các chức năng (thực hiện bởi tester).
Stress Testing
Stress testing là một hình thức kiểm thử được sử dụng để xác định tính ổn định của một hệ thống phần mềm. Là kiểu test kiểm tra thời gian đáp lại người dùng với số lượng người dùng bất kỳ trong nhiều ngữ cảnh khác nhau của cùng một ứng dụng tại cùng một thời điểm. Nó liên quan đến những kiểm thử vượt quá khả năng bình thường của hệ thống, thường để xác định các điểm phá vỡ của hệ thống, để quan sát các kết quả khi vượt qua ngưỡng giới hạn (thực hiện bởi các kỹ sư hệ thống, Testers).
Storage Testing
Là loại test nhằm xác minh chương trình qua việc kiểm tra các file dữ liệu có được lưu trữ trong các thư mục chính xác hay không? Kiểm tra xử lý của ứng dụng trong trường hợp thiếu không gian bộ nhớ thì có bị chấm dứt bất ngờ hay không? Ngoài ra còn xác định việc ứng dụng sử dụng bộ nhớ có nhiều hơn so với ước tính hay không, có khả năng gây đầy bộ nhớ và làm tăng thời gian chết hay không? (hực hiện bởi Tester).
Structural Testing
Là một tên gọi khác của white box testing. Hay thường được gọi là clear box testing, hoặc cũng được biết đến như glass box testing. Được thực hiện bởi developers đã tạo ra code nhằm kiểm tra tính đúng đắn của các dòng code và đảm bảo các xử lý của từng hàm, từng chức năng riêng lẻ được thực hiện đúng theo yêu cầu.
Top Down Integration Testing
Là kỹ thuật test dựa trên việc xây dựng cấu trúc chương trình. Trong đó các module của phần mềm được tích hợp bằng cách di chuyển theo chiều hướng xuống theo trình tự kiểm soát cấp bậc, bắt đầu từ module chính tới các module phụ. Khi tích hợp từ trên xuống thì khung tổng thể của hệ thống được phát triển trước, các chức năng thành phần gắn vào sau. Trái ngược với Bottom up integration: Tích hợp các thành phần có cấu trúc bên dưới trước như: dịch vụ chung, mạng, truy cập cơ sở dữ liệu, sau đó gắn thêm các thành phần chức năng (được thực hiện bởi các tester).
Thread Testing
Thread Testing là một kỹ thuật test phần mềm được sử dụng trong giai đoạn test integration sớm để kiểm tra khả năng hoạt động của các chức năng chính. Loại kỹ thuật này rất hữu ích khi test ứng dụng có sử dụng kiến trúc client server (được thực hiện bởi các tester).
Upgrade Testing
Được thực hiện khi có phiên bản mới có những tính năng mới được tạo ra dựa trên một phiên bản cũ. Đây là kỹ thuật test nhằm xác minh rằng phiên bản mới được nâng cấp, hoạt động đúng và không thách thức người dùng trong việc học cách sử dụng (được thực hiện bởi các tester).
Usability Testing
Là kỹ thuật test xác minh ứng dụng có khả năng ứng dụng cao và dễ sử dụng: người sử dụng có thể học để thao tác, input dữ liệu, giải thích kết quả của hệ thống hoặc các thành phần một cách dễ dàng. Giao diện thân thiện với người dùng: màu sắc, font chữ, size chữ, ngữ pháp câu chữ... (người thực hiện: end user).
Volume Testing
Volume testing đề cập tới việc kiểm thử phần mềm ứng dụng với một lượng dữ liệu nhất định. Số lượng này có thể là kích thước cơ sở dữ liệu hoặc nó cũng có thể là kích thước của 1 tập tin giao tiếp là đối tượng của volume testing (định nghĩa trong các thuật ngữ chung) (thực hiện bởi performance engineer/tester).
Vulnerability Testing
Là một loại test bảo mật, có mục đích để ngăn chặn vấn đề có thể ảnh hưởng đến tính toàn vẹn ứng dụng và ổn định (được thực hiện bởi tester thông thường hoặc một đơn vị test chuyên biệt).
Workflow Testing
Workflow là một kịch bản mô phỏng tiến trình hoạt động của chức năng nào đó hay nghiệp vụ nào đó được dự kiến sử dụng bởi người dùng cuối. Nó bao gồm nhiều bước thực hiện để đạt được kết quả mong muốn của chức năng đó. Test theo workflow là quá trình đảm bảo mỗi tiến trình làm việc phản ánh chính xác các business process. Loại test này phù hợp cho các ứng dụng workflow-based applications (được thực hiện bởi Tester).
Adhoc Testing
Thuật ngữ Adhoc testing là phương pháp kiểm thử dạng Black box test mà không theo cách thông thường. Với quy trình test thông thường là phải có tài liệu yêu cầu, kế hoạch test (test plan), kịch bản kiểm thử. Kiểu test này không theo bất cứ loại kỹ thuật test nào để tạo test case.
Monkey Testing
Monkey testing được định nghĩa rất ngắn gọn: là một phương pháp kiểm thử với đầu vào ngẫu nhiên, không theo test case hay một chiến lược test nào. Trong Monkey testing thì các tester (đôi khi cả developer nữa ) được coi như là 1 con khỉ vậy. Bạn thử nghĩ mà xem, nếu 1 con khỉ mà sử dụng máy tính thì nó sẽ làm những gì nhỉ? Tuy loài khỉ rất thông minh nhưng khi cho nó sử dụng máy tính, nó sẽ thực hiện những hành động bất kỳ trên hệ thống , điều mà chính nó cũng không thể hiểu được. Nó cũng giống như khi tester thực hiện monkey testing, họ sẽ áp dụng các kịch bản kiểm thử ngẫu nhiên trên hệ thống để tìm ra lỗi mà không cần xác định trước. Trong 1 số trường hợp, Monkey testing chỉ dành cho Unit Testing hoặc GUI Testing (Kiểm thử giao diện người dùng)
Agile Testing
Kiểm thử Agile là việc kiểm thử phần mềm được thực hiện theo một số quy định của bản tuyên ngôn (Manifesto) Agile, xem việc phát triển phần mềm như là khách hàng của việc kiểm thử. Kiểm thử Agile thực hiện kiểm thử theo quan điểm của khách hàng càng sớm càng tốt, thử nghiệm sớm và thường xuyên ngay khi code vừa xong và đủ ổn định để test từ level
API Testing
-
API (Application Programming Interface): cho phép kết nối 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 có thể nhúng các API bao gồm các hàm/thủ tục con (functions/sub-routines) mà có thể chạy bởi một hệ thống phần mềm khác.
-
Kiểm thử API khác hoàn toàn với kiểm thử GUI và các thành phần chủ yếu khác trong tầng business logic của kiến trúc phần mềm. Loại kiểm thử này không tập trung vào phần giao diện và thao tác giao diện của một ứng dụng. Thay vì sử dụng các đầu vào (bàn phím) và đầu ra tiêu chuẩn, trong kiểm thử API, bạn có thể sử dụng một phần mềm để gửi các yêu cầu đến API, nhận đầu ra và ghi lại phản hồi của hệ thống.
All-pairs Testing
All pair testing (Kiểm thử tất cả các cặp) hay còn gọi là pairwise testing, là một phương pháp test được thực hiện để kiểm thử các phần mềm sử dụng phương pháp tổ hợp. Đó là một phương pháp để kiểm tra tất cả các kết hợp rời rạc có thể có của các thông số liên quan, phương pháp test ít nhất sao cho chất lượng tốt nhất.