Sunday, September 30, 2007

12.WebSpiderReview

  • 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.java121
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.

No comments: