Kiểm tra đơn vị so với kiểm tra chức năng


Câu trả lời:


254

Kiểm thử đơn vị - kiểm tra một đơn vị riêng lẻ, chẳng hạn như một phương thức (hàm) trong một lớp, với tất cả các phụ thuộc được mô phỏng.

Kiểm tra chức năng - Kiểm tra tích hợp AKA, kiểm tra một lát chức năng trong hệ thống. Điều này sẽ kiểm tra nhiều phương thức và có thể tương tác với các phụ thuộc như Cơ sở dữ liệu hoặc Dịch vụ web.


170
Hãy để tôi không đồng ý với "Kiểm tra tích hợp AKA". Kiểm tra tích hợp, kiểm tra sự tích hợp giữa 2 hoặc nhiều hệ thống / hệ thống con trong mã của bạn. Ví dụ, kiểm tra truy vấn SQL thông qua ORM, kiểm tra ORM và cơ sở dữ liệu hoạt động tốt với nhau. Chức năng kiểm tra AKA Kết thúc để kết thúc IMHO.
liệu

7
Tôi đồng ý với @graffic Kiểm tra chức năng! = Kiểm thử tích hợp Bạn phải nhầm lẫn giữa "tích hợp" các thành phần phụ của hệ thống với nhau như trạng thái bền bỉ, v.v. Nhưng nói chung, Kiểm thử tích hợp có phạm vi rộng hơn nhiều.
nabster 13/03/2015

4
Không, không nhầm lẫn về bất cứ điều gì.
bpapa

3
Kiểm tra tích hợp IS-A Kiểm tra chức năng. Nhưng không phải ngược lại. Google "kiểm tra chức năng và không chức năng" và kiểm tra "Hình ảnh".
Andrejs

4
Câu trả lời này chỉ đơn giản là SAI! Kiểm tra chức năng thậm chí KHÔNG gần với kiểm tra tích hợp ..
sotn

517

Các bài kiểm tra đơn vị cho nhà phát triển biết rằng mã đang làm đúng; kiểm tra chức năng nói với một nhà phát triển rằng mã đang làm đúng .

Bạn có thể đọc thêm tại Kiểm tra đơn vị so với Kiểm tra chức năng


Một sự tương tự trong cuộc sống thực của giải pháp đơn vị và kiểm tra chức năng có thể được mô tả như sau,

Nhiều lần sự phát triển của một hệ thống được ví như việc xây dựng một ngôi nhà. Mặc dù sự tương tự này không hoàn toàn chính xác, chúng ta có thể mở rộng nó nhằm mục đích tìm hiểu sự khác biệt giữa các bài kiểm tra đơn vị và chức năng.

Kiểm tra đơn vị tương tự như một thanh tra xây dựng đến thăm công trường xây dựng của một ngôi nhà. Ông tập trung vào các hệ thống nội bộ khác nhau của ngôi nhà, nền tảng, khung, điện, hệ thống ống nước, v.v. Ông đảm bảo (kiểm tra) rằng các bộ phận của ngôi nhà sẽ hoạt động chính xác và an toàn, nghĩa là đáp ứng mã xây dựng.

Các thử nghiệm chức năng trong kịch bản này tương tự như chủ nhà đến thăm cùng công trường xây dựng này. Ông cho rằng các hệ thống nội bộ sẽ hành xử phù hợp, rằng thanh tra tòa nhà đang thực hiện nhiệm vụ của mình. Chủ nhà tập trung vào những gì nó sẽ được sống trong ngôi nhà này. Anh ấy quan tâm đến diện mạo của ngôi nhà, các phòng khác nhau có kích thước thoải mái, ngôi nhà có phù hợp với nhu cầu của gia đình không, là cửa sổ ở một vị trí tốt để đón ánh nắng mặt trời buổi sáng.

Chủ nhà đang thực hiện các bài kiểm tra chức năng trên ngôi nhà. Anh ấy có quan điểm của người dùng.

Thanh tra tòa nhà đang thực hiện các bài kiểm tra đơn vị trên ngôi nhà. Ông có quan điểm của người xây dựng.


Như một bản tóm tắt,

Bài kiểm tra đơn vị được viết từ góc độ lập trình viên . Chúng được tạo ra để đảm bảo rằng một phương thức cụ thể (hoặc một đơn vị ) của một lớp thực hiện một tập hợp các nhiệm vụ cụ thể.

