Sự khác biệt giữa các bài kiểm tra đơn vị, chức năng, chấp nhận và tích hợp là gì? [đóng cửa]


799

Sự khác biệt giữa thử nghiệm đơn vị, chức năng, chấp nhận và tích hợp (và bất kỳ loại thử nghiệm nào khác mà tôi không đề cập đến) là gì?



1
Tôi nghĩ rằng bạn đã quên bao gồm kiểm tra tải!
Nói là giá rẻ Hiển thị cho tôi Mã

Câu trả lời:


1350

Tùy thuộc vào nơi bạn nhìn, bạn sẽ nhận được câu trả lời hơi khác nhau. Tôi đã đọc về chủ đề này rất nhiều, và đây là sự chắt lọc của tôi; một lần nữa, đây là một chút len ​​lỏi và những người khác có thể không đồng ý.

Bài kiểm tra đơn vị

Kiểm tra đơn vị chức năng nhỏ nhất, thường là một phương thức / hàm (ví dụ: được cung cấp một lớp với một trạng thái cụ thể, gọi phương thức x trên lớp sẽ khiến y xảy ra). Các bài kiểm tra đơn vị nên được tập trung vào một tính năng cụ thể (ví dụ: gọi phương thức pop khi ngăn xếp trống sẽ ném một InvalidOperationException). Tất cả mọi thứ nó chạm vào nên được thực hiện trong bộ nhớ; điều này có nghĩa là mã kiểm tra mã được kiểm tra không nên:

  • Gọi ra cộng tác viên (không tầm thường)
  • Truy cập mạng
  • Lượt cơ sở dữ liệu
  • Sử dụng hệ thống tập tin
  • Xoay lên một chủ đề
  • Vân vân.

Bất kỳ loại phụ thuộc nào chậm / khó hiểu / khởi tạo / thao tác nên được đặt ra / chế giễu / bất cứ điều gì bằng cách sử dụng các kỹ thuật thích hợp để bạn có thể tập trung vào những gì đơn vị mã đang làm, chứ không phải những gì phụ thuộc của nó làm.

Nói tóm lại, các bài kiểm tra đơn vị càng đơn giản càng tốt, dễ gỡ lỗi, đáng tin cậy (do các yếu tố bên ngoài giảm), nhanh chóng thực hiện và giúp chứng minh rằng các khối xây dựng nhỏ nhất của chức năng chương trình của bạn như dự định trước khi chúng được đặt cùng nhau. Thông báo trước là, mặc dù bạn có thể chứng minh rằng chúng hoạt động hoàn hảo trong sự cô lập, các đơn vị mã có thể nổ tung khi kết hợp với chúng ta ...

Kiểm tra tích hợp

Kiểm thử tích hợp xây dựng trên các kiểm thử đơn vị bằng cách kết hợp các đơn vị mã và kiểm tra kết quả hoạt động chính xác. Đây có thể là bộ phận bên trong của một hệ thống hoặc kết hợp nhiều hệ thống lại với nhau để làm một cái gì đó hữu ích. Ngoài ra, một điều khác biệt giữa kiểm tra tích hợp với kiểm tra đơn vị là môi trường. Kiểm thử tích hợp có thể và sẽ sử dụng các luồng, truy cập cơ sở dữ liệu hoặc làm bất cứ điều gì được yêu cầu để đảm bảo rằng tất cả các mã các thay đổi môi trường khác nhau sẽ hoạt động chính xác.

Nếu bạn đã xây dựng một số mã tuần tự và đơn vị đã kiểm tra bộ phận bên trong của nó mà không chạm vào đĩa, làm sao bạn biết rằng nó sẽ hoạt động khi bạn đang tải và lưu vào đĩa? Có lẽ bạn đã quên tuôn ra và loại bỏ filestreams. Có thể quyền truy cập tệp của bạn không chính xác và bạn đã kiểm tra các bộ phận sử dụng trong các luồng bộ nhớ. Cách duy nhất để tìm hiểu chắc chắn là kiểm tra nó 'thực tế' bằng cách sử dụng một môi trường gần nhất với sản xuất.

Ưu điểm chính là họ sẽ tìm thấy các lỗi mà đơn vị kiểm tra không thể như lỗi nối dây (ví dụ: trường hợp của lớp A bất ngờ nhận được một phiên bản B của null) và lỗi môi trường (nó chạy tốt trên máy CPU đơn của tôi, nhưng tôi Máy 4 lõi của đồng nghiệp không thể vượt qua các bài kiểm tra). Nhược điểm chính là các thử nghiệm tích hợp chạm vào nhiều mã hơn, kém tin cậy hơn, các lỗi khó chẩn đoán hơn và các thử nghiệm khó bảo trì hơn.

