- Reviewer: Chiao-Fen Zielinski-Liu
- Author: Marcius, Bagwan
- Installation Review:
- When I tried to download the webspider zip file from Marcius's blog, I found the webspider jar file. Even though I could download the jar file successfully, I did not have all the information I needed to complete this assignment. This was the initial problem that I encountered. Therefore, I informed the author to send me the webspider zip file. On Saturday morning, he sent me the “webspider-marcius-1.0.928” zip file.
- After I received the “webspider-marcius-1.0.928” zip file “, I was able to download it successfully. It was not difficult for me to figure out how to run the code because it took me only a few minutes to complete the installation review.
- Here are details about JUnit, Checkstyle, PMD, FindBugs, Emma and Verify.
Tasks Available | Results | |
JUnit | No | No test cases |
Checkstyle | yes | No errors, No warnings |
PMD | yes | No errors, No warnings |
FindBugs | yes | 2 high priority warnings |
Emma | No | Failed |
Verify | No | Failed |
- I could invoke "ant jar" to build a webspider.jar file.
- I could not invoke "java -jar webspider-marcius.jar -totallinks http://www.hackystat.org 100" because the author did not rename the webspider.jar to the webspider-marcius.jar. However, I was able to invoke "java -jar webspider.jar -totallinks http://www.hackystat.org 100", but it did not return the expected results. Instead, it generated some messages (see break da buggsh).
- Code Format and Conventions Review:
- After checking the code format and conventions, I have only found two violations.
File | Line(s) | Violation | Comments |
WebSpiderExample.java | 110 | EJS-35 | No documentation comments for the getLinkStats() interface |
WebSpiderExample.java | 121 | EJS-24 | The method isEmpty() is undefined for the type String |
- Test case review: since the TestWebSpiderExample.java is missing, I would suggest the author to write test cases for a black box perspective, a white box perspective and a break da buggah.
- Black box perspective: it is a testing where testers try to invoke the program with inputs to which they know the corresponded outputs without knowing the flow of execution. Whether the input is a value or a sequence, the testers should test the code with a max, a min, an illegal, an empty, and a typical value or sequence.
- White box perspective: in this testing process, the testers know how the system is implemented including data flow, control flow, information flow, coding practices, and exception and error handling.
- Break da buggah: no matter how I tested his code, it always generated the five lines of message as presented below. Then, it stopped without returning the number of total links or the most popular website.
- The intial url is:
- The maximum links to follow is :
- Next Link to crawl (getNumLinks) :
- Next Link to crawl (getNumLinks) :
- Proper URL not specified.
- Summary and Lessons Learned:
- The author has a very good knowledge about the Java code format and conventions. I think this is what I need to improve.
- Since the author did not write any test cases, I was so frustrated because I could not perform the black box perspective, the white box perspective and the break da buggah, fully.
- I have gained more understanding about the difference between black box testing and white box testing.
- Now I understand how hard it is for professors to grade assignments that are incomplete.