Kiểm tra chức năng được viết từ quan điểm của người dùng . Họ đảm bảo rằng hệ thống đang hoạt động như người dùng đang mong đợi.


18
Các trích dẫn là một chút mơ hồ cho một người mới biết khái niệm này.

2
@ fig-gnuton, tôi đã cố gắng xây dựng để hy vọng không làm cho mô tả là mơ hồ. Bên trong liên kết họ cung cấp một ví dụ hay, tôi có thể cập nhật câu trả lời bằng trích dẫn nếu bạn nghĩ rằng điều đó có thể giúp OP.
Anthony Forloney

148
Có lẽ một cách khác để nói nó là "Kiểm thử đơn vị đảm bảo mã thực hiện những gì lập trình viên muốn, Kiểm tra chức năng đảm bảo lập trình viên đang làm những gì khách hàng muốn"?
JS.

3
Tôi thích điều đó nhưng sẽ điều chỉnh nó để. Một chức năng kiểm tra đảm bảo các ứng dụng cho phép người dùng thực hiện một hành động. Một Unit Test bảo đảm còn lại hoạt động như thế nào đang hy vọng lập trình viên.
Adam

2
Không phải những gì lập trình viên muốn tuân thủ những gì người dùng cuối muốn? Tại sao viết một bài kiểm tra không phục vụ những gì khách hàng mong đợi?
O.Badr

140
  • Một bài kiểm tra đơn vị kiểm tra một đơn vị hành vi độc lập . Một đơn vị hành vi là gì? Đây là phần nhỏ nhất của hệ thống có thể được kiểm tra đơn vị độc lập. (Định nghĩa này thực sự là hình tròn, IOW nó thực sự không phải là một định nghĩa nào cả , nhưng nó dường như làm việc khá tốt trong thực tế, bởi vì bạn có thể sắp xếp của hiểu nó bằng trực giác.)

  • Một bài kiểm tra chức năng kiểm tra một phần độc lập của chức năng.


  • Một đơn vị hành vi rất nhỏ: trong khi tôi hoàn toàn không thích câu thần chú "một bài kiểm tra đơn vị cho mỗi phương pháp" ngu ngốc này, từ góc độ kích thước thì nó đúng. Một đơn vị hành vi là một cái gì đó giữa một phần của một phương thức và có thể là một vài phương thức. Nhiều nhất là một đối tượng, nhưng không nhiều hơn một.

  • Một phần chức năng thường bao gồm nhiều phương thức và cắt ngang qua một số đối tượng và thường thông qua nhiều lớp kiến ​​trúc.


  • Một bài kiểm tra đơn vị sẽ giống như: khi tôi gọi validate_country_code()hàm và truyền cho nó mã quốc gia 'ZZ'thì nó sẽ trả về false.

  • Một thử nghiệm chức năng sẽ là: khi tôi điền vào biểu mẫu giao hàng với mã quốc gia ZZ, tôi sẽ được chuyển hướng đến một trang trợ giúp cho phép tôi chọn mã quốc gia của mình ra khỏi menu.


  • Các bài kiểm tra đơn vị được viết bởi các nhà phát triển, cho các nhà phát triển, từ quan điểm của nhà phát triển.

  • Các thử nghiệm chức năng có thể phải đối mặt với người dùng, trong trường hợp đó, chúng được viết bởi các nhà phát triển cùng với người dùng (hoặc có thể với các công cụ phù hợp và đúng người dùng ngay cả bởi chính người dùng), từ quan điểm của người dùng. Hoặc họ có thể là nhà phát triển phải đối mặt (ví dụ: khi họ mô tả một số chức năng nội bộ mà người dùng không quan tâm), trong trường hợp đó, họ được viết bởi nhà phát triển, cho nhà phát triển, nhưng vẫn theo quan điểm của người dùng.


  • Trong trường hợp trước, các kiểm tra chức năng cũng có thể đóng vai trò kiểm tra chấp nhận và dưới dạng mã hóa thực thi các yêu cầu chức năng hoặc đặc tả chức năng, trong trường hợp sau, chúng cũng có thể đóng vai trò kiểm tra tích hợp.

  • Kiểm tra đơn vị thay đổi thường xuyên, kiểm tra chức năng không bao giờ nên thay đổi trong một bản phát hành chính.



