1 / 33

iWAL

iWAL. Your wish is my command!. (intuitive Web Automation Language). Ashima Arora : System Integrator Nithin Reddy : Project Manager Pranita Dewan : System Architect Priyanka Singh : System Tester Rafica AR : Language Guru. Motivation.

lamar
Download Presentation

iWAL

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. iWAL Your wish is my command! (intuitive Web Automation Language) AshimaArora: System Integrator Nithin Reddy : Project Manager PranitaDewan : System Architect Priyanka Singh : System Tester Rafica AR : Language Guru

  2. Motivation • Make web browser automation simpler and more productive • Automate monotonous tasks on the web easily • Wide spectrum of users, not familiar with advanced programming • Save time • Have fun!

  3. What is iWAL? A simple programming language designed to assist amateur programmers in writing programs that make web-browsing automatic, time-saving and a fun experience! tabE(..,..,..,) mainYacc()

  4. Sample iWAL program Start the browser Open the web page Accept username Accept password Input username & password Click login button

  5. Demo!

  6. Data Types int double boolean string

  7. Loops repeat loop until loop

  8. Functions • User-defined • Inbuilt- a whole suite of functions for the iWAL user! You can write your own functions! A whole set of inbuilt functions and more!

  9. Some more inbuilt funcs… Password Input() print() clickE() getPageText() clickLink() writeToFile() sleep() inputE()

  10. Architecture

  11. Type Checking • Perform type checking by traversing the AST generated by the parser. • Variable assignment • Function definition • Function call • Operations on appropriate types • if-else constructs • Type checking in loops • Use after declaration

  12. Scope Checking Information for variables and functions in scope 2 Information for variables and functions in scope 1 Scope = 2 Scope = 1 Scope = 0 Global scope Information for variables and functions in scope 0 Symbol Table

  13. Development Environment • PLY 3.4-2build1 • Python 2.7.3 • Java SE 6 (1.6.0) • Selenium 2.39.0.2 • Local Mac/Windows • IDLE

  14. Runtime Environment “make filename” on terminal. iWAL program compiled. “make run” on terminal. Java code is run.

  15. Testing Methodology • Incremental Approach • Unit Testing • Peer Review • Regression Testing Challenges • The grammar evolved... • Code size grew bigger! • Integration issues

  16. Test Plan • Used Python’s unittest testing framework • Tested ilexer,iyaccer,intrinsic functions & final code • ilexer:- Used several equality assertions to check correctness. • iyaccer:- Used test cases written in testcases file to generate AST and final code. Output files inspected by a team member. • Intrinsic functions:- Test cases written. Verified by a team member

  17. testing_ilexer.py Output of Test run

  18. testing_iyaccer.py Output of Test run

  19. A few test cases for intrinsic functions…

  20. Project Management

  21. Project Management • Weekly meetings with the team • Scheduled meetings with our mentor Junde • Documents sharing over Google Drive • Collaborative coding, version control over Github • Discussions over whatsapp group • Report writing on sharelatex.com

  22. Project Management # of commits Date Github Commits By Date

  23. Project Management Day of the week Time of the day

  24. What worked & What didn’t • What worked well: • Achieved most of what we envisioned • Fun, satisfying experience! • What did not: • Should have listened to Prof. and started even sooner! • Hard time narrowing down problem domain

  25. Lessons Learnt… • Ashima:- Keep an open mind and be a good listener. • Nithin:- It's easy to get good players. Getting them to play together, that’s the hard part. • Pranita:- Disagreements are a part of any group project. Try to resolve them logically and amicably. • Priyanka:- There is a lot of learning to take from group discussions and brainstorming sessions. If you're stuck at a point, take a second opinion. • Rafica:- Have regular meetings with your mentors. Their insights can help a lot.

  26. Why iWAL? • Intuitive • Simplifies web automation • Wide applicability • Powerful built-in functions

  27. Frustrated Project Manager..

  28. Special Thanks to: Prof. Alfred Ahoand Junde Huang Our repo on Github: https://github.com/rafica/iWAL

More Related