Ngoài ra, kiểm tra tích hợp không nhất thiết phải chứng minh rằng một tính năng hoàn chỉnh hoạt động. Người dùng có thể không quan tâm đến các chi tiết nội bộ của các chương trình của tôi, nhưng tôi thì có!

Kiểm tra chức năng

Kiểm tra chức năng kiểm tra tính năng cụ thể về tính chính xác bằng cách so sánh kết quả cho đầu vào đã cho so với thông số kỹ thuật. Các xét nghiệm chức năng không quan tâm đến kết quả trung gian hoặc tác dụng phụ, chỉ là kết quả (họ không quan tâm rằng sau khi thực hiện x, đối tượng y có trạng thái z). Chúng được viết để kiểm tra một phần của đặc tả kỹ thuật, như "hàm gọi Square (x) với đối số 2 trả về 4".

Xét nghiệm nghiệm thu

Kiểm tra chấp nhận dường như được chia thành hai loại:

Kiểm tra chấp nhận tiêu chuẩn bao gồm thực hiện các kiểm tra trên toàn hệ thống (ví dụ: sử dụng trang web của bạn thông qua trình duyệt web) để xem liệu chức năng của ứng dụng có thỏa mãn thông số kỹ thuật hay không. Ví dụ: "nhấp vào biểu tượng thu phóng sẽ phóng to chế độ xem tài liệu lên 25%." Không có kết quả thực sự liên tục, chỉ là kết quả vượt qua hoặc thất bại.

Ưu điểm là các bài kiểm tra được mô tả bằng tiếng Anh đơn giản và đảm bảo phần mềm, nói chung, là tính năng hoàn chỉnh. Nhược điểm là bạn đã chuyển một cấp độ khác lên kim tự tháp thử nghiệm. Các bài kiểm tra chấp nhận chạm vào hàng núi mã, vì vậy việc theo dõi một thất bại có thể khó khăn.

Ngoài ra, trong phát triển phần mềm nhanh, kiểm tra chấp nhận của người dùng bao gồm tạo các kiểm tra để phản ánh các câu chuyện của người dùng được tạo bởi / cho khách hàng của phần mềm trong quá trình phát triển. Nếu các bài kiểm tra vượt qua, điều đó có nghĩa là phần mềm sẽ đáp ứng yêu cầu của khách hàng và câu chuyện có thể được coi là hoàn thành. Một bộ kiểm tra chấp nhận về cơ bản là một đặc tả thực thi được viết bằng ngôn ngữ cụ thể của miền mô tả các kiểm tra bằng ngôn ngữ được sử dụng bởi người dùng hệ thống.

Phần kết luận

Chúng đều bổ sung cho nhau. Đôi khi, việc tập trung vào một loại hoặc tránh hoàn toàn chúng là một lợi thế. Sự khác biệt chính đối với tôi là một số thử nghiệm nhìn mọi thứ từ quan điểm của lập trình viên, trong khi những thử nghiệm khác sử dụng trọng tâm khách hàng / người dùng cuối.


19
+1. @Mark Simpson Thử nghiệm chức năng và chấp nhận có thể được tóm tắt là "thử nghiệm hệ thống" không? Trường hợp nào kiểm tra đầu cuối phù hợp? (quá nhiều từ vựng khác nhau theo sở thích của tôi)
Torsten Engelbrecht

3
@Franz Tôi đã nói về khả năng và sự dễ dàng mà bạn có thể giảm thiểu rủi ro thông qua việc cách ly các đơn vị mã và kiểm tra chúng. Mặc dù bạn nói đúng, ngôn ngữ tôi sử dụng hơi lỏng lẻo, vì các bài kiểm tra không thể chứng minh rằng mã không có lỗi.
Mark Simpson

