stanford-oval/wikipedia huggingface dataset:
Thử nghiệm phần mềm
Các mức kiểm thử > Kiểm thử đơn vị

Bài chi tiết: Kiểm thử đơn vị
Kiểm thử đơn vị hay còn được gọi là kiểm thử thành phần, đề cập đến việc kiểm thử chức năng từng phần của mã, thường ở mức độ chức năng. Trong một môi trường hướng về đối tượng thì điều này thường là cấp độ lớp, và các kiểm thử đơn vị tối thiểu bao gồm hàm dựng và hàm hủy.
Nhiều loại kiểm thử được viết bởi các nhà phát triển như họ làm việc trong mã (kiểu hộp trắng) để đảm bảo rằng từng hàm riêng biệt hoạt động đúng như kỳ vọng. Một hàm có thể có nhiều kiểm thử từ đó giúp nắm bắt được các trường hợp góc hoặc các nhánh trong Code. Kiểm thử đơn vị một mình không thể đảm bảo hết được từng chức năng của từng bộ phận trong phần phềm nhưng nó được sử dụng để đảm bảo rằng các khối kiến trúc của phần mềm hoạt động độc lập với nhau.
Kiểm thử đơn vị là một quá trình phát triển phần mềm có liên quan đến ứng dụng đồng bộ của một loạt các chiến lược phòng ngừa phát hiện lỗi và để giảm thiểu rủi ro, thời gian và chi phí. Nó được thực hiện bởi kỹ sư hay nhà phát triển trong suốt giai đoạn xây dựng của vòng đời phát triển phần mềm. Không chỉ tập trung vào việc đảm bảo chất lượng truyền thống mà phải gia tăng nó lên vì thế kiểm thử đơn vị có mục đích loại bỏ những lỗi cấu trúc trước khi mã hóa rồi mới thúc đẩy việc quản lý chất lượng. Chiến lược này nhằm nâng cao chất lượng cũng như hiệu quả của phần mềm trong tiến trình quản lý và phát triển chung.
Tùy thuộc vào kỳ vọng của tổ chức phát triển phần mềm, kiểm thử đơn vị có thể bao gồm phân tích mã tĩnh, phân tích luồng dữ liệu, phân tích dữ liệu, đánh giá mã cân bằng, phân tích mã bao phủ và các thực hành xác nhận phần mềm khác.
Các mức kiểm thử > Kiểm thử tích hợp

Kiểm thử tích hợp là một hình thức kiểm thử phần mềm nhằm tìm cách xác minh các giao diện giữa các thành phần xung đột của một thiết kế. Các thành phần này có thể tích hợp theo cách lặp đi lặp lại hoặc tất cả cùng nhau ("Big Bang"). Thông thường cách thức này được coi là một thực hành tốt hơn vì nó cho phép các vấn đề về giao diện được định vị một cách nhanh chóng và cố định hơn.
Kiểm thử tích hợp làm lộ ra các khiếm khuyết trong các giao diện và tương tác giữa các thành phần tích hợp (Modules). Các nhóm thành phần đã được kiểm thử lớn dần từng bước tương ứng với các thuộc tính của cấu trúc thiết kế đã được tích hợp và kiểm thử cho đến khi phần mềm hoạt động như một hệ thống.
Các mức kiểm thử > Kiểm thử hệ thống

Kiểm thử hệ thống giúp xác minh rằng một hệ thống được tích hợp có đáp ứng đầy đủ các yêu cầu hay không. Ngoài ra, kiểm thử phần mềm phải đảm bảo rằng các chương trình hoạt động như kỳ vọng, không còn bị phá hủy hay lỗi phần nào đó trong môi trường hoạt động của nó hoặc không gặp sự cố khi hoạt động với tiến trình khác (điều này bao gồm bộ nhớ chia sẻ không bị hỏng, nguồn tài nguyên không bị dư thừa hay chiếm dụng quá mức và không bị đẩy ra khi hoạt động song song các tiến trình).
Các mức kiểm thử > Kiểm thử mức chấp nhận

