Hello,
we are a group of students studying software engineering at the TU Vienna. for our master degree we do a course called software architecture where we have to analyse an open source program and yes we have chosen selenium :) so far we have read some articles and had a closer look to the Java, Python and .Net bindings and also to the firefox driver (plugin), but as you can guess it is very hard for us to dive in a so big code base with so many different languages. as outcome we should have component & connector view (
http://en.wikipedia.org/wiki/Component_diagram) and one other complementary architecture view which we can choose free. in addition we should describe two qualities (non functional properties) of selenium.
for the qualities we have chosen usability and modifiability and we have found the following tactics to ensure these qualities.
usability:
- providing language bindings in many languages (facilitated with thin language bindings, a uniform rest-ish communication protocol, ...)
- verbose and easy to use language bindings (class by, ...)
- helpers for known patterns (pagefactory, ...)
modifiability:
- thin language bindings
- atoms
for these research we have mainly used these links:
http://www.seleniumhq.org/http://www.aosabook.org/en/selenium.htmlour questions would be:
do you have other good resources which we should read? can you give as other tips for tactics which facilitates the qualities usability and modifiability? do you have some architectural views of selenium? any other suggestions?
of course we would like to share our outcome after the course with you and we hope we can provide you something useful for this awesome project!
cheers, simon