Hỏi về Blackbox Testing Unit Test Java

Chả là thầy dạy Testing em nói làm em không hiểu gì lắm nên em muốn đặt câu hỏi mong các bác chỉ giáo ạ:

  1. Blackbox testing là test toàn bộ chương trình(bao gồm nhiều methods) hay là mình phải tách riêng từng methods để test ạ. Và nếu phải tách thì những method trả về void thì làm sao mình có thể lấy được kết quả để so sánh khi mà nguyên lý Blackbox testing là ko được động vào code ạ ???
  2. Chương trình của em là SimpleSlotMachine, nó có 5 method, trong đó có 1 method chính để đặt vòng lệnh do while, vậy có bác nào chỉ cho em biết giờ em phải viết testcase như nào không ạ =(((. Đã hỏi thầy nhưng thầy càng giải thích em càng khó hiểu. Các bác cứu em vì mai phải nộp bài rồi ạ. Cảm ơn các bác !!!

2 posts were merged into an existing topic: Topic lưu trữ các post off-topic - version 3

Lý thuyết bạn hơi mơ hồ, nhưng thôi giờ nói bạn càng rối thêm.
cách đơn giản nhất bh là bạn nên vẽ flowchart của method ra. đếm tất cả các node, các đường đi của chương trình. từ đó => Test Case.

Test case thì bao gồm 3 loại chính là:
Biên (Tương ứng với các giá trị để method trả về kq đúng )
Cận Biên (các giá trị lớn hơn, nhỏ hơn giá trị biên)
Xa Biên (Các giá trị cách xa giá trị biên, ví dụ biên =1, -1, cận biên =5, -5 thì xa biên =1000, -1000)

Nên có ít nhất là 6-8 test case.

4 Likes

Unit Test thì bạn phải đi vào từng phương thức rồi.

4 Likes

đó mới chỉ là 1 kĩ thuật BVA thôi ạ =((( cái em không hiểu ở đây là thầy bảo phải viết 1 test case mà phủ được cả 1 chương trình, trong khi bác nhìn em tách hàm void kia ạ, nó ko return về cái gì nên ko thể lấy được Result để assert ấy ạ. Còn về kĩ thuật thì em cũng nắm khá rõ mà =(((

Vâng, em cũng nghĩ vậy, nhưng mà lại mâu thuẫn với Blackbox vì ko được đụng đến code =((( Em confuse cực độ luôn ạ

image
nguyên văn câu của Thầy là như này ạ !!!

Nếu method là void thì bạn có thể pipe output ra file rồi viết hàm kiểm tra nội dung file.

4 Likes

Câu này không ổn một tí nào, thật lòng.

Black box là chỉ cần input/output (như STDIN/STDOUT), kil-a-watt, benchmark, penetration; còn white box là các kiểu test phải có code thì mới test được.

Còn integration vs. unit vs. acceptance thì nó khác lắm.

3 Likes

của em có 1 hàm random bên trong nên em nghĩ là không thể bắt chính xác được cái con số chính xác đó bên Test Class. Em đang định chỉ bắt 1 dòng của output thôi không biết có được ko ạ.
image
Cụ thể em chỉ bắt cái dòng : Sorry…

Nó sẽ kiểu như này:
Ví dụ hàm remove() của một List nào đó (hamf này trả về void)
bạn muốn test hàm này thì sẽ kiểm tra xem sau khi gọi hàm remove(), length của list có giảm đi hay ko là được.

2 Likes

à thầy đang nói về Unit test thôi ạ

Cảm ơn bác, vậy trong TH của em khả năng là kiểm tra xem cái tiền kia có thay đổi không :thinking::thinking::thinking:

Có thể vậy, bạn có thể tìm thêm trên google xem một số ví dụ ngta test void method xem rồi làm theo.

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?