Abstract: In todays era of continuous software development and delivery software automation plays quite a vital role to help better and continuous development and achieve better software stability.
Well as technology progressed the software industry also went through a revolutionary change in its methodologies of doing business and deliver better products to the customer. In my opinion the revolution was stepping down from the way old Software Development Life Cycle (SDLC) project management technique to a more scalable and extensible way of project management and by this I mean Agile project management techniques.
In this blog I won’t be discussing much about project management techniques but the aspect of bringing in agile software development technique is that the team have to constantly and productively deliver continuous development to the product and satisfactory product outcome to the customer. So it is the job of the quality control or the quality analyst team to make sure that the software goes out defect free.
So in todays date most of the software are web based by which I mean they are hosted on the cloud and popularly known as web-apps. So the end user can access it from anywhere and it does not have to be a packaged software or a remote desktop application that needs to be present in your machine locally. So when I started doing automation for my first project which was also a web-app, based on Drupal I found out that automation has got immense importance in the way a product is delivered to the client. Now this does not rule over the fact that you won’t be needing any manual effort at all. You still have to see few of the critical and corner case functionalities by manually going through it but it does reduce 90% of the effort for the quality control or the quality analyst personnel. Considering the fact that each time a feature is built or some code is pushed on to the required system, you have to go on a full regression testing seeing that the new functionalities developed has not impacted any of the rest functionalities that are already present in the system. Now this can be done by anybody, but the question is would you be liking it if you have to do it a hundred times the same thing ? And sometimes it may be possible that the tester skips of any functionalities mistakenly, keeping it unknown whether the functionality has been tested or not.
Now here comes the role of automation which can help not only the analyst or the control team but also the product manager and the development team as well. By this I mean at the end of the automation tests the whole team has a report in hand which clearly specifies what functionalities have passed the test and what functionalities have not, thus giving a clear idea to the development team that what functionalities the team needs to focus on. Besides that it reduces much as half of the effort of the tester because half of his / her work has been already been done by the automation code. Isn’t this interesting? Now you don’t have to seat with all the test cases, start checking from the first one when a deployment has been done from a developer’s side. You can simply run your test cases configured in the system and can just forward the test reports to your manager or the client. The client also gets to understand how stable is his / her product and whether it can sustain in the long run.
Test automation can improve the development process of software product in many cases. The automation of tests are initially associated with increased effort, but the related benefits will quickly pay off. Automated test can run fast and frequently which is cost effective for software products with long maintenance life. When testing in an agile environment the ability to quickly react to ever changing software systems and requirements are necessary. New test cases based on updated features can be added simultaneously to automation in parallel to the development of the software itself.
Automated regression tests, which also ensures the continuous system stability and functionality after changes to the software were made, also lead to a shorter development cycle combined with better quality software and thus the benefits of automated software testing helps quickly out gain the initial costs.
So all kinds of testing in the STL (Software Testing Life) cycle can be handled by automation depends on the project and its other aspects such as ETA, sprints, deployment etc. But definitely the quality control team needs to do a ROI before even starting automation because the client needs to be sure of the fact that the time and the effort investment that needs to be put into developing an automation framework will do the project any good or not. But with my experience in the IT industry over an year automation does give a high edge to continuous project management and delivery. Its quite scalable because you can use any of the language to get started with an automation framework because you have APIs relevant for each libraries and packages.
That’s all for todays blog post folks. Hope you like it and please do provide your valuable feedback.