câu trả lời tuyệt vời! một điều - "các bài kiểm tra chức năng không bao giờ nên thay đổi trong một bản phát hành chính" tại sao vậy?
Lazer

5
@Lazer, @cdeszaq: Trong nhiều dự án, thay đổi số phiên bản chính được sử dụng để biểu thị tính không tương thích ngược và OTOH nếu phiên bản chính không thay đổi, khả năng tương thích ngược được đảm bảo . "Tương thích ngược" nghĩa là gì? Nó có nghĩa là "không thay đổi hành vi người dùng có thể nhìn thấy". Và các kiểm tra chức năng là một mã hóa thực thi của đặc tả hành vi người dùng có thể nhìn thấy. Vì vậy, nếu số lượng lớn không thay đổi, sau đó các xét nghiệm chức năng không được phép thay đổi một trong hai và ngược lại, nếu tets chức năng làm thay đổi, sau đó số lượng lớn phải thay đổi là tốt.
Jörg W Mittag

2
Lưu ý: Tôi không nói gì về việc thêm các bài kiểm tra chức năng! Việc có thêm chức năng không có trước khi tạo thành thay đổi không tương thích ngược hay không, tùy thuộc vào dự án. Đối với phần mềm người dùng cuối, có lẽ là không. Nhưng đối với một ngôn ngữ lập trình? Có thể: giới thiệu một từ khóa mới, ví dụ, làm cho các chương trình hiện đang hoạt động sử dụng từ khóa đó làm tên biến không hợp lệ và do đó là một thay đổi không tương thích ngược.
Jörg W Mittag

3
@ JörgWMittag thích ý tưởng đó: 'các bài kiểm tra chức năng là một mã hóa thực thi của đặc tả hành vi người dùng có thể nhìn thấy' ... dù các siêu chuyên gia khác có thực sự đồng ý hay không, nó giúp tôi với câu hỏi ban đầu, để đưa ra "sự khác biệt giữa 'em "
mike gặm nhấm

1
"Một thử nghiệm chức năng sẽ là: khi tôi điền vào mẫu vận chuyển với mã quốc gia ZZ, tôi sẽ được chuyển hướng đến một trang trợ giúp cho phép tôi chọn mã quốc gia của mình ra khỏi menu." Đây là loại kén chọn, nhưng tôi sẽ gọi đó là "thử nghiệm chấp nhận". Kiểm tra chức năng sẽ kiểm tra việc nhập ZZ trên biểu mẫu giao hàng đã chuyển người dùng đến đúng URL hoặc ném ngoại lệ hoặc lỗi cụ thể.
Bob Ray

98

TLDR:

Để trả lời câu hỏi: Kiểm thử đơn vị là một kiểu con của Kiểm tra chức năng.


Có hai nhóm lớn: Kiểm tra chức năngphi chức năng . Hình minh họa tốt nhất (không đầy đủ) mà tôi tìm thấy là bức này (nguồn: www.inflectra.com ):

nhập mô tả hình ảnh ở đây

(1) Kiểm thử đơn vị: kiểm tra các đoạn mã nhỏ (hàm / phương thức). Nó có thể được coi là thử nghiệm chức năng (hộp trắng).

Khi các chức năng được đặt cùng nhau, bạn tạo một mô-đun = một phần độc lập, có thể bằng Giao diện người dùng có thể được kiểm tra (Kiểm tra mô-đun). Khi bạn có ít nhất hai mô-đun riêng biệt, sau đó bạn dán chúng lại với nhau và sau đó đến:

(2) Kiểm tra tích hợp: khi bạn đặt hai hoặc nhiều phần của mô-đun (phụ) hoặc hệ thống (phụ) lại với nhau và xem liệu chúng có chơi tốt với nhau không.

Sau đó, bạn tích hợp mô-đun thứ 3, rồi thứ 4 và thứ 5 theo bất kỳ thứ tự nào mà bạn hoặc nhóm của bạn thấy phù hợp và một khi tất cả các mảnh ghép được đặt cùng nhau, sẽ xuất hiện

(3) Kiểm tra hệ thống: kiểm tra toàn bộ SW. Đây là khá nhiều "Kiểm tra tích hợp của tất cả các phần với nhau".

Nếu điều đó ổn, thì hãy đến