15
Mặc dù có nhiều phiếu bầu, nhưng điều này là hoàn toàn sai. Các bài kiểm tra đơn vị không kiểm tra ngay cả các cộng tác viên "tầm thường"; bất kỳ sự phụ thuộc được tiêm phải được chế giễu. Kiểm tra chức năng không kiểm tra "hành vi"; họ chỉ kiểm tra "hàm", tức là "f (A) trả về B". Nếu tác dụng phụ quan trọng, đó là "hành vi". Nếu chúng bao gồm các cuộc gọi hệ thống, chúng cũng là các thử nghiệm "hệ thống", như trong "các thử nghiệm hệ thống hành vi". (Xem thử nghiệm @ bên dưới.) Các thử nghiệm "Chấp nhận" là một tập hợp con của "thử nghiệm hệ thống hành vi" bao gồm toàn bộ ngăn xếp. "Tích hợp" kiểm tra hướng lên, mô phỏng việc sử dụng thực tế; nó kiểm tra rằng tất cả các phụ thuộc có thể được tích hợp trong thực tế.
cdunn2001

7
@ cdunn2001: Đừng lo lắng, những lời chỉ trích mang tính xây dựng luôn tốt :) Nhận xét của bạn đã dạy tôi một vài điều tôi không biết và làm sạch thuật ngữ của mình phần nào. Tôi luôn muốn học hỏi những điều mới từ các nhà phát triển, những người rất thích thử nghiệm. Tôi nhớ lần đầu tiên tôi phát hiện ra blog của Miško Hevery - nó giống như một kho báu :)
Mark Simpson

11
@MarkSimpson mặc dù câu trả lời của bạn rất hay nhưng tôi muốn biết thêm một chút về các bài kiểm tra chức năng. Ý tôi là trong câu trả lời của bạn, đối với tôi, thật khó để phân biệt giữa kiểm tra chức năng và kiểm tra đơn vị. Tôi hy vọng bạn có thời gian cho việc này, tiếp tục công việc tuyệt vời!
Andrei Sandulescu

90

Điều quan trọng là bạn biết những điều khoản đó có ý nghĩa gì với đồng nghiệp của bạn. Các nhóm khác nhau sẽ có định nghĩa hơi khác nhau về ý nghĩa của chúng khi họ nói các bài kiểm tra "toàn bộ từ đầu đến cuối" chẳng hạn.

Gần đây tôi đã xem qua hệ thống đặt tên của Google cho các thử nghiệm của họ và tôi thích nó hơn - họ bỏ qua các đối số bằng cách chỉ sử dụng Nhỏ, Trung bình và Lớn. Để quyết định loại thử nghiệm nào phù hợp, họ xem xét một số yếu tố - mất bao lâu để chạy, truy cập mạng, cơ sở dữ liệu, hệ thống tệp, hệ thống bên ngoài, v.v.

http://googletesting.blogspot.com/2010/12/test-sizes.html

Tôi tưởng tượng sự khác biệt giữa Nhỏ, Trung bình và Lớn đối với nơi làm việc hiện tại của bạn có thể khác với Google.

Tuy nhiên, nó không chỉ là về phạm vi, mà còn về mục đích. Quan điểm của Mark về các quan điểm khác nhau cho các thử nghiệm, ví dụ như lập trình viên so với khách hàng / người dùng cuối, thực sự quan trọng.


6
+1 cho điều đặt tên thử nghiệm google vì nó giúp đưa ra một chút quan điểm về lý do tại sao các tổ chức / người khác nhau có định nghĩa khác nhau cho các thử nghiệm.
Mark Simpson

Đây cũng là một bài viết rất hay về lý do tại sao bạn sử dụng các cấp độ kiểm tra khác nhau và những gì bạn nhận được từ chúng: kentcdodds.com/blog/unit-vs-integration-vs-e2e-tests
thử nghiệm

63

http://martinfowler.com/articles/microservice-testing/

Bài đăng trên blog của Martin Fowler nói về các chiến lược để kiểm tra mã (Đặc biệt là trong kiến ​​trúc dịch vụ vi mô) nhưng hầu hết áp dụng cho bất kỳ ứng dụng nào.

Tôi sẽ trích dẫn từ slide tóm tắt của anh ấy:

  • Kiểm tra đơn vị - thực hiện các phần mềm nhỏ nhất có thể kiểm tra trong ứng dụng để xác định xem chúng có hoạt động như mong đợi hay không.
  • Kiểm tra tích hợp - xác minh đường dẫn giao tiếp và tương tác giữa các thành phần để phát hiện lỗi giao diện.
  • Kiểm tra thành phần - giới hạn phạm vi của phần mềm được sử dụng ở một phần của hệ thống được kiểm tra, thao tác hệ thống thông qua giao diện mã nội bộ và sử dụng kiểm tra nhân đôi để tách mã được kiểm tra khỏi các thành phần khác.
  • Kiểm tra hợp đồng - xác minh các tương tác tại ranh giới của một dịch vụ bên ngoài khẳng định rằng nó đáp ứng hợp đồng mà dịch vụ tiêu thụ mong đợi.
  • Thử nghiệm đầu cuối - xác minh rằng một hệ thống đáp ứng các yêu cầu bên ngoài và đạt được các mục tiêu của nó, thử nghiệm toàn bộ hệ thống, từ đầu đến cuối.