Cuối cùng hệ thống được giao cho người dùng để kiểm thử mức chấp nhận.
Các loại hình kiểm thử > Kiểm thử cài đặt

Một kiểm thử cài đặt đảm bảo rằng hệ thống được cài đặt đúng và hoạt động tại phần cứng thực tế của thiết bị.
Các loại hình kiểm thử > Kiểm thử khả năng tương thích

Một nguyên nhân phổ biến của lỗi phần mềm (thực tế hay nhận thức) là thiếu khả năng tương thích với các hệ điều hành hoặc phần mềm ứng dụng khác (có thể là các phiên bản cũ hay mới của hệ điều hành), hoặc môi trường mục tiêu khác nhau rất nhiều so với bản gốc (chẳng hạn như một thiết bị đầu cuối hoặc ứng dụng giao diện dùng để chạy trên máy tính để bàn hiện nay đang được yêu cầu để trở thành một ứng dụng web, trong đó phải thực hiện trong một trình duyệt web). Ví dụ, trong trường hợp thiếu tính tương thích ngược có thể xảy ra bởi vì các lập trình viên chỉ phát triển và kiểm thử phần mềm trên phiên bản mới nhất của môi trường mục tiêu, mà không phải tất cả người dùng có thể chạy. Điều này dẫn đến hậu quả không lường được rằng các chức năng mới nhất có thể không hoạt động trong các phiên bản trước đây của môi trường mục tiêu nhưng lại có thể chạy được với phần cứng cũ hơn và phiên bản trước trước đó của môi trường mục tiêu. Đôi khi các vấn đề như vậy có thể được cố định bằng cách chủ động trừu tượng hóa chức năng hệ điều hành vào một Module chương trình riêng biệt hoặc thư viện.
Các loại hình kiểm thử > Smoke & Sanity Testing

Sanity Testing xác định tính hợp lý để tiến hành các kiểm thử khác.
Smoke Testing được sử dụng để xác định xem có vấn đề nghiêm trọng với bộ phận của phần mềm, ví dụ như một bài kiểm thử xác minh khi xây dựng phần mềm.
Các loại hình kiểm thử > Kiểm thử hồi quy

Kiểm thử hồi quy tập trung vào việc tìm kiếm lỗi sau khi xảy ra một thay đổi mã chính. Cụ thể, nó tìm cách phát hiện ra các hồi quy của phần mềm hoặc các lỗi cũ quay trở lại. Những hồi quy như vậy xảy ra bất cứ khi nào chức năng phần mềm trước đây đang hoạt động giờ tạm ngưng như đã định. Thông thường, những hồi quy xảy ra như một hệ quả không lường trước được những thay đổi chương trình, khi một phần mới của phần mềm được phát triển xung đột với mã tồn tại trước đó. Phương pháp phổ biến của kiểm thử hồi quy bao gồm chạy lại những kiểm thử trước đó và kiểm thử xem lỗi cố định trước đây tại sao lại xuất hiện. Độ sâu của kiểm thử phụ thuộc vào các nguy cơ và giai đoạn trong quá trình phát hành các tính năng bổ sung. Chúng có thể được hoàn tất khi thay đổi thêm vào đầu hoặc cuối bản phát hành, cũng có thể được có mức độ nguy hiểm thấp khi thực hiện kiểm thử tích cực trên mỗi tính năng.
Ví dụ: một PM đang phát triển khi kiểm tra cho thấy nó chạy tốt các chức năng A, B và C. Khi có thay đổi code của chức năng C, nếu chỉ kiểm tra chức năng C thì chưa đủ, cần phải kiểm tra lại tất cả các chức năng khác liên quan đến chức năng C, trong ví dụ này là A và B. Lý do là khi C thay đổi, nó có thể sẽ làm A và B không còn làm việc đúng nữa.
Mặc dù không là một mức kiểm tra, thực tế lại cho thấy Regression Test là một trong những loại kiểm tra tốn nhiều thời gian và công sức nhất. Tuy thế, việc bỏ qua Regression Test là "không được phép" vì có thể dẫn đến tình trạng phát sinh hoặc tái xuất hiện những lỗi nghiêm trọng, mặc dù ta "tưởng rằng" những lỗi đó hoặc không có hoặc đã được kiểm tra và sửa chữa rồi!
Các loại hình kiểm thử > Kiểm thử mức chấp nhận