(4) Kiểm tra chấp nhận: chúng tôi đã xây dựng những gì khách hàng yêu cầu thực sự chưa? Tất nhiên, Kiểm tra chấp nhận nên được thực hiện trong suốt vòng đời , không chỉ ở giai đoạn cuối, nơi bạn nhận ra rằng khách hàng muốn một chiếc xe thể thao và bạn đã chế tạo một chiếc xe tải.

nhập mô tả hình ảnh ở đây


2
Tôi đã thấy nhiều hình ảnh như thế trong google, mô tả "Kiểm thử đơn vị" là một loại "Kiểm tra chức năng". Nhưng tại sao các câu trả lời khác ở đây mô tả khái niệm hoàn toàn khác: "Kiểm tra chức năng" là kiểm tra từ đầu đến cuối và kiểm tra đơn vị không phải là kiểm tra chức năng? Tôi đã bối rối. Có hai "tôn giáo" khác nhau định nghĩa thuật ngữ "Kiểm tra chức năng" khác nhau hay sao?
Ruslan Stelmachenko

Câu trả lời (ngay cả những câu được đánh giá cao) cũng có thể sai;)
Andrejs

1
Tôi thích hình ảnh, nhưng đối với Kiểm tra tích hợp hệ thống, câu đố sẽ xuất hiện "hoàn chỉnh", không có thêm bất kỳ vị trí nào để các phần khác kết nối.
Jonathon Reinhart

4
@JonathonReinhart - không nhất thiết. Các cạnh mở có thể thể hiện khả năng mở rộng dễ dàng của hệ thống với các tính năng mới, đặc biệt hữu ích nếu sử dụng phương pháp phát triển như Agile.
Myles

Từ nhiều câu trả lời mâu thuẫn ở trên, rõ ràng Functional Testkhông phải là một thuật ngữ được tiêu chuẩn hóa và có ý nghĩa khác nhau đối với những người khác nhau.
Penghe Geng

12

"Kiểm tra chức năng" không có nghĩa là bạn đang kiểm tra một chức năng (phương thức) trong mã của mình. Điều đó có nghĩa là, nói chung, bạn đang kiểm tra chức năng hệ thống - khi tôi chạy foo file.txtở dòng lệnh file.txt, có lẽ các dòng trong đó bị đảo ngược. Ngược lại, một thử nghiệm đơn vị thường bao gồm một trường hợp duy nhất của một phương thức - length("hello")nên trả về 5 và length("hi")sẽ trả về 2.

Xem thêm IBM đảm nhận ranh giới giữa thử nghiệm đơn vị và thử nghiệm chức năng .


Chà, thú vị, nhưng liên kết bạn hiển thị có ý nghĩa khác: chức năng là về chức năng để thực hiện thông qua việc thực hiện, tức là thử nghiệm từ quan điểm người dùng, đó là một chức năng cho người dùng.
Stefano Scarpanti

8

Tuy nhiên, điểm khác biệt cơ bản là các thử nghiệm chức năng kiểm tra ứng dụng từ bên ngoài, từ quan điểm của người dùng. Kiểm thử đơn vị kiểm tra ứng dụng từ bên trong, từ quan điểm của lập trình viên. Kiểm tra chức năng sẽ giúp bạn xây dựng một ứng dụng có chức năng phù hợp và đảm bảo bạn không bao giờ vô tình phá vỡ nó. Các bài kiểm tra đơn vị sẽ giúp bạn viết mã sạch và không có lỗi.

Lấy từ cuốn sách "Python TDD" của Harry Percival


8

Theo ISTQB hai cái đó không thể so sánh được. Kiểm thử chức năng không phải là kiểm thử tích hợp.

Kiểm thử đơn vị là một trong các cấp độ kiểm tra và kiểm tra chức năng là loại kiểm tra.

Về cơ bản:

Chức năng của một hệ thống (hoặc thành phần) là 'những gì nó làm'. Điều này thường được mô tả trong một đặc tả yêu cầu, đặc tả chức năng hoặc trong các trường hợp sử dụng.

trong khi

Kiểm tra thành phần, còn được gọi là kiểm tra đơn vị, mô-đun và chương trình, tìm kiếm các khiếm khuyết và xác minh chức năng của phần mềm (ví dụ: mô-đun, chương trình, đối tượng, lớp, v.v.) có thể kiểm tra riêng.

Theo thử nghiệm thành phần / đơn vị ISTQB có thể là chức năng hoặc không hoạt động:

Kiểm tra thành phần có thể bao gồm kiểm tra chức năng và các đặc điểm phi chức năng cụ thể như hành vi tài nguyên (ví dụ rò rỉ bộ nhớ), kiểm tra hiệu năng hoặc độ bền, cũng như kiểm tra cấu trúc (ví dụ: bảo hiểm quyết định).

Báo giá từ Cơ sở kiểm thử phần mềm - Chứng nhận ISTQB


Tôi đồng ý về quá nhiều lông tơ, nhưng dù sao họ là người chơi lớn nhất ở đó và câu hỏi này là về lý thuyết, vì vậy tôi nghĩ ISTQB nên đủ tốt.
Dominik

6

Trong Rails, thư mục đơn vị có nghĩa là giữ các bài kiểm tra cho các mô hình của bạn, thư mục chức năng có nghĩa là giữ các bài kiểm tra cho bộ điều khiển của bạn và thư mục tích hợp có nghĩa là giữ các bài kiểm tra liên quan đến bất kỳ số lượng bộ điều khiển nào tương tác. Lịch thi đấu là một cách tổ chức dữ liệu thử nghiệm; họ cư trú trong thư mục đồ đạc. Tệp test_helper.rb giữ cấu hình mặc định cho các thử nghiệm của bạn. bạn có thể truy cập này .


3

Cách tôi nghĩ về nó là như thế này: Một bài kiểm tra đơn vị xác định rằng mã thực hiện những gì bạn dự định làm mã (ví dụ: bạn muốn thêm tham số a và b, thực tế bạn thêm chúng và không trừ chúng), kiểm tra chức năng kiểm tra rằng tất cả các mã làm việc cùng nhau để có được kết quả chính xác, do đó, những gì bạn dự định mã thực hiện sẽ có kết quả đúng trong hệ thống.


3

AFAIK, kiểm tra đơn vị KHÔNG phải là kiểm tra chức năng. Hãy để tôi giải thích với một ví dụ nhỏ. Bạn muốn kiểm tra xem chức năng đăng nhập của ứng dụng web email có hoạt động hay không, giống như người dùng sẽ làm. Đối với điều đó, các bài kiểm tra chức năng của bạn nên như thế này.

1- existing email, wrong password -> login page should show error "wrong password"!
2- non-existing email, any password -> login page should show error "no such email".
3- existing email, right password -> user should be taken to his inbox page.
4- no @symbol in email, right password -> login page should say "errors in form, please fix them!" 

Các kiểm tra chức năng của chúng tôi có nên kiểm tra xem chúng tôi có thể đăng nhập với đầu vào không hợp lệ không? Ví dụ. Email không có ký hiệu @, tên người dùng có nhiều hơn một dấu chấm (chỉ cho phép một dấu chấm), .com xuất hiện trước @ vv? Nói chung là không! Đó là loại thử nghiệm đi vào kiểm tra đơn vị của bạn.

Bạn có thể kiểm tra xem đầu vào không hợp lệ có bị từ chối bên trong các thử nghiệm đơn vị như trong các thử nghiệm bên dưới không.

class LoginInputsValidator
  method validate_inputs_values(email, password)
    1-If email is not like string.string@myapp.com, then throw error.
    2-If email contains abusive words, then throw error.
    3-If password is less than 10 chars, throw error.

Lưu ý rằng kiểm tra chức năng 4 thực sự đang làm những gì đơn vị kiểm tra 1 đang làm. Đôi khi, các kiểm tra chức năng có thể lặp lại một số (không phải tất cả) các thử nghiệm được thực hiện bằng các thử nghiệm đơn vị, vì những lý do khác nhau. Trong ví dụ của chúng tôi, chúng tôi sử dụng kiểm tra chức năng 4 để kiểm tra xem một thông báo lỗi cụ thể có xuất hiện khi nhập dữ liệu không hợp lệ hay không. Chúng tôi không muốn kiểm tra xem tất cả các đầu vào xấu có bị từ chối hay không. Đó là công việc của các bài kiểm tra đơn vị.


1
Điểm hay về kiểm thử chức năng thường có phạm vi hẹp hơn nhiều so với kiểm thử đơn vị (về kiểm thử chức năng được chú trọng hơn về cơ bản chứng minh chức năng mong đợi đạt được), nhưng tôi nói rằng chúng mô tả các chiều khác nhau ( thành phần trong kiểm thử đơn vị so với mục đích trong các bài kiểm tra chức năng); một số thử nghiệm đơn vị là thử nghiệm chức năng và một số thử nghiệm chức năng là thử nghiệm đơn vị, nhưng cũng có rất nhiều Venn không trùng lặp.
Myles