Đó là một bài viết tuyệt vời bằng cách này. Tuy nhiên tôi không hoàn toàn hiểu thử nghiệm hợp đồng là gì. Họ không thừa trong các bài kiểm tra thành phần và tích hợp?
wheleph

Trong một số ngôn ngữ (mà ông Fowler sử dụng), bạn có thể triển khai giao diện không bị lộ khi sử dụng định nghĩa chuẩn của một lớp, ví dụ void IMyInterface.MyMethod (). Đến lượt nó sẽ có những thử nghiệm riêng. Mặc dù tại thời điểm đó, bạn đang quay trở lại BDD .. Trớ trêu thay, ông Fowler cũng đã giành được đất.
Skarsnik

2
đó không phải là bài viết của Fowler btw, chỉ cần đăng ở đó. Kiểm tra hợp đồng là kiểm tra được thực hiện sau khi khách hàng bắt đầu sử dụng dịch vụ của bạn, sau đó bạn viết kiểm tra để kiểm tra xem bạn có phá vỡ điều gì cho khách hàng cụ thể đó không, ví dụ thay đổi dịch vụ api.
Rafał użyński

Đơn vị kiểm tra, tích hợp và kiểm tra thành phần chủ yếu nói về các phần mềm bên trong được nhà phát triển kiểm soát chặt chẽ. Một vấn đề trong ba đầu tiên có nghĩa là thay đổi nguồn của bạn để khắc phục vấn đề. - Các thử nghiệm hợp đồng chạm vào những gì được hứa hẹn với bạn về chức năng nhưng bạn có thể không thể thay đổi trực tiếp khi đối mặt với khiếm khuyết. Điều này đòi hỏi phải thêm mã hỗ trợ để khắc phục những vấn đề có thể xảy ra thay vì chỉ sửa lỗi. - Vì vậy, bạn sẽ làm việc xung quanh một dịch vụ web cung cấp cho bạn json không đúng định dạng ngay cả khi đặc tả hợp đồng nói với bạn rằng nó có cấu trúc nhất định.
Yemi Bedu 2/11/2016

31

Kiểm thử đơn vị - Như tên cho thấy, phương pháp này kiểm tra ở cấp đối tượng. Các thành phần phần mềm riêng lẻ được kiểm tra cho bất kỳ lỗi nào. Kiến thức về chương trình là cần thiết cho bài kiểm tra này và các mã kiểm tra được tạo ra để kiểm tra xem phần mềm có hoạt động như dự định hay không.

Kiểm tra chức năng - Được thực hiện mà không có bất kỳ kiến ​​thức nào về hoạt động nội bộ của hệ thống. Người kiểm tra sẽ cố gắng sử dụng hệ thống bằng cách làm theo các yêu cầu, bằng cách cung cấp các đầu vào khác nhau và kiểm tra các đầu ra được tạo. Thử nghiệm này còn được gọi là thử nghiệm hộp kín hoặc hộp đen.

Kiểm tra chấp nhận - Đây là thử nghiệm cuối cùng được thực hiện trước khi phần mềm được bàn giao cho khách hàng. Nó được thực hiện để đảm bảo rằng phần mềm được phát triển đáp ứng tất cả các yêu cầu của khách hàng. Có hai loại thử nghiệm chấp nhận - một loại được thực hiện bởi các thành viên của nhóm phát triển, được gọi là thử nghiệm chấp nhận nội bộ (thử nghiệm Alpha) và loại thử nghiệm được thực hiện bởi khách hàng hoặc người dùng cuối được gọi là (thử nghiệm Beta)

Kiểm thử tích hợp - Các mô-đun riêng lẻ đã được thử nghiệm đơn vị được tích hợp với nhau. Nói chung, hai cách tiếp cận được tuân theo:

1) Từ trên xuống
2) Từ dưới lên