Kiểm thử mức chấp nhận được hiểu theo một trong hai nghĩa sau:
Một Smoke Testing được sử dụng như một bài kiểm thử mức chấp nhận trước khi giới thiệu một bản built mới để thực hiện tiến trình kiểm thử chính, tức là trước khi thực hiện kiểm thử tích hợp hoặc hồi quy.
Kiểm thử mức chấp nhận do khách hàng thực hiện trong môi trường thí nghiệm riêng với những thiết bị phần cứng của họ, nó còn được biết đến như là kiểm thử mức độ chấp nhận của người dùng (UAT). Kiểm thử mức chấp nhận còn được thực hiện như là một phần của quá trình chuyển giao (hand-off) giữa hai pha của quá trình phát triển phần mềm.
Các loại hình kiểm thử > Kiểm thử Alpha

Kiểm thử Alpha là việc kiểm thử hoạt động chức năng thực tế hoặc giả lập do người dùng/khách hàng tiềm năng hoặc một nhóm Tester độc lập thực hiện tại nơi sản xuất phần mềm. Kiểm thử Alpha thường được sử dụng cho phần mềm đại trà (đóng gói sẵn để bán) như là một hình thức kiểm thử mức chấp nhận nội bộ trước khi phần mềm chính thức đi vào giai đoạn kiểm thử Beta.
Các loại hình kiểm thử > Kiểm thử Beta

Kiểm thử phiên bản Beta được đưa ra sau khi kiểm thử Alpha và có thể được coi là một hình thức mở rộng của kiểm thử mức chấp nhận của người dùng. Các phiên bản của phần mềm, gọi là phiên bản beta, được phát hành cho một đối tượng hạn chế bên ngoài của nhóm lập trình. Phần mềm này được phát hành cho nhiều nhóm người dùng để kiểm thử nhiều hơn nữa và nó có thể đảm bảo sản phẩm có ít thiếu sót và lỗi. Đôi khi, các phiên bản beta được phát hành rộng rãi để tăng phạm vi phản hồi thông tin từ một số lượng tối đa người dùng trong tương lai.
Các loại hình kiểm thử > Kiểm thử chức năng và phi chức năng

Chức năng kiểm thử liên quan đến các hoạt động xác minh một hành động cụ thể hoặc chức năng của các mã. Đó là những điều được tìm thấy trong các tài liệu yêu cầu, mặc dù có một số phương pháp phát triển được làm từ các câu chuyện của người dùng. Kiểm thử chức năng nhằm trả lời cho câu hỏi "người dùng có hay không làm được với tính năng cụ thể này".
Kiểm thử phi chức năng đề cập đến các khía cạnh của phần mềm có thể không liên quan đến một chức năng cụ thể hoặc hành động người dùng, chẳng hạn như khả năng mở rộng và hiệu suất khác, hành vi dưới những hạn chế hoặc bảo mật nhất định. Việc kiểm thử sẽ xác định điểm cuộn mà tại đó khả năng mở rộng và thực hiện của các điểm cực trị hoạt động không ổn định. Những yêu cầu phi chức năng thường là những phản ánh về chất lượng của sản phẩm, đặc biệt là trong bối cảnh các quan điểm phù hợp của người sử dụng nó.
Các loại hình kiểm thử > Kiểm thử sự phá hủy