Các ví dụ tốt về những gì đang và không nằm trong phạm vi cho các thử nghiệm chức năng.
Myles

2

KIỂM TRA ĐƠN VỊ

Kiểm thử đơn vị bao gồm kiểm tra đơn vị mã nhỏ nhất thường là các hàm hoặc phương thức. Kiểm thử đơn vị chủ yếu được thực hiện bởi nhà phát triển của đơn vị / phương thức / chức năng, bởi vì họ hiểu cốt lõi của một chức năng. Mục tiêu chính của nhà phát triển là bao gồm mã bằng các bài kiểm tra đơn vị.

Nó có một hạn chế là một số chức năng không thể được kiểm tra thông qua các bài kiểm tra đơn vị. Ngay cả sau khi hoàn thành tất cả các bài kiểm tra đơn vị; nó không đảm bảo hoạt động chính xác của sản phẩm. Chức năng tương tự có thể được sử dụng trong một số phần của hệ thống trong khi kiểm tra đơn vị chỉ được viết cho một lần sử dụng.

THỬ NGHIỆM CHỨC NĂNG

Đây là một loại thử nghiệm Hộp đen trong đó thử nghiệm sẽ được thực hiện trên các khía cạnh chức năng của sản phẩm mà không cần xem mã. Kiểm thử chức năng chủ yếu được thực hiện bởi một người kiểm thử phần mềm chuyên dụng. Nó sẽ bao gồm các kỹ thuật tích cực, tiêu cực và BVA sử dụng dữ liệu chưa được chuẩn hóa để kiểm tra chức năng được chỉ định của sản phẩm. Phạm vi kiểm tra được tiến hành theo cách cải tiến bằng các kiểm tra chức năng so với kiểm tra đơn vị. Nó sử dụng GUI ứng dụng để kiểm tra, do đó dễ dàng hơn để xác định chính xác một phần cụ thể của giao diện chịu trách nhiệm thay vì xác định mã nào là chức năng chịu trách nhiệm.



1

Kiểm tra đơn vị : - Kiểm tra đơn vị được sử dụng đặc biệt để kiểm tra thành phần sản phẩm theo thành phần đặc biệt trong khi sản phẩm đang được phát triển. Loại công cụ Junit và Nunit cũng sẽ giúp bạn kiểm tra sản phẩm theo Đơn vị. ** Thay vì giải quyết các vấn đề sau khi tích hợp, luôn luôn thoải mái để giải quyết sớm trong quá trình phát triển.

Kiểm tra chức năng: - Đối với Kiểm tra có liên quan, có hai loại Kiểm tra chính là 1. Kiểm tra chức năng 2. Kiểm tra chức năng.

Kiểm tra phi chức năng là một thử nghiệm trong đó Người kiểm tra sẽ kiểm tra rằng Sản phẩm sẽ thực hiện tất cả các thuộc tính chất lượng mà khách hàng không đề cập nhưng các thuộc tính chất lượng đó phải có. Giống như: -Hình thức, Tính khả dụng, Bảo mật, Tải trọng, Căng thẳng, v.v. nhưng trong Kiểm tra chức năng : - Khách hàng đã có mặt với các yêu cầu của mình và những tài liệu đó được ghi lại đúng cách, Nhiệm vụ của người kiểm tra là kiểm tra xem liệu Chức năng ứng dụng có hoạt động theo đến Hệ thống đề xuất hay không. Vì mục đích đó, Tester nên kiểm tra chức năng Đã triển khai với Hệ thống được đề xuất.


0

Kiểm thử đơn vị thường được thực hiện bởi các nhà phát triển. Mục tiêu của việc làm tương tự là đảm bảo mã của họ hoạt động đúng. Nguyên tắc chung là bao gồm tất cả các đường dẫn trong mã bằng cách sử dụng thử nghiệm đơn vị.

Kiểm tra chức năng : Đây là một tài liệu tham khảo tốt. Giải thích chức năng kiểm tra


6
Vui lòng dán văn bản quan trọng nhất vào câu trả lời của bạn, bạn không bao giờ biết khi nào trang có thể bị xóa khiến liên kết không hợp lệ.
Andrejs
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.