Below are some measurements of interesting stuff I did during the amazing OPW internship.
Total of days: from June 17th to September 23th (99 days)
Days of work/fun: 71
Hour per day: 8 (in average)
Total hours: 568
Code lines: 3939 +-
Code lines added: 3,150 ++
Code lines removed: 789 –
Commits for Mozilla: 43
Pull Requests for Mozilla: 27
Number of Bugs smashed: 22
Number of Bugs touched: 28
[Bug 874650] [tracker] Refresh Socorro Test Suite
[Bug 913583] The elasticsearch tests shouldn’t use commonconfig. Pull Request
[Bug 913584] The postgresql tests shouldn’t use commonconfig. Pull Request
[Bug 913581] The middleware_app tests shouldn’t use commonconfig. Pull Request
[Bug 713973] rewrite unit tests to not depend on old config
[Bug 875106] Write integration test for a skiplist entry test . Pull Request
[Bug 874648] Evict unittests that touch external resources. Pull Request
[Bug 906962] We need a service that calls backfill functions of PostgreSQL and also tests for it. Pull Request
[Bug 907469] We need the backfill service linked to middleware. Pull Request
[Bug 904243] we need tests for socorro/external/postgresql/tcbs.py. Pull Request
[Bug 904238] we need tests for socorro/external/postgresql/util.py. Pull Request
[Bug 892672] Integrate socorro/integrationtests in Socorro Test Suite. Pull Request
[Bug 820512] submitter_app has no unit tests. Pull Request
[Bug 888952] Add test coverage for crontabber_state_json() view. Pull Request
[Bug 888520] Add test for exploitable_crashes view. Pull Request
[Bug 866448] Documentation needed for coverage testing. Pull Request
[Bug 913428] Rework middleware exceptions. Pull Request
[Bug 916905] Too many graphite metrics from Socorro, some including UUIDs. Pull Request
[Bug 853920] Implement statsd on the internal middleware. Pull Request
[Bug 912552] Statsd middleware failing on non-ascii characters. Pull Request
[Bug 757447] unittest/cron/fillDB.py deprecated? Can we remove it?. Pull Request
[Bug 533628] Rank column in Topcrashers CSV output starts with 0 instead of 1. Pull Request
[Bug 864854] permission denied, role monitor does not exist errors when running Socorro unit tests on Ubuntu 12.04 LTS
[Bug 651661] unit test failure in testGetJsonOrWarn
[Bug 817461] “make test” does not fail if db timezone is wrong
[Bug 874697] Clarify the role of Socorro-Tests vs unit and integration tests that are part of core Socorro
[Bug 744446] consistency in Socorro unit tests
[Bug 912727] Run *-integration-test.sh in parallel to unittests [future]
Lines of irc talk with my awesome mentor: 2800 till now :)
Number of words in private irc chat with my mentor: 38310
Weekly meetings #breakpad: 14
Report’s blog posts: 7
Report’s blog posts characters(no spaces): 33719
Please, Let me know if you wanna another measurement included here.
Bug 913583 - Remove commonconfig from Elastic Search tests.
To smash this bug, I had to create a configuration using Configman very similar to the one I created in PostgreSQL tests. This bug was way easy than the first one, because there are just two tests of Elastic Search. Pull Request 1533.
But for solve Bug 913581 I subclassed middleware_app of the PostgreSQL test configuration.
Configman it is a great tool for setting up configuration options. It is a new style of configuration used by Socorro, catching options of environment variables is way better than using a
commonconfig.ini. The main code contributors are @twobraids and @peterbe :)
@peterbe assign me an issue on Configman related to make
+include somefile.ini relative to the source file, instead of the current working directory of the executable. The issue was the 88 and my Pull Request 89 fixed it.
What is it?
It is the process of an manually test the software to see if it works as expected. The key is to find correct behavior even when doing unexpected use of the software (like filling a wrong username). It is really important to do before release to end users.
For small projects, the test can be done in a exploratory way by not following any set of rules, testing the software behavior given what the tester thinks it is important. This works well when you have a software that does not have a variability of different behaviors. For example: you have a code that calculates the sum of two numbers. You need to test what happens if you insert different data types of numbers, if works with integers and floats, negative numbers, large numbers and if the result is correct.
This week closed a cycle of 2 months in this amazing OPW experience. I am so glad to be part of an incredible team like Socorro. I was reflecting about our hopes and expectations, sometimes we feel that we don’t have to dream huge because the risk of the dream come true is little, but if we always dream at the lower limit, we never are going to experience the happiness of doing something that really challenges you. I know that doing challenging things all the time can be frustrating, but the gratification is so much higher than the fear of do not getting whatever you want.
I am digressing into this because I have just one month till the end of the OPW and I am enjoying so much that I don’t want it to end. But I am sure that because of this awesome experience I am rethinking a lot of thoughts that I have about myself, like my capability of doing what I really want (maybe sometimes I feel a little about getting into the impostor syndrome).
This is a short post about my seven and eight weeks contributing for Socorro. It is brief because I had problems with my etherpad-diary and I lost some of the comments, so I wrote here my code contributions during this time.
Automatic elastic search tests
Thanks to @adrian I made the integration test
test_elasticsearch_storage_app.py be automatic and I closed the Bug 892672. The Pull Request related was the 1383. Basically, what I did was to call the test code inside a shell script that Jenkins runs. To make elastic search test works, I configured the host to be
jenkins-es20 and setted up the environment before to call the test itself.
I finished a first version of documentation by fixing @peterbe suggestions on my Pull Request 1336 and @selena merged the code into socorro repository :)
Automatic integration tests
I started to run deeply on Test Gardening. I initiate to understand the architecture and the behavior of Socorro Project, but it is a project that constantly is changing technologies, so it is important to keep learning about it.
I begin these weeks smashing some bugs related to Socorro Crashstats, dealing with mocks, urls and json:
The Outreach Program has began on June 17th. Those were two really cool weeks!
One of my favorite things in the whole world is coding, so I think I am in the right project :) Although i didn’t properly code during this time, it was filled with learning (super needed). I had contact with a lot of stuff that I had never imagined before. First of all: I followed in a daily basis the work of a development team. They have to deal with a lot of releases and to maintain a huge system that collects, processes, stores and displays crash reports from clients (this is really a hard work!). Besides that, curently they are also migrating some tools (like PHP to Django), work that requer a lot of team work! Which they do brightly :)
I am going to describe here some of the relevant things that happened in these first weeks. If you are curious about knowing everything that is happening, go check my OPW diary: https://etherpad.mozilla.org/opw2013.