Kiểm thử sự phá hủy cố gắng làm hỏng phần mềm hoặc một hệ thống con. Nó xác minh rằng các phần mềm có chức năng đúng ngay cả khi nó nhận được đầu vào không hợp lệ hoặc không mong muốn, do đó tạo ra sự vững mạnh của xác nhận đầu vào và thói quen quản lý các lỗi. Chèn lỗi phần mềm ở dạng mờ nhạt là một ví dụ về kiểm thử thất bại. Các công cụ kiểm thử phi chức năng thương mại được liên kết từ các trang chèn lỗi phần mềm mà ở đó có sẵn vô số các mã nguồn mở và các công cụ miễn phí để thực hiện kiểm thử sự phá hủy phần mềm.
Các loại hình kiểm thử > Kiểm thử hiệu suất phần mềm

Kiểm thử hiệu suất thường được chạy để xác định một hệ thống hay hệ thống con thực hiện như thế nào về độ nhạy và tính ổn định theo một khối lượng công việc cụ thể. Nó cũng có thể dùng để điều tra, đánh giá, xác nhận hoặc xác minh các thuộc tính chất lượng khác của hệ thống, chẳng hạn như khả năng mở rộng, độ tin cậy và sử dụng tài nguyên.
Kiểm thử lượng tải chủ yếu liên quan đến việc kiểm thử hệ thống có thể tiếp tục hoạt động dưới một lượng tải cụ thể, cho dù đó là một lượng lớn dữ liệu hoặc một số lượng lớn người sử dụng. Điều này thường được gọi là khả năng mở rộng phần mềm. Các hoạt động kiểm thử lượng tải có liên quan khi thực hiện như một hoạt động phi chức năng thường được gọi là kiểm thử sức chịu đựng.
Kiểm tra khối lượng là một cách để kiểm tra các chức năng của phần mềm ngay cả khi một số thành phần (ví dụ như một tập tin hoặc cơ sở dữ liệu) tăng triệt để kích thước. Kiểm thử độ căng là một cách để kiểm tra độ bền đột xuất hoặc ít gặp theo khối lượng công việc.
Kiểm thử tính ổn định (thường được tham chiếu lượng tải và kiểm thử độ bền) giúp kiểm tra xem phần mềm có thể hoạt động tốt liên tục trong hoặc trên một chu kỳ chấp nhận được. 
Có rất ít quy ước về các mục tiêu cụ thể của kiểm thử hiệu suất như là: Các thuật ngữ lượng tải, kiểm thử hiệu suất, kiểm thử tính mở rộng và kiểm thử khối lượng, thường được sử dụng thay thế cho nhau.
Hệ thống phần mềm thời gian thực có những ràng buộc chính xác thời gian. Để kiểm thử những ràng buộc thời gian được đáp ứng thì người ta dùng phương pháp kiểm thử thời gian thực.
Các loại hình kiểm thử > Kiểm thử tính khả dụng

Kiểm tra tính khả dụng là rất cần thiết để kiểm tra xem giao diện có tiện dụng và dễ hiểu với người dùng không, nó liên quan trực chủ yếu đến năng lực sử dụng của ứng dụng.
Các loại hình kiểm thử > Kiểm thử khả năng tiếp cận

Kiểm thử khả năng tiếp cận bao gồm việc tuân thủ các tiêu chuẩn sau:
Người Mỹ với Đạo luật bất khả thi năm 1990
Mục 508 sửa đổi của đạo luật Phục hồi năm 1973.
Sáng kiến tiếp cận Web (WAI) của World Wide Web Consortium (W3C).
Các loại hình kiểm thử > Kiểm thử bảo mật

Kiểm thử bảo mật phần mềm là rất cần thiết trong việc xử lý dữ liệu mật và ngăn chặn các hacker xâm nhập hệ thống.
Các loại hình kiểm thử > Tính toàn cầu và bản địa hóa

