iWAL (intuitive Web Automation Language) Ashima Arora : System Integrator Nithin Reddy : Project Manager Pranita Dewan : System Architect Priyanka Singh : System Tester Rafica AR : Language Guru Your.
Download
Report
Transcript iWAL (intuitive Web Automation Language) Ashima Arora : System Integrator Nithin Reddy : Project Manager Pranita Dewan : System Architect Priyanka Singh : System Tester Rafica AR : Language Guru Your.
iWAL
(intuitive Web Automation Language)
Ashima Arora
: System Integrator
Nithin Reddy
: Project Manager
Pranita Dewan
: System Architect
Priyanka Singh : System Tester
Rafica AR
: Language Guru
Your wish is
my
command!
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!
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()
Sample iWAL program
Start the browser
Open the web page
Accept username
Accept password
Input username &
password
Click login button
Demo!
Syntactic Constructs
Data Types
Loops
Conditionals
Functions
Data Types
int
double
boolean
string
Loops
repeat loop
until loop
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!
Some more inbuilt funcs…
print()
Password
Input()
clickE()
getPageText()
writeTo
File()
clickLink()
sleep()
inputE()
Architecture
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
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
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
Runtime Environment
1. “make filename” on terminal.
2. iWAL program compiled.
3. “make run” on terminal.
4. Java code is run.
Testing
Methodology
Incremental Approach
Unit Testing
Peer Review
Regression Testing
Challenges
The grammar evolved...
Code size grew bigger!
Integration issues
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
testing_ilexer.py
Output of Test run
testing_iyaccer.py
Output of Test run
A few test cases for intrinsic functions…
Project Management
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
# of commits
Project Management
Date
Github Commits By Date
Day of the week
Project Management
Time of the day
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
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.
Why iWAL?
Intuitive
Simplifies web automation
Wide applicability
Powerful built-in functions
Frustrated Project Manager..
Special Thanks to:
Prof. Alfred Aho
and
Junde Huang
Our repo on Github: https://github.com/rafica/iWAL