-
Notifications
You must be signed in to change notification settings - Fork 13
GSoC 2015 Kesha Shah
I am Kesha Shah, from India (UTC+ 05:30). I am a final year undergraduate from Dhirubhai Ambani Institute of Information and Communication Technology. I am currently a 6-month intern with Morgan Stanley as a part of training for my undergraduation course.
Website
LinkedIn
Github
Blog
Twitter
Facebook
I will be working on Testing Automation project as a part of GSoC 2015 and my mentor is Shwetambara. I am looking forward to it, because this is slightly different from the development projects I did in the past. Testing is very crucial to ensure that the application runs as desired. Hence, I chose this project.
TBA
- Completing formalities of google, systers, sending off introduction mail
- Read Shweta's weekly updates - attached
- Testing automation with selenium courses on plural sight - 3 hr +5 hr
- Getting windows 8 installed.
- Getting Eclipse, Selenium jars, junit testing framework, ant build, database connection on it
Link to your unit test results. Could be in table format or sections. Up to you.
This was a nice kick - off week.
- Getting system setup with Windows, eclipse, git, java and selenium web drivers
- Two Pluralsight courses: Automated web testing framework and selenium web driver
- A hangout arranged by Rose to get started with Testing Automation
- Getting in touch with Divya, Julia and Jennifer - developers of Ushahidi
- Went through last year GSoC work video
- Getting the github repo and making folders for all of them.
- Getting started with Ushahidi as I had never used it before.
- Yes, I had used it as a user first, before getting started as a developer
- Setup had been a smooth walk, but the difficult phase is requirement gathering and coming up with testcases to test all functionality, features and UI.
- No. Will reach out to my mentor in case I need any help.
- Listing a broad-level testcases and features to check.
- Start with detail testing Login Page testing
- On Schedule
This was an awesome learning week for me.
- Installing Maven, IEDriver, ChromeDriver.
- Added Maven Plugin for Eclipse
- Built Ushahidi from Source
- Listed all possible testcases for LoginPage
- Making a sample Selenium test project for searching a query on Google following Page-object model.
- A simple -lucidly written tutorial for geting started with Selenium with Maven-build
- Github link
- Some technical challenges: Two major errors where I was stuck:
-
java.lang.IllegalStateException: The path to the driver executable must be set by the webdriver.chrome.driver system property
; more information here. -
org.openqa.selenium.NoSuchElementException: no such element
(Session info: chrome=43.0.2357.81) (Driver info: chromedriver=2.15.322448) - Coming up with appropriate page-object model.
- The input fields in the app have type=hidden. So, Selenium throws exception:
org.openqa.selenium.ElementNotVisibleException: element not visible
-
- Yes. After searching about them, they have been resolved.
- Setting
System.setProperty();
with the path to webdriver. Installed IEDriver and chromedriver. ForHtmlUnitDriver();
there is no need for any external installation. - I learnt that the elements take some time (depending on the connection speed) to load. So, I made the threads to sleep for 5 seconds (5 is a magic number introduced!) I know its bad to introduce magic numbers in code. I will try to figure out how to do implicit wait.
- Read and analysed some existing selenium projects for learning some best-industry practice for automated testing.
- I am figuring out how to test fields with hidden types.
- Setting
- No major roadblocks pending as of now.
- I am planning to make db connection for storing test data, which I have to figure out.
- Apart from that, I am planning to report into Excel file, so I will also put all test results into an Excel sheet.
- Apart from that, I have to prioritize from the list of 25 testcases for login.
- I am contacting mentor for testcases that can be eliminated for round 1 of testing login page.
- Complete testing of Login Page.
- Make Db connection
- Test result Reporing through Excel
- Listing a broad-level testcases and features to check for dashboard (like I did of Login Page)
-On Schedule
There are 5 major pages to be tested in the Ushahidi app as mentioned here The first one of which is login test which I completed this morning. Hence, I guess 20% work is done, yay!
- Completed the entire login page testing. Login page testing was divided into 4 parts as follows
- ForgotPasswordTests.java : contains 2 testcases Screencast Demo
- UILoginTests.java : contains 6 testcases Screencast Demo
- ValidateLoginTests.java : contains 6 testcases Screencast Demo
- ValidateSignUpTests.java : contains 18 testcases Screencast Demo
- So, in all, I wrote 32 testcases for testing of the login page of Ushahidi app.
Code Stats: Added 1071 lines of coded :D
- Had some troubling catching some webelements, but it all got fixed with googling.
- Resolved. Xpath was my savior most of the times!
- No pending blocks
- @Suryadip: Can you please do code-review of loginTests ? We can discuss more about it off-list.
- Try out a reporting tool
- Try continuous integration with Jenkins
- Get code reviewed
- Move to test case listing and start with next screen to be tested.
- On Schedule
- Apologies for missing to post this on the list. It was however on blogspot, where I maintain all docs.
- In this week, I did the testing of opportunities menu in Ushahidi app.
- In all, I wrote 12 testcases including fail and pass cases for testing of the opportunities page of Ushahidi app.
- Trouble with picking up next page. Also, had some troubling catching some web elements, but it all got fixed with googling and surfing on stack overflow.
- Resolved.
- No pending blocks
- Code Review of the two pieces of code.
- Try out a reporting tool
- Try continuous integration with Jenkins
- Get code reviewed
- Move to test case listing and start with next screen to be tested
-On Schedule
- Brushing up code for midterm evaluation of Drivers, commons, pages, login-tests and opportunities.
- Code fixes.
- Adding comments for every tests
- Inquiring where to add issues found while testing ? Added a github issue.
- Testcase of Faq page.
- Added testcase for contact-us page.
- Putting efforts with surefire maven plugin for testcase report generation, but I always get 0 tescases. Block - figuring out the input as target to testcases for which the report is to be created.
- Continuous integration with Jenkins.
- Sure-fire Report generation
- Not yet resolved.
- I asked Anjali about sure-fire report generation as it works for her. But, with the same configuration, it doesn't seem to work for me. I have to do research well for this.
- Yes
- Get code reviewed
- Testing of Reporting
- Submit Midterm Evaluation
- On Schedule
- Analyzing Reports tab - and writing minimal testcases.
- No
- NA
- No
- No
- Work on Report testing.
- On time.
- Did Documentation of the tests in last week.
- Wrote Report tests. Still some report tests is in progress.
- Simultaneously, read about database testing- CRUD method.
- No issues
- NA
- No
- No
- Do reporting testing
- Start with database testing
- On schedule.
- Wrote tests for MyProfile - Private Messages
- Wrote remaining Report tests.
- None
- N/A
- N/A
- I intended to do database testing. But would require some assistance from mentor for the week.
- Database testing
- Behind schedule, since was shifting this week. Since my internship is complete now, I can focus more on this project.
- Continuous Integration with Jenkins.
- Got access to Database for Ushahidi.
- No blocks.
- NA
- NA
- No
- Add DB tests
- Refactor code
- Update documentation.
- Behind.
- Connected with database
- Wrote DBUtils (a generic utility which can be used by all DB Tests) I have completed DB testing of New Users.
- I couldn't connect to the remote database by the credentials created for me by devs.
-
mysql -u kesha -p -h 54.183.21.190
but it gives me error -ERROR 2003 (HY000): Can't connect to MySQL server on '54.183.21.190' (10061)
- Yes, it is resolved. Contacted Julia and she solved it. The bind-address for mysql was set to localhost only She took that out.
- No roadblocks now.
- No
- Add other DB tests
- Refactor code
- Update documentation.
- On Schedule
- Worked and wrote tests for database testing of opportunities.
- No blocks
- No
- I would need some sort of a runbook which walks me through the reports stored in Ushahidi database for further testing of reports in db. Will get in touch with Julia and other developers.
- Yes
- Database testing for reports
- Make the presentation
- On track.
- Database tests for reports.
- Updated documentation
- Made presentation for final demo.
- No blocks
- NA
- NA
- No.
- Refactor code.
- Present demo.
- Reporting Tool in place
- Admin Testing
- On track.
I am a student at National Institute of Technology, Patna, pursuing B.Tech in Computer Science and Engineering.
Ever curious and eager to learn, I am fond of discovering a bit on every byte. Technology and entrepreneurship enthrall me, and so does good food and music.
I am an avid quizzer and like to hold long discussions on trivia (which may also turn into debates, because that is something I like too! 😃 ).
I have been a Google student Ambassador, a Microsoft Student Partner and am a ShePlusPlus Ambassador. I am a finalist for Red Hat Women in Open Source Academic Award 2016.
I have also co-founded two startups ( delightcakes and hungr.in ) and I am always eager to discuss and appreciate innovative and interesting ideas.
My Personal
Website Github
Twitter
Facebook
Linked In
Email
I am on the Peace Corps project for Crowdsourcing for the Guyana Deaf Community.
Abstract: The Peace Corps have taken up the task of working with PCVs to educate the differently-abled students of Guyana who are unable to hear. The volunteers identify such students in need and shall upload their location along with other necessary details on the Guyana Crowdsourcing portal. The required information shall be easily available to other PCVs and important notifications shall be sent to Peace Corps for immediate attention.
Google Melange Project Description
Project Proposal
TBA
TBA
- Added a custom form with custom form fields specific for Guyana's purpose to build the Student's Report Page (this week's task).
- Identified using incident_id for roll no.s to be echoed in public listing page.
- Explored a lot more about Ushahidi, its database and public api.
- I was wrongly coding the custom form fields, which I got to learn later.
- Faced an image upload error regarding size.
- Inconsistency in forms for admin and member in views.
- Yes, custom form fields can be added from the admin's panel.
- Other two roadblocks remain.
- I checked for solutions to the problem on forums, it seems to be unresolved there. I am discussing it with my mentors and trying to find a work around.
- Yes, my mentors are helping to resolve these.
- In addition to overcoming this week's issues, I will begin the next week's task (data import) as scheduled.
- On track 😃
- Studied ORM in Kohana
- Using ORM calls displayed data related to the student for the student listing page
- Had a meeting with the Rose, the team mentors and PCVs Rachel and Lori to get a clearer perspective of the requirements of the project. Here are the meeting notes.
- The data displayed is not properly formatted.
- Not completely, as I am still improving the display format.
- Yes, I am exploring more about ORM and improving it.
- No
- I have completed the next week's task in the 2nd week itself, so I'll study more about Kohana and overcome all the existing issues.
- On track 😃
- Flagging locations is completed.
- Studied Kohana in more detail regarding accessing the database using Model and Controller or by using ORM.
- Yet to master ORM.
- Some doubts were cleared as I also examined the code of the existing project in detail.
- Yes, I am working on all existing issues in the past weeks.
- Yes, my mentors are helping to resolve these.
- Work on issues.
- Review code and progress.
- Begin working on Student Profile Page.
- On track 😃
- After discussion with my mentors, Student Listing task was modified as per their recommendations.
- Studied respective files for student profile page.
- Setup pages for documentation and blog.
- Modifications in student listing enables admin to be able to select fields to be displayed. This task is under progress.
- Still working.
- Yes, I studied the existing project's documentation to understand it in more detail.
- Yes, my mentors are helping to resolve these.
- Work on Student Profile Page and Listing.
- On track with timeline for Student Profile Page, but have one more task alongside which is under progress.
- Had a meeting with mentors to discuss progress and future plans. Meeting notes are here.
- Received Glass, detoured to Glass development. Studied Android and Glassware development from Google developers resources.
- Set up Android Studio on Linux with GDK and debugged an immersion activity app on the Glass successfully.
- Discussed the findings for sharing video and closed captioning with my mentors.
- Youtube glassware has since been disabled, and any similar services are also rendered non-functional.
- An indirect route of saving the video and uploading is a method, but I shall contact the Glass team for support regarding the permissions.
- Yes, I am studying Glassware development to have a better grasp.
- No.
- Work on an explanatory video for Glass.
- Address sharing issues for videos.
- Study Ushahidi's integration with Android to use Glass in a similar manner.
- On track.
- Studied location mapping on Glass and Android using GPS.
- Shot an explanatory video for using Glass for PCVs.
- Contacted Glass team regarding Youtube.
- Worked on unique ids in Ushahidi.
- None
- NA
- NA
- NA
- Study Ushahidi's integration with Android to use Glass in a similar manner.
- On track.
- Completed and posted an introductory video for Google Glass for PCVs on Youtube. Have a look 😃
- Successfully made and ran a map activity for location on Android. (Will be now pairing up with Glass for using the companion phone's GPS)
- Discussed integration of Glass with Ushahidi with mentors.
- The Ushahidi app does not support videos as of now and crashes on opening deployment.
- No
- I will rebuild app from source on Github to check issues.
- NA
- Push code to Github.
- Get location on Glass.
- Use Youtube API for integrating videos.
- On track.
- Designed workflow on glassware-flow-designer.
- Had a meeting with mentors to discuss the work and future possibilities.
- Added video capture to be tagged with latitude and longitude to glassware.
- Modified mysql.conf.php file for accepting same login as that in deployment for wiki.
- Facing errors in buildview() in the glassware.
- No
- Still not resolved.
- Yes.
- Get the glassware working to capture videos and save them.
- Post videos to Youtube.
- Delayed this week due to moving back to college at the end of vacations. :-| Will make up in the coming week.
- Installed dokuwiki on localhost. (Also, wrote relevant documentation.)
- Added code to use authentication credentials of Ushahidi in Dokuwiki in conf/local.php file generated after installation.
- Added user groups to doku (member, login, admin,superadmin) to align with Ushahidi.
- User groups were dissimilar on both the platforms.
- Using similar sha1 hash for passwords on dokuwiki.
- By observing table structure in roles and roles_users in Ushahidi database, added SQL queries to conf/local.php in dokuwiki to maintain consistency in user groups.
- sha1 issue is still there. I am studying salt patterns to figure out a way.
- Yes.
- Show a demo of work till now.
- Resolve issues in wiki.
- On track.
- Developed glassware to capture video and save to storage.
- By changing password in Ushahidi database to sha1 format, I was able to allow login into Dokuwiki Training Manual using email and password as used for login on Ushahidi. This is not the best method though, as sha1 can be decrypted back.
- Glassware crashes on tagging location.
- Did not understand how to include same salt as Ushahidi for Dokuwiki.
- No.
- Yes, they still exist. I am still working to improve the performance and to upload the stored video to drive. For salt patterns, I am studying relevant documentations.
- Yes.
- Upload video to drive through Glassware.
- Discuss salt issue with mentors to come to a concluding solution.
- On track.
- Added field for unique roll no.
- Worked on adding alerts and actions.
- Added function for Volunteer button.
- In admin/manage/actions , setting an email address for sending emails does not work.
- No.
- Discussed issue with mentors and working on it still.
- Yes.
- Complete internal and external documentation and unit tests.
- Prepare for demo to be given on Wednesday.
- Send PRs and indicate issues.
- On track.
- Volunteering button upon click adds rows corresponding to user_id for multiple users too for a particular incident_id.
- Cancel button reverts back the volunteering status.
- Completed documentation.
- Submitted evaluation.
- Presented demo.
- Pushed code to Github.
- Session handling creates an issue for auth_user when not logged in.
- No.
- Working on it still.
- Yes.
- Fix issues.
- On track.