Khả năng tổng quát của phần mềm được toàn cầu và bản địa hóa có thể được tự động kiểm tra mà không dịch thực tế, bằng cách sử dụng phương thức giả bản địa. Nó sẽ xác minh rằng các ứng dụng vẫn hoạt động, ngay cả sau khi nó đã được dịch sang một ngôn ngữ mới hoặc thích nghi với một nền văn hóa mới (chẳng hạn như tiền tệ và múi giờ khác nhau).
Việc thực dịch ra nhiều ngôn ngữ phải được kiểm tra. Sự cố bản địa hóa có thể bao gồm:
Phần mềm thường được bản địa hóa bằng cách dịch một danh sách các chuỗi ra khỏi bối cảnh, và người dịch có thể chọn dịch sai đối với một chuỗi mã nguồn không rõ ràng.
Thuật ngữ kỹ thuật có thể trở nên không phù hợp nếu dự án được phiên dịch bởi một số người phối hợp không tốt hoặc nếu người dịch thiếu thận trọng.
Những bản dịch từ ngữ theo nghĩa đen có vẻ không phù hợp, giả tạo hoặc quá kỹ thuật trong mục tiêu ngôn từ.
Thông điệp chưa được dịch bằng ngôn ngữ gốc có thể khó mã hoá trong mã nguồn.
Một số thông điệp có thể được tạo ra tự động tại thời gian chạy và chuỗi kết quả có thể là sai ngữ pháp và chức năng không chính xác, dễ gây hiểu lầm hoặc khó hiểu.
Phần mềm có thể sử dụng một phím tắt mà không có chức năng trên layout phím ngôn ngữ nguồn nhưng lại được sử dụng để gõ ký tự trên layout ngôn ngữ mục tiêu.
Phần mềm có thể thiếu hỗ trợ cho các ký tự mã hóa của ngôn ngữ mục tiêu.
Phông chữ và kích thức chữ có thể phù hợp trong ngôn ngữ nguồn nhưng có thể không phù hợp trong ngôn ngữ mục tiêu. Ví dụ, ký tự CJK có thể không đọc được nếu font chữ quá nhỏ.
Một chuỗi trong ngôn ngữ mục tiêu có thể kéo dài hơn so với các xử lý của phần mềm. Điều này có thể làm cho một phần chuỗi bị ẩn đi với người dùng và gây ra một số va chạm hoặc sự cố với phần mềm.
Phần mềm có thể thiếu hỗ trợ thích hợp cho việc đọc hoặc viết văn bản hai chiều.
Phần mềm có thể hiển thị hình ảnh với văn bản mà không được bản địa hóa.
Những hệ điều hành bản địa có thể khác nhau trong cách đặt tên các file cấu hình hệ thống, các biến môi trường và các định dạng khác nhau cho ngày tháng và tiền tệ.
Các loại hình kiểm thử > Kiểm thử sự phát triển

Kiểm thử sự phát triển là một tiến trình phát triển phần mềm có liên quan đến ứng dụng đồng bộ của một loạt các chiến lược phòng ngừa phát hiện lỗi và để giảm thiểu rủi ro về thời gian và chi phí. Nó được thực hiện bởi các kỹ sư hoặc các nhà phát triển trong giai đoạn xây dựng vòng đời phát triển phần mềm. Không chỉ thay thế các trọng tâm QA truyền thống mà phải bổ sung nó. Kiểm thử sự phát triển nhằm mục đích loại bỏ những lỗi xây dựng trước khi mã được đẩy mạnh QA, chiến lược này là nhằm nâng cao chất lượng của phần mềm cũng như hiệu quả của sự phát triển chung và cả quá trình QA.

 Tùy thuộc vào kỳ vọng của tổ chức phát triển phần mềm, kiểm tra phát triển có thể bao gồm phân tích mã tĩnh, phân tích luồng dữ liệu, phân tích số liệu, đánh giá mã cân bằng, kiểm thử đơn vị, phân tích mã bao phủ, truy xuất nguồn gốc, và các thực hành xác minh phần mềm khác.