Bạn có ý nghĩa gì từ trên xuống và từ dưới lên? Là thử nghiệm tích hợp giống như thử nghiệm từ đầu đến cuối?
tamj0rd2

18

Điều này rất đơn giản.

  1. Kiểm thử đơn vị: Đây là thử nghiệm thực sự được thực hiện bởi các nhà phát triển có kiến ​​thức về mã hóa. Thử nghiệm này được thực hiện ở giai đoạn mã hóa và nó là một phần của thử nghiệm hộp trắng. Khi một phần mềm được phát triển, nó được phát triển thành một đoạn mã hoặc các đoạn mã được gọi là một đơn vị. Và thử nghiệm riêng lẻ của các đơn vị này được gọi là thử nghiệm đơn vị được thực hiện bởi các nhà phát triển để tìm ra một số loại lỗi của con người như thiếu bảo hiểm tuyên bố, v.v.

  2. Kiểm tra chức năng: Thử nghiệm này được thực hiện ở giai đoạn thử nghiệm (QA) và nó là một phần của thử nghiệm hộp đen. Việc thực hiện thực tế của các trường hợp thử nghiệm bằng văn bản trước đó. Thử nghiệm này thực sự được thực hiện bởi những người thử nghiệm, họ tìm thấy kết quả thực tế của bất kỳ chức năng nào trong trang web và so sánh kết quả này với kết quả mong đợi. Nếu họ tìm thấy bất kỳ sự chênh lệch thì đây là một lỗi.

  3. Kiểm tra chấp nhận: gọi là UAT. Và điều này thực sự được thực hiện bởi người thử nghiệm cũng như các nhà phát triển, nhóm quản lý, tác giả, nhà văn và tất cả những người có liên quan đến dự án này. Để đảm bảo dự án cuối cùng đã sẵn sàng để được cung cấp với các lỗi miễn phí.

  4. Kiểm thử tích hợp: Các đơn vị mã (được giải thích trong điểm 1) được tích hợp với nhau để hoàn thành dự án. Các đơn vị mã này có thể được viết bằng công nghệ mã hóa khác nhau hoặc có thể là các phiên bản khác nhau để thử nghiệm này được thực hiện bởi các nhà phát triển để đảm bảo rằng tất cả các đơn vị mã tương thích với nhau và không có bất kỳ vấn đề tích hợp nào.


1
@OlegTsyba câu trả lời đã đến 4 năm sau khi câu hỏi được trả lời.
bentesha

1
Chúng ta không bao giờ nên bắt đầu một câu trả lời với "Điều này rất đơn giản", đặc biệt nếu đó là một chủ đề phức tạp như chủ đề này.
milosmns

6

Tôi mới kiểm tra mã. Các bài kiểm tra đơn vị có vẻ như lãng phí thời gian. Tôi nghĩ rằng tôi đang làm thử nghiệm đơn vị nhưng tôi đang thử nghiệm tích hợp và sau đó tôi đọc về thử nghiệm đơn vị và nó có vẻ ngớ ngẩn, có thể cho những người có rất ít kinh nghiệm? Có một cơ hội tôi đang thiếu một số điểm.
PixMach

Nếu Đơn vị được định nghĩa rộng, thì bạn đang kiểm tra đơn vị chính xác. Tôi phản đối chi tiết thực hiện thử nghiệm. Một lớp riêng không nên là "đơn vị thử nghiệm". Tuy nhiên, nếu bạn có một vài lớp học công khai, bạn có thể bị nhạo báng một lớp trong khi thử nghiệm lớp khác. Đó là cuộc tranh luận thực sự. Là đơn vị (a) toàn bộ thư viện của bạn? (b) mỗi lớp công khai trong thư viện? Hoặc (c), mỗi phương thức công khai trong mỗi lớp? Tôi thích kiểm tra một thư viện nhất định như một thành phần tích hợp, nhưng để giả định hoặc giả mạo các phụ thuộc bên ngoài (trừ khi chúng nhanh và đáng tin cậy). Vì vậy, tôi nghĩ rằng tôi đang ở bên bạn.
cdunn2001

1
@PixMach: thực sự là cách khác. Không có các bài kiểm tra đơn vị (tốt) tại chỗ, lãng phí rất nhiều thời gian của bạn, nếu bạn (hoặc ai đó) phải thay đổi mã đó trong tương lai. Nếu bạn có kinh nghiệm duy trì mã có và không có kiểm tra đơn vị, bạn sẽ biết sự khác biệt. Ý tưởng là, nếu một bài kiểm tra đơn vị bị hỏng, bạn nên biết chính xác phần nào của mã phải được sửa. Không thực hiện các thử nghiệm tích hợp / chấp nhận quy mô lớn thường chỉ cho bạn biết: nó không hoạt động. Và sau đó bạn phải bắt đầu gỡ lỗi trường cũ ...
Hàng hóa

@ Goodsquirrel, nó phụ thuộc vào những gì bạn gọi là "đơn vị". Đó chính là vấn đề. Các xét nghiệm xấu sẽ bị xóa trong quá trình tái cấu trúc. Các bài kiểm tra tốt vẫn sẽ hữu ích. Các bài kiểm tra xấu không có giá trị và cản trở. Các bài kiểm tra tốt là tài liệu tự và đánh giá rất cao. Chúng ta hãy cụ thể. Tôi có một phương thức riêng để trả về một giá trị nếu giá trị khác là True, nếu không thì là giá trị mặc định. (Mã kế thừa.) Phương pháp đó có nên được thử nghiệm không? Tôi nói là không. Một phương thức riêng khác trả về số Fibonacci thứ n. Có nên thử nghiệm không? Tôi nói "có.
cdunn2001

1
tiếp xúc nhỏ nhất . Sự khác biệt lớn.
cdunn2001 ngày

5

Tôi sẽ giải thích cho bạn điều này với một ví dụ thực tế và không có công cụ lý thuyết:

Một nhà phát triển viết mã. Không có GUI nào được triển khai. Kiểm tra ở cấp độ này xác minh rằng các chức năng hoạt động chính xác và các loại dữ liệu là chính xác. Giai đoạn thử nghiệm này được gọi là thử nghiệm đơn vị.

Khi GUI được phát triển và ứng dụng được gán cho người kiểm tra, anh ta sẽ xác minh các yêu cầu nghiệp vụ với máy khách và thực hiện các kịch bản khác nhau. Đây được gọi là thử nghiệm chức năng. Ở đây chúng tôi đang ánh xạ các yêu cầu của khách hàng với các luồng ứng dụng.

Kiểm thử tích hợp: giả sử ứng dụng của chúng tôi có hai mô-đun: Nhân sự và Tài chính. Mô-đun nhân sự đã được chuyển giao và thử nghiệm trước đó. Bây giờ Tài chính được phát triển và có sẵn để thử nghiệm. Các tính năng phụ thuộc lẫn nhau cũng có sẵn ngay bây giờ, vì vậy trong giai đoạn này, bạn sẽ kiểm tra các điểm giao tiếp giữa hai và sẽ xác minh chúng đang hoạt động theo yêu cầu.

Kiểm tra hồi quy là một giai đoạn quan trọng khác, được thực hiện sau bất kỳ sự phát triển mới hoặc sửa lỗi. Mục đích của nó là để xác minh các chức năng làm việc trước đây.


1
"Một nhà phát triển viết mã. Chưa có GUI nào được triển khai. Thử nghiệm ở cấp độ này xác minh rằng các chức năng hoạt động chính xác và các loại dữ liệu là chính xác. Giai đoạn thử nghiệm này được gọi là Thử nghiệm đơn vị" Điều này không đúng. GUI thực sự chỉ là một "plugin". Bạn đã có thể viết các bài kiểm tra E2E vào đầu ra API của mình. (hoặc bất kỳ đối tượng phản hồi nào bạn tạo)
user3790897

4

kiểm thử đơn vị: kiểm tra mô-đun riêng lẻ hoặc thành phần độc lập trong một ứng dụng được biết là kiểm thử đơn vị, kiểm thử đơn vị sẽ được thực hiện bởi nhà phát triển.

kiểm thử tích hợp: kết hợp tất cả các mô-đun và kiểm tra ứng dụng để xác minh giao tiếp và luồng dữ liệu giữa các mô-đun có hoạt động tốt hay không, thử nghiệm này cũng được thực hiện bởi các nhà phát triển.

kiểm tra chức năng kiểm tra chức năng cá nhân của một ứng dụng có nghĩa là kiểm tra chức năng

thử nghiệm chấp nhận thử nghiệm này được thực hiện bởi người dùng cuối hoặc khách hàng cho dù ứng dụng xây dựng theo yêu cầu của khách hàng và đặc điểm kỹ thuật của khách hàng được gọi là thử nghiệm chấp nhận

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.