Total Pageviews

Donate

Nov 18, 2015

Install JDK on Ubuntu

Maybe since Oracle is responsible for Java, and every time I install an Ubuntu machine I struggle for few minutes to install the JDK. Thus, I decided to write this extremely short post about how to do it.

All what we need is to add the correct repository and then install it like any other app with apt-get install.

Here are the commands:

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer
That's all folks :)

Feb 21, 2015

Automated UI Testing in Python

During the last year 2014, I was exposed to behavior testing. As I mentioned in my last blog post about agile team building, me and my team applied different automated testing techniques including the behavior testing using Gherkin. In fact, this was - and still - a very hard task to maintain these tests, especially with the unstoppable flow of business changes. Behavior testing is all about complete features and their different scenarios. In other words, it is all about testing the UI being interacted by the system users to apply their business needs. Below I'm going to list why it is not very easy to maintain these tests and after that I will show a new technique that can make it maintainable. But first let's talk a little bit about Selenium and Python Webdriver.

Automating UI Interaction (Selenium) 

Selenium is a web apps software testing framework, and its name came from a joke by the original creator Jason Huggins in an email. He was making a joke of a competitor - Mercury by HP - saying that: "you can cure mercury poisoning by taking selenium supplements" :)
Huggins developed Selenium during 2004 while he was at ThoughtWorks. He joined Google in 2007 completing his work on Selenium. At the same time, ThoughtWorks was working on the development of a browser automation tool called WebDriver. In 2009 these two project has been combined together to produce a new product called Selenium 2.0 or in other words Selenium WebDriver. Now Selenium 2.x is almost the most powerful UI test automation tool and has become a kind of a 'de facto standard' for test automation. Selenium IDE is a Mozella Firefox extension that works as an integrated development environment for Selenium scripts called Selenese. Selenese is a special test scripting language for Selenium.  Selenium Remote Control (RC) is a server written in Java that accepts Selenium command for browser through HTTP. It allows to write automated tests using any programming language that facilitated integrating Selenium in already existing testing frameworks. Selenium client API  is an alternative to writing tests in Selenese that can be written in many languages like Python, Java, C#, and Ruby. Now in Selenium 2, Client API include WebDriver as a central component.
In the following section I'll give an example of how tests can be written using Python Client API.

Jan 6, 2015

Agile Team Building

Introduction

During  2014, in my start-up we had an agile training with Mr. Amr Elssamadesy the famous Agile trainer and the author of Agile Patterns: The Technical Cluster and Agile Adoption Patterns: A Roadmap to Organizational Success.

Mr. Elssamadesy joined the company during critical circumstances. Back then, we had new team of developers, business, and quality control and this team was considered as a "Junior"  team where as most of them were fresh grads or with 2-3 years experience in some cases. This was not the only problem, the major problem was that we had a mega huge product which was built during the previous 2 years that has a lot of very complicated features.

The major problem here is that, the very successful business team has sold this product to many clients and each client now are ready to operate and have their own very long list of requirements and customization needed. The product is really huge to the level that it is not very easily customizable. There wasn't any possible solution for the company to succeed by gaining the customer satisfaction. By very optimistic calculations, the new "Junior" team will take no less than 3 months to warm up and getting into the mode. Plus, the code base was really huge.

Donate