Các loại hình kiểm thử > Kiểm thử A/B

Kiểm thử A/B là một phương pháp sử dụng trong quảng cáo được thí nghiệm ngẫu nhiên với hai biến thể A và B, trong đó có sự kiểm soát và điều trị trong các kiểm thử có kiểm soát. Những thí nghiệm này thường được sử dụng trong phát triển web và tiếp thị, cũng như trong nhiều hình thức quảng cáo truyền thống.
Quy trình kiểm thử > Mô hình truyền thống CMMI và mô hình phát triển thác nước

Một thực tế phổ biến trong kiểm thử phần mềm đó là các kiểm thử được thực hiện bởi một nhóm các Tester độc lập sau khi các chức năng được phát triển và trước khi nó được chuyển tới khách hàng. Thực hành này thường là kết quả trong giai đoạn kiểm thử đang được sử dụng như một bộ đệm tham chiếu để bù đắp cho độ trễ tham chiếu do đó ảnh hưởng đến thời gian dành cho việc kiểm thử.
Một thực tế khác là khởi động kiểm thử phần mềm tại cùng một thời điểm bắt đầu dự án và nó là một quá trình liên tục cho đến khi dự án kết thúc.
Quy trình kiểm thử > Mô hình phát triển Agile or Extreme

Ngược lại, một số quy tắc phần mềm đang nổi lên như lập trình cực đoan và sự chuyển động phát triển phần mềm AGILE, tuân thủ mô hình "Test – Driven Development " (TDD). Trong quy trình này, kiểm thử đơn vị được viết đầu tiên do các kỹ sư phần mềm (thường là lập trình song song trong các phương pháp lập trình Extreme). Tất nhiên những kiểm thử bước đầu thất bại như dự kiến, nhưng sau đó Code được viết xong thì phần lớn các Test Suite sẽ từng bước tăng lên. Nó được cập nhật như là các lỗi điều kiện mới và các trường hợp tiềm ẩn vừa được phát hiện ra, chúng được tích hợp với bất kỳ kiểm thử hồi quy nào được phát triển. Kiểm thử đơn vị được duy trì cùng với phần còn lại của các mã nguồn phần mềm và được tích hợp chung vào quá trình xây dựng (với những kiểm thử tương tác vốn đã bị loại bỏ quá trình xây dựng mức chấp nhận thông thường). Mục tiêu cuối cùng của quá trình kiểm thử này là để đạt được việc triển khai liên tục mà ở đó những cập nhật phần mềm có thể được công bố cho công chúng thường xuyên.
Phương pháp này làm tăng các nỗ lực kiểm thử trước khi động đến bất kỳ nhóm kiểm thử chính thức. Trong một số mô hình phát triển khác, hầu hết việc thực hành các kiểm thử xảy ra sau khi các yêu cầu đã được xác định và quá trình mã hóa đã được hoàn thành.
Quy trình kiểm thử > Mô hình từ trên xuống và mô hình từ dưới lên

Kiểm thử từ dưới lên là một cách tiếp cận để kiểm thử tích hợp nơi các thành phần tồn tại ở cấp độ thấp nhất (Các Module, các biện pháp và các chức năng) được kiểm thử đầu tiên, sau đó tích hợp và sử dụng để tạo thuận lợi cho việc kiểm thử các thành phần cấp cao hơn. Sau khi kiểm thử tích hợp các Module ở cấp độ thấp hơn sẽ tiến hành kiểm thử ở các cấp độ tiếp theo. Quá trình này được lặp đi lặp lại cho đến khi các thành phần ở trật tự trên cùng của hệ thống được kiểm tra. Cách tiếp cận này là chỉ hữu ích khi tất cả hoặc hầu hết các Module có cấp độ phát triển tương đương sẵn sàng được kiểm thử. Phương pháp này cũng giúp xác định các cấp độ phát triển phần mềm và làm cho nó dễ dàng hơn để báo cáo tiến độ kiểm thử theo tỷ lệ phần trăm.
Kiểm thử từ trên xuống là một cách tiếp cận để kiểm thử tích hợp các Module trên đầu với các Module nhánh được kiểm tra từng bước cho đến khi kết thúc Module liên quan.
trong cả hai phương pháp và các trình điều khiển được sử dụng để cố định các thành phần bị thiếu sót và được hoàn thiện ở các cấp độ thay thế.
Quy trình kiểm thử > Một chu kỳ kiểm thử mẫu

Dẫu cho các biến thể tồn tại giữa các tổ chức lập trình thì vẫn có một quy trình điển hình để kiểm thử. Mẫu dưới đây là phổ biến trong các tổ chức sử dụng mô hình phát triển Waterfall (thác nước). Các hoạt động tương tự thường được tìm thấy trong các mô hình phát triển khác, nhưng có thể có hoặc không rõ ràng.
Phân tích yêu cầu: Kiểm thử thường sẽ bắt đầu lấy các yêu cầu trong các giai đoạn của vòng đời phát triển phần mềm. Trong giai đoạn thiết kế, các Tester làm việc với các nhà phát triển để xác định những khía cạnh của một thiết kế được kiểm chứng và những thông số được kiểm tra.
Lập kế hoạch kiểm thử: Chiến lược kiểm thử, kế hoạch kiểm thử, kiểm thử sáng tạo… Và có một kế hoạch là cần thiết vì nhiều hoạt động sẽ được thực hiện trong thời gian kiểm thử.
Kiểm thử phát triển: Các quy trình kiểm thử, các kịch bản, Test Case, các dữ liệu được sử dụng trong kiểm thử phần mềm.
Kiểm thử thực hiện: Dựa trên các kế hoạch, các văn bản kiểm thử và các báo cáo bất kỳ lỗi nào tìm thấy cho nhóm phát triển.
Kiểm thử báo cáo: Sau khi hoàn tất kiểm thử, các Tester tạo ra các số liệu và báo cáo cuối cùng về nỗ lực kiểm thử của họ và có sẵn sàng phát hành phần mềm hay không.
Phân tích kết quả kiểm thử hoặc phân tích thiếu sót được thực hiện bởi đội ngũ phát triển kết hợp với khách hàng để đưa ra quyết định xem những thiếu sót gì cần phải được chuyển giao, cố định và từ bỏ (tức là tìm ra được phần mềm hoạt động chính xác) hoặc giải quyết sau.
Test lại khiếm khuyết: Khi một khiếm khuyết đã được xử lý bởi đội ngũ phát triển, nó phải được kiểm tra lại bởi nhóm kiểm thử.
Kiểm thử hồi quy: Người ta thường xây dựng một chương trình kiểm thử nhỏ là tập hợp của các bài kiểm tra cho mỗi tích hợp mới, sửa chữa hoặc cố định phần mềm, để đảm bảo rằng những cung cấp mới nhất đã không phá hủy bất cứ điều gì và toàn bộ phần mềm vẫn còn hoạt động một cách chính xác.
Kiểm thử đóng gói: Mỗi phép thử thỏa mãn các chỉ tiêu truy xuất và thu được những kết quả quan trong như: bài học kinh nghiệm, kết quả, các bản ghi, tài liệu liên quan được lưu trữ và sử dụng như một tài liệu tham khảo cho các dự án trong tương lai.
Kiểm thử tự động hóa

Nhiều nhóm lập trình càng ngày càng dựa vào các kiểm thử tự động, đặc biệt là các nhóm sử dụng mô hình TDD (Test – Drive – Development). Có rất nhiều framework được viết bên trong và mã trong mỗi phiên bản được chạy kiểm thử tự động mọi lúc khi tích hợp liên tục phần mềm.
Tuy kiểm thử tự động không thể sao chép tất cả mọi thứ như con người có thể làm (và tất cả các cách họ nghĩ để làm việc đó) nhưng nó có thể rất hữu ích cho việc kiểm thử hồi quy. Mặc dù vậy, nó cũng đòi hỏi phải có những kịch bản phát triển tốt để tiến hành kiểm thử.
Kiểm thử tự động hóa > Các công cụ kiểm thử

Chương trình kiểm thử và phát hiện lỗi có thể được hỗ trợ đáng kể bởi các công cụ kiểm thử và gỡ lỗi. Các công cụ kiểm thử/gỡ lỗi bao gồm các tính năng như:
Những màn hình chương trình cho phép giám sát toàn bộ hoặc một phần của mã chương trình gồm:
Lệnh thiết lập simulator cho phép giám sát hoàn chỉnh cấp hướng dẫn và các thiết bị vi lượng.
Hình ảnh chương trình cho phép thực hiện từng bước và ngắt đoạn có điều kiện ở cấp nguồn hoặc trong mã máy.
Các báo cáo độ bao phủ của mã.
Các công cụ gỡ lỗi biểu tượng hoặc kết xuất định dạng cho phép kiểm tra các biến tại các chỗ lỗi và tại các điểm được lựa chọn.
Các công cụ kiểm thử GUI chức năng tự động được sử dụng để lặp lại mức độ kiểm tra hệ thống thông qua GUI (giao diện đồ họa).
Điểm định chuẩn cho phép so sánh hiệu suất chạy thực được hoạt động.
Phân tích hiệu suất (hoặc các công cụ định hình) có thể giúp làm nổi bật các điểm tới hạn và sử dụng tài nguyên.
Một số các tính năng này có thể được kết hợp vào một môi trường phát triển tích hợp (IDE).
Kiểm thử tự động hóa > Đo lường trong kiểm thử phần mềm

Thông thường, chất lượng bị hạn chế đến các chủ đề như tính chính xác, tính hoàn chỉnh và tính bảo mật nhưng cũng có thể bao gồm các yêu cầu kỹ thuật như được mô tả trong các tiêu chuẩn ISO (ISO / IEC 9126), chẳng hạn như khả năng, độ tin cậy, hiệu quả, tính di động, độ bảo trì, khả năng tương thích và khả năng sử dụng.
Có một số số liệu thường được sử dụng các độ đo phần mềm, hoặc các biện pháp được sử dụng để hỗ trợ trong việc xác định tình trạng của phần mềm hoặc tính đầy đủ của các kiểm thử.
Kiểm thử thành phần lạ

Quá trình kiểm thử phần mềm có thể tạo ra một số thành phần lạ.
Kiểm thử thành phần lạ > Kế hoạch kiểm thử

Một kiểm thử đặc điểm kỹ thuật được gọi là một kế hoạch kiểm thử. Các nhà phát triển nhận thức rõ những gì kế hoạch kiểm thử sẽ được thực hiện và thông tin này được cung cấp cho các nhà quản lý và các nhà phát triển. Ý tưởng là để làm cho họ thận trọng hơn khi phát triển mã của họ hoặc làm thay đổi bổ sung. Một số công ty có một tài liệu cao cấp được gọi là một chiến lược kiểm thử.
Kiểm thử thành phần lạ > Ma trận truy xuất nguồn gốc

Một ma trận truy xuất nguồn gốc là một bảng tương quan yêu cầu hoặc tài liệu thiết kế các tài liệu kiểm thử. Nó được sử dụng để thay đổi các bài kiểm tra khi nguồn tài liệu liên quan được thay đổi, chọn Test Case để thực hiện khi lập kế hoạch để kiểm thử hồi quy bằng cách xem yêu cầu độ bao phủ.