Automatic UI testing helps to keep the quality of your software high and helps you notice if your code changes affect the implementation of the actual use cases. When you are creating Android applications you would like to be able to test them without the help of many human testers. Human testing of UI of the same application on multiple devices is a waste of time, so you want to eliminate it through automation, like you would do it with Selenium for web application. For Android applications there is a similar tool for testing called Robotium. It is a UI testing tool which simulates touching, clicks, typing, and other users’ actions relevant for Android applications. Writing tests using Robotium is very easy as you can see from below.
Ability to move data and applications from one cloud vendor to another, interoperability and consistent ways to meter and monitor performance and usage are essential in bringing the true value of pervasive, on-demand computing for our customers
Helsinki , Finland July 06, 2010. Bitbar, the pioneer in automated software build and test solutions, supports Open Cloud Manifesto (http://www.opencloudmanifesto.org/), an initiative supported by 370 leading technology organizations so far.
This blog post starts my blog post series about project management (PM). It will describe the advantages of Lean Software Development (Lean SD) and Continuous Integration (CI). Every good project manager wants to reduce the risks of his project and I think the best way to do this is use Lean Management. Because recently I was on lean meetup, where I had possibility to talk about Lean Software Development directly with Mary Poppendieck, I will try to show you how in my opinion CI fits the Lean practices.
Lean Software Development is a translation of Lean Manufacturing and Practices to the software development domain. First try to adopt this way of managing to the IT market was taken by Mary Poppendieck and Tom Poppendieck, who are considered the authors of Lean Software Development.
There are 7 basic principles of Lean Software Development:
- Eliminate Waste
- Build Quality In
- Create Knowledge
- Defer Commitment
- Deliver Fast
- Respect People
- See and Optimize the Whole
I will focus on the points most interesting and important to the success of the project.
Everything that does not add value to the product is regarded as a waste. The first premise of this rule is to reduce the requirements for the product to a minimum, since each feature is an additional workload, and most of them are not applicable in practice (see chart: Using the functionality of a typical software system).
To Eliminate Waste we should recognize and see it. The biggest waste are defect and lower quality. If some extra process or features are not used by customer or system this mean that results can be achieved without it, they are waste. Every code duplication or dead code is a waste. Waiting for other activities, processes or teams is waste. To reduce this problem we should use Continuous Integration, because with CI everyone who works on the software gives his current work every day (CI: Everyone commits every day) and the latest deliverables can be seen by everyone (CI: Everyone can see the results of the latest build) and are tested (CI: Make the build self-testing). Project manager can See and Optimize the Whole process and current work.
Using our Shaker offering you can check your code quality by code analysis and find dead and duplicate code. Bitbar tries to help you to reduce the number of defect and ensure higher quality by fast optimized testing and creating a copy of your production environment in our build system. Bitbar works on optimization your build process, so you can build faster which reduces waiting time for build.
Good and effective method is to catch bugs and keep Quality In is running automated tests for every builds and test the smallest parts of new functionality in this iterative process. Testing can catch a lot of bugs as soon (in development process) as possible. Using the our CI process, you can always control the quality and reliability of software, because Shaker builds and tests every code submission.
In Lean SD like in general, integrity means that the system’s separate components work well together as a whole with balance between flexibility, maintainability, efficiency, and responsiveness. Created system should work fast and have good quality and reliability. To control this parameters we should integrate our product as often as it is possible. Using CI we can create a clone of the production environment and run integration tests for smallest parts of the product. In this way you will Deliver Fast and your software will be of the highest quality.
The Compatibility Test Suite (CTS) is an automated open-source testing harness for Android that you can adopt to your needs by selecting CTS plans relevant for your functionality. You could use the CTS to test your work during your development work using your desktop machine with attach mobile devices, but it is expensive for all developers to have that environment.
Software companies create value to their customers by implementing new applications, new features and new code. And they capture the value from their customer by various business models ranging from licensing to projects.
How could they increase the value-add, and revenues, of their value-generation machine: product development, maintenance of products and customer support.
New fast continuous integration service in cloud improves R&D productivity and collaborative software development for the world’s first open mobile device maker
Helsinki, Finland – May 18, 2010 – Bitbar, the pioneer in cloud accelerated software integration solutions, delivers continuous integration as a Service for Aava Mobile, developer of the world’s first open mobile device.
I am continuing my series of promoting automated Agile tools as a true productivity enhancer for software development companies.
Forrester Research has recently released their latest Forrester Wave Trend report on Agile Development Management Tools, Q2 2010
The research is basically a commercial tool comparison, but has many interesting thoughts in general on Agile software development. Based on their research, Agile is becoming a norm in the industry. However, their interviews with the professionals reveal that scaling Agility is a common issue — and that scaling Agile practices requires implementing tools.
Many Agile practices require automation. To be effective, a sound automation foundation that supports automated test integration, code comparison, and integrated build management must be in place.
Then by aggregating and showing information of these key project artifacts across the project on a dashboard, the team can understand the project’s true status by one glance.
How to implement scalable Agile development: implement change-aware continuous integration (CI), that by integrating, building, and testing source code changes early and often reduce rework and
integration issues. Of course creating such environment requires also scalable infrastructure, which can be commissioned from cloud.
This research truly highlights the benefits our service brings to our customers. We have at Bitbar implemented a truly scalable, open source based Continuous Integration environment in cloud, which offers everything customers need to achieve next level of developer productivity without any investments.
Contact me on marko.kaasila(at)bitbar.com for further details.
Continuous integration in the cloud needs monitoring in order to keep build servers running smoothly.
Without monitoring the integration might get interrupted; networks’ problems or running out of disk space or RAM are the most common problems which can happen at any moment. If the monitoring doesn’t work it will take time before the integration is running again and that would be really against the very concept of Continuous Integration. If you get notifications promptly you can react and prevent the issues before those become problems. Alerts with detailed information delivered by email, SMS or Jabber instant messaging ensure that issues are solved quickly. For monitoring we use Zabbix, an enterprise-class open source distributed monitoring solution.
With Zabbix we can monitor our build servers’ status 24/7 and get notifications when there is a need for administrative tasks. It also helps us greatly with resource planning, when it’s time to extend server capacity or increase amount of the servers for build process.
Cloud instances with pre-installed and configured Continuous Integration tools can be launched at any time and first builds started right after. Therefore we need to get also the new instances under monitoring instantly. Using Zabbix’s network discovery, IP ranges are periodically scanned using the discovery rules. Each build server has a Zabbix agent installed and that enables us to get detailed status of the server and even run remote commands for certain alerts. Zabbix has native agents for several OSes. We have servers running on different versions of Windows and Linux and with Zabbix we can use native agents for detailed monitoring. Using the host templates the maintenance is made easy as it allows you define sets of items, triggers and graphs for host. Zabbix also offers a high level view of monitored resources and graphic visualisation of monitored values which makes easy to see data from different angles. Having build servers running in the cloud and Zabbix monitoring health and integrity of the servers ensures that integration is really continuous and most importantly, we at Bitbar take care of all this so that our customers can focus on developing their own products and do not have to worry about administrative chores like monitoring build servers’ availability.