Automation in software development is a way to minimize errors during the software development process, make it faster and more cost-efficient, and improve team collaboration and productivity.
The most popular SDLC automation practices are low-code development, test automation, and CI/CD implementation.
From 2 weeks to 1-3 months to build an app using low-code platforms.
3-5 weeks to develop an efficient CI/CD process for a middle-size software development project with several microservices, an API layer and a front-end part.
~ 2 months to set up test automation.
The software development automation setup process depends on the chosen automation option and the development project specifics. Below we share the general automation insights and roadmaps we apply in our projects.
The low-code approach to software development requires little to no coding to build applications and automate processes. The cost of low-code development is nearly four times less than developing an application from scratch with custom coding. Low-code development technologies include:
A low-code application platform (LCAP) is currently the most popular low-code development technology. LCAPs (e.g., Microsoft Power Apps, OutSystems, Mendix) provide visual drag-and-drop modules that simplify and streamline building new apps.
The most common app types developed with low code are:
Low-code development is good for apps with few user roles, simple and specific business logic.
It usually takes from 2 weeks to 1-3 months to build an app using low-code platforms.
1 Assess the feasibility of low-code development by analyzing technical requirements for an app, its functional complexity, required integrations.
2 Choose the low-code application platform fitting your specific business demands taking into consideration:
3 Create a roadmap for the low-code development project.4
4 Set up QA, app performance monitoring and management processes.
Continuous integration and delivery (CI/CD) involve the creation of a pipeline that automates building, testing and deployment of software across staged environments. The most sophisticated CI/CD process helps integrate, test and deploy new software functionality within 2-3 hours.
Continuous integration (CI) focuses on the principle of a shared repository, where code is frequently updated and shared across teams that work in the cloud environments. CI allows developers to work together on the same code at the same time. The changes in the code are directly integrated and ready to be fully tested in different test environments.
The ultimate goal of continuous delivery or deployment (CD) is to bring software to production in a fully automated way.
The duration of the CI/CD system implementation depends on several factors:
At Vertscend , we generally need 3-5 weeks to develop an efficient CI/CD process for a middle-size software development project with several microservices, an API layer and a front-end part.
Note: The architecture of the application under development should support iterative releases.
1 Mapping expectations from CI/CD implementation (e.g., 50% faster release speed), the existing software integration, testing and delivery processes (if applicable).
2 Implementing key DevOps processes (if not yet):
3 Selecting the right tools for development, testing and deployment automation. Key factors for consideration include a licensing cost; possibility of seamless integration with other technologies used in the software development project/projects; choice between a self-hosted tool (Jenkins) and a SaaS tool (Azure Pipelines).
Vertscend tip: Some of Vertscend favorite tools to form a suite for CI/CD implementation are:
4 Implementing and integrating CI/CD tools.
5 Installing and launching the CI/CD pipeline.
6 Selecting and conducting pilot CI/CD tasks.
7 Measuring the results, usually 3-5 metrics. Some metric examples include:
Automated software testing implies writing code-based test scripts to execute all test steps automatically. To develop test scripts, validate and maintain test code, test automation engineers employ specific test automation tools.
Duration: ~ 2 months.
1 Defining the test automation feasibility for your software development project. The feasibility study usually takes around 1 week and considers software’s technical aspects, complexity, stability, size, frequency of changes, and more.
2 Developing a test automation strategy (the scope of automation, the levels and types of testing needed, fitting testing tools and the test automation architecture); planning test data preparation, test development and maintenance, integration of test automation into CI/CD, etc. It usually takes up to 4 weeks.
Vertscend tip: Employ well-supported test automation frameworks that allow for maximum flexibility (support for multiple programming languages and browsers, a wide range of plugins, extensions and integrations with other tools, etc.). For automated UI testing, these include Selenium, Protractor and Appium. For automated API tests, we at Vertscend use REST-assured, RestSharp frameworks and Apache JMeter tool. Sometimes we also integrate Selenium with Cucumber to implement increasingly popular behavior-driven development.
3 Drawing up the set of test automation KPIs to track. These KPIs may include automated test coverage, cost per automated test, test run time, the share of passed and failed tests, and more.
4 Setting up and configuring the test automation environment to smoothly run test cases for all targeted platforms, devices and browsers.
5 Writing and maintaining scripts for automated testing.
Vertscend tip: To ensure maximum test code re-use, Vertscend test automation experts design an agile test architecture that allows for better test re-use and test maintenance even in case of frequent changes in app functionality and UI.
6 Integrating continuous testing in CI/CD pipelines to automatically run tests after every change in the developed application.
7 (optional) Setting up the Testing Center of Excellence to introduce a consolidated company-wide test automation environment, establish common software testing tools (test automation frameworks, bug and issue tracking tools) and standardize test coverage and quality metrics.
Vertscend tip: Use the balanced combination of automated and manual tests to achieve max software quality while supporting frequent releases and staying cost-effective. Vertscend team usually automates functional regression and integration tests, cross-browser testing, performance testing. Manual testing is used for exploratory testing, one-time runs to provide prompt response to developers after hotfixes, testing from a user’s perspective (simplicity, visual aspects).
Note: familiarity with software packing tools, modern-version control tools, security tools, code coverage analytical tools and monitoring tools is required.
Below is a quick overview of the tools that we at Vertscend often choose for our software development automation projects.
Low-code development
DESCRIPTION
Power Apps licenses: $5 – one app per user/month and $20 – unlimited apps per user/month.
AI Builder: $500 per unit/month.
Cost of authenticated users of a portal built with Microsoft Power Apps:
Cost of anonymous external portal users: $100/per 100,000 portal page views.
Development and execution of automated web UI tests
DESCRIPTION
Free.
Continuous integration
DESCRIPTION
Free.