-
Notifications
You must be signed in to change notification settings - Fork 1
Deliverable 4
We made several updates and changes since the last deliverable. Initially we added the last ten test cases. Then, we formatted the html page so that the pass/fail was easily readable. We found a sort function for our test cases and they now display in the proper order. We also updated deliverable 3 to include more in depth how-to documentation. Additionally, we changed our code so that it could handle multiple input values. Our report generating functionality uses various Strings to generate an HTML page, and these are now defined where they are needed instead of at the top of our script.
Twenty of our test cases have been specified correctly. Initially, the fifth method we chose to test decoded mp3 sound files, but decided to choose something less complicated (_boo_fallback) so that we wouldn’t spend too much time developing a method to obtain a proper oracle. Assertion errors and Unicode strings gave us some trouble in some of Beets methods, but we were able to figure it out. Our test cases specified the following information, separated by lines, to be parsed by our script:
- Test ID
- Requirement being tested
- Component being tested
- Method being tested
- Input
- Expected output
- Driver name
- Input type
Tested Items
The methods of the project, Beets, that are to be tested are as follows.
Methods and Locations
- human_bytes( size ) --> beets/ui/init.py
- human_seconds( ) --> beets/ui/init.py
- human_seconds_short () --> beets/ui/init.py
- _sc_decode( soundcheck ) --> beets/mediafile.py
We replaced this original chosen method and chose: _bool_fallback --> beets/ui/_init.py - _string_dist_basic( str1, str2) --> beets/autotag/hooks.py
This Deliverable, overall, was a good experience. Since we now have a good grasp on how the architectural framework should run and how to script in python, we were able to make the necessary changes required to implement fully the testing framework. It helped that, after we presented our deliverable 3, we created a to-do list so we knew what needed to be completed. This kept all team members on the right track. After finishing the other ten test cases, we tried to sort and format how it was outputted onto the html because oddly it was outputting it in a random order. This gave us trouble because we found an example sort code in jquery and did not know how to call it correctly, but we were able to figure it out. Another aspect that we found somewhat difficult was how we were going to generalize our parse function to take multiple inputs. In-person meetings have been the most challenging aspect, in terms of organization. It has been very difficult to find a time to get all team members together. But, class time has helped tremendously to be able to talk face-to-face. We are far more productive when working in a group, because communication is easier and we can all look at the same computer screen. Fortunately, this would not be so much of an obstacle for a real development team. By implementing the to-do list mentioned earlier, we were able to maintain some organization and complete separate tasks remotely. We started creating Google Docs for deliverables so that team members can work together easily.