Software Development Automation: Actions, Skills, Costs

Software Development Automation Guide - ScienceSoft

Having over 32 years of experience in building software from scratch, 20 years in test automation and 8 years in DevOps services, ScienceSoft helps businesses deliver software fast and efficiently.

Software Development Automation: The Essence

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.

Software Development Automation: Setup Journey

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.

Hot to go low code

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:

  • Low-code application platforms.
  • Business process management suites.
  • Multiexperience development platforms (MDXP).
  • Robotic process automation.
  • Citizen automation and development platforms (CADP).
  • Rapid application development (RAD), rapid mobile app development (RMAD).

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.

Note: Low-code development means limited customization of design and UI layouts, complicated app optimization and evolution. The code also cannot be re-used in other apps.

The most common app types developed with low code are:

  • Employee-facing portals, intranets, productivity apps, internal resource planning and decision validation apps, audit apps, etc.
  • B2C and B2B portals.
  • Mobile apps for employees, customers and partners.
  • Software prototypes.

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.

The key steps of setting up low-code development with LCAP

1

2

3

4

How to implement CI/CD

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.

Continuous integration and delivery - ScienceSoft

The duration of the CI/CD system implementation depends on several factors:

  • Development project size.
  • Requirements for code integration.
  • Requirements for delivery of deployable components.

At ScienceSoft, 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.

The key steps of setting up CI/CD

Note: The architecture of the application under development should support iterative releases.

1

2

3

ScienceSoft’s tip: Some of ScienceSoft’s favorite tools to form a suite for CI/CD implementation are:

  • Source code repository: GitHub, Bitbucket, GitLab, AWS CodeCommit.
  • CI/CD: GitLab CI, Jenkins, Bamboo, CodeShip, TeamCity, Travis CI, Cloud Foundry, Tekton CI/CD, CircleCI, Azure Pipelines, AWS CodePipelines, AWS CodeDeploy.
  • Build tool: Gradle, Maven.
  • Automated testing: Selenium, Appium, Protractor.
  • Code infrastructure management: Terraform, Terragrunt, Pulumi.
  • Configuration management: Ansible, Chef, Puppet, SaltStack.
  • Monitoring tools: Amazon CloudWatch, Azure Monitor, Zabbix, Nagios, Prometheus, Grafana, ELK Stack.
  • Collaboration: Jira

4

5

6

7

How to set up test automation

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.

The key steps of setting up automated testing

Duration: ~ 2 months.

1

2

ScienceSoft’s 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 ScienceSoft use JMeter and Postman. Sometimes we also integrate Selenium with Cucumber to implement increasingly popular behavior-driven development.

3

4

5

ScienceSoft’s tip: To ensure maximum test code re-use, ScienceSoft’s 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

7

ScienceSoft’s tip: Use the balanced combination of automated and manual tests to achieve max software quality while supporting frequent releases and staying cost-effective.

ScienceSoft’s 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).

What is Your Need in Software Development Automation?

Microsoft Power Apps services

  • Microsoft Power Apps advisory services (identifying the right apps for low code development, road-mapping a low-code development project(s), etc.)
  • Building custom business apps, portals, modern UI and UX for applications with Microsoft Power Apps.
  • Connecting apps built with Power Apps to your data stored across Microsoft's ecosystem (SharePoint, Microsoft 365, Dynamics 365, etc.)
  • Extending the capabilities of Power Apps using Azure functions.
  • Deployment, support & administration of apps built with Microsoft Power Apps.
  • Integration of Power Apps, Power Automate, and Power BI.

CI/CD implementation services

  • Designing the CI/CD approach, selecting and configuring CI/CD tools (e.g., Jenkins, GoCD).
  • Designing the test automation approach and integrating continuous testing into the CI/CD pipeline.
  • Integrating IaaC and configuration management tools (Ansible, Chef, Puppet) with CI/CD tools (GoCD, Jenkins, Bamboo).
  • Deployment and configuration of CI/CD and test automation tools.

Test automation services

  • Test automation strategy development.
  • Test environment setup and configuration.
  • Automated test data generation.
  • Automated UI and API testing.
  • Test scripts migration from other platforms (e. g., UFT) to Selenium.
  • Integrating continuous testing into the CI/CD pipeline (in cooperation with DevOps).
  • Setup of the in-house Testing Center of Excellence (optional).

Development automation consulting

  • Identifying software development automation opportunities, estimating investments and ROI.
  • Building the automation strategy and roadmap.
  • Selecting and configuring the right automation tools.

Software Developer (trained in the target low-code platform)

  • Training and mentoring citizen developers.
  • Building low-code apps.
  • Integrating the new apps with data sources and other enterprise apps.

CI/CD engineer / DevOps engineer

  • Developing CI/CD pipelines.
  • Reviewing and modifying CI/CD pipelines.
  • Maintaining CI/CD tools and platforms (if applicable).
  • Developing and maintaining CI/CD pipeline configurations.

Note: familiarity with software packing tools, modern-version control tools, security tools, code coverage analytical tools and monitoring tools is required.

Test automation architect

  • Designing a test automation architecture.
  • Selecting and configuring test automation tools and frameworks.
  • Managing test automation engineers to improve the maintainability and granularity of automated tests and decrease test execution time.

Test automation engineer

  • Setting up the test environment and test data generation.
  • Developing, executing, and maintaining automated test scripts.
  • Reviewing automatically generated defect reports.
  • Collaborating with other cross-functional team members to improve the maintainability and granularity of test scripts.

Sourcing Models for Software Development Automation

The entire software development automation process setup is in-house

Full outsourcing of software development automation process setup

A mix of an in-house team and an outsourced consultancy

Initiative

Low-code development

CI/CD implementation

Test automation

Cost factors and costs

Benefits

Technologies ScienceSoft Recommends for Software Development Automation

Below is a quick overview of the tools that we at ScienceSoft often choose for our software development automation projects.

Microsoft Power Apps

Best for

Low-code development

Description

  • Among Leaders in Gartner’s Magic Quadrant for Enterprise Low-Code Application Platforms.
  • Creation of low-code applications with pre-built templates or from a blank canvas.
  • Extending existing apps with new functionality.
  • 300+ connectors to integrate with the Office 365 universe, Azure SQL, Azure Cosmos DB, Amazon Redshift, and more.
  • Rich AI capabilities – pre-built AI models can extract text from images, perform key phrase extraction and sentiment analysis.
  • Introducing advanced app security and controls.

Pricing

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:

  • $200/per 100 logins.
  • $1,000/per 1,000 logins.
  • $3,500/per 5,000 logins.

Cost of anonymous external portal users: $100/per 100,000 portal page views.

Selenium

Best for

Development and execution of automated web UI tests

Description

  • 4.5 rating on Gartner.com
  • Supports Windows, Mac, Linux OSs.
  • Supports Chrome, Firefox, Internet Explorer/Edge, Safari, Opera browsers.
  • Supports C#, Java, PHP, Python, Ruby, Scala.
  • Selenium web application tests can be re-used in mobile testing with Appium.
  • Many helping forums and a huge community.

Pricing

Free.

Jenkins

Best for

Continuous integration

Description

  • 4.3 rating on G2.com
  • Easy installation on different operating systems.
  • Speedy release cycles.
  • Intuitive user interface.
  • Ecosystem of over 1,800 plugins (platforms, user interfaces, administration, source code and build management tools).
  • Support of distributed builds to reduce loads on the CI server.
  • A thriving community of contributors, which helps keep the tool up-to-date.

Pricing

Free.

About ScienceSoft

ScienceSoft is a US-headquartered IT services company with 32 years of experience in building software, 8 years in DevOps consulting and 20 years in test automation. We offer both advisory and practical assistance with software development automation to help businesses speed up high-quality releases. ScienceSoft is ISO 9001 and ISO 27001 certified, meaning we assure the quality of the delivered services and the security of the customers’ data.