Tune the Need for Speed With Quality and Security Through Continuous Testing Practice in DevSecOps

The Need for Speed With Quality

The slow speed of feedback to the dev team through the results of manual tests decreases productivity significantly. Re-executing manual tests in every iteration of SDLC is not a sustainable pattern in current world. There is never enough time, and adding more personnel to execute manual regression tests leads to reduced returns. Test effectiveness is a critical aspect to keep up with the faster-paced development life cycles so that sufficient quality of the system can be ensured and time and money can be saved. To have better test effectiveness, we need to think differently with the increasing adoption of agile and DevOps practices. We need to have automations in all layers of the test pyramid. This includes unit tests, component tests/service tests, and UI tests. 

Finding the Right Set of Tests

The number of new features, and therefore the number of tests, increases significantly after a few iterations in almost all agile teams. The only way to keep up with the needed regression testing is to automate the right set of tests to ensure the change hasn’t impacted existing functionality. Realistically, we can’t test everything, and we can’t automate all our tests. So, we need to find the right balance. To accomplish this balance, mature DevOps teams use a combination of test automation and manual exploratory testing, both running in a continuous pattern.

What Is Shift-Left Testing and Why Is It the Next Big Thing?

What Is Shift-Left?

The journey of software development looks like this, even today:

As you can see, testers do not get involved in the early stages of software development such as requirement gathering or design or development. Testing has conveniently been moved to the extreme right in the full software development cycle. The consequences of following this approach come in the form of delaying launch dates because testing/fixing/retesting takes a lot of time when performed at the end or compromising the quality of the software by skipping this iterative process.

The Ultimate Guide to Shift-left Testing

Introduction

In today's competitive era, the demand to deliver quality software products in a cost and time-effective manner continues to accelerate. To accommodate that need, more and more companies are now incorporating shift-left testing to their product development processes. To help you better understand this methodology, in this article, we will delve into the basic tenets of shift-left testing, its benefits, and how to measure success.

What is Shift-Left Testing?

Shift-left testing comes about to test earlier in the development process. Even with Agile teams breaking away from the traditional Waterfall development model, testing always seems to be the last step.

5 Reasons to Model During QA, Part 1/5: “Shift Left” QA Uproots Design Defects

Model-Based Testing (MBT) itself is not new, but Model-Based Test Automation is experiencing a resurgence in adoption. Model-Based Testing is the automation technique with the greatest current business interest according to the 2018 World Quality Report, with 61% of respondents stating that they can foresee their organization adopting it in the coming year. [1]

Technologies like The VIP Test Modeler have significantly reduced the time and technical knowledge needed to model complex systems. Organizations can now enjoy all the benefits of Model-Based techniques within short iterations, whereas previously modeling had been reserved for only the most high-stake projects, such as lengthy Waterfall projects in aerospace and defense.

What You Need to Know About DevTestOps

What is DevTestOps?

The DevOps movement or culture celebrated its tenth anniversary in 2018. It is now critical to the success of many organizations.

The original definition of DevOps by practitioners Len Bass, Ingo Weber and LIming Zhu is interesting. “It is a set of practices that helps reduce the time between committing a change to a system and committing the change into normal production – all the while ensuring high quality.”

DevSecOps Keys to Success

To understand the current and future state of DevSecOps, we gathered insights from 29 IT professionals in 27 companies. We asked them, "What do you consider to be the most important elements of a successful DevSecOps implementation?" Here's what they told us:

Automation

  • Include the automation of security into the process. Automate as many steps as possible. Have DevOps teams engage the security side throughout the value stream, looking for hold points, templatizing security aspects, standardizing the process, automate so those things just happen as part of the process. Bring everyone together onto one team.
  • Mobile grew out of DevOps and security was always important to the process. Netflix just does DevOps as part of engineering. Eliminate as many manual steps as possible so security becomes a first-class citizen in DevOps workflows. Add security to the mix. You can’t create a manual workflow, or it will get bypassed. Security has to be tightly coupled with Jenkins, JIRA, and other frequently used DevOps tools.
  • Empower customers to get more automated when it comes to vulnerability management. There are four components to this: 1) people, more collaboration around shared goals around security; 2) processes move from waterfall of CD/CD/CI infusing security early in the process; 3) select tools and technology to increase the velocity of deployment in a DevOps model, remediate as you find errors or vulnerabilities, automate at speed; 4) guiding principles to follow around security and methodology. Create a measurement and monitoring piece.
  • Integrate security into the CI/CD lifecycle. Bake security into the entire automation process. Bake in security automation like scanning and scanning different environments enables DevOps teams to create a certain level of hygiene. Invest in small cycles to set up profiles and a baseline to automate and detect hygiene risks.
  • The most important elements of a successful DevSecOps implementation are automation and collaboration. 1) With DevSecOps, the goal is to embed security early on into every phase of the development/deployment lifecycle. By designing a strategy with automation in mind, security is no longer an afterthought; instead, it becomes part of the process from the beginning. This ensures security is ingrained at the speed and agility of DevOps without slowing business outcomes. 2) Similar to DevOps where there is close alignment between developers and technology operations engineers, collaboration is crucial in DevSecOps. Rather than considering security to be “someone else’s job,” developers, technology operations and security teams all work together on a common goal. By collaborating around shared goals, DevSecOps teams make informed decisions in a workflow where there is the biggest context around how changes will impact production and the least business impact to take corrective action.
  • The key to successful DevSecOps is the automation of security controls inside the DevOps pipeline. Ten principles to follow for DevSecOps implementation: 1) Principle of least privilege for all services that process (read, write, or update) data. 2) Enforcing tight access security for API endpoints. 3) Running SAST (static application security testing) tools as part of the nightly build process and running DAST (dynamic application security testing) tools to identify security defects in running containers. 4) Scanning any pre-built container images for known security vulnerabilities as they are pulled into the build pipeline. 5) Automated tests for security capabilities wired into the acceptance test process. These automated tests include input validation as well as authentication and authorization enforcement. 6) Isolation of containers from one another, avoiding any dependencies and keeping them entirely stateless to eliminate high-value targets for attackers. 7) Automated security updates, such as patches for known vulnerabilities, by means of the DevOps pipeline with an audit log. 8) Reduce the attack surface by using a secure API gateway that enforces fine-grained and scope-grained access to sensitive API endpoints. 9) Automated service configuration management, allowing for compliance with security policies and the elimination of manual errors. 10) Continuous monitoring, audit, and remediation of security defects across the application lifecycle. Also, firewalls should continue to defend in-depth by isolating services. Intrusion detection is a lot harder using containers, so looking at network behavior helps detect abnormal traffic patterns. If possible, security tooling should be a gate to deployments (applies to SAST and DAST). However, all this automated flow should still be validated by external pen tests to make sure automation covers all aspects. Additionally, Incident Response plans should be created and practiced for all new environments to ensure they have the capability to preserve evidence to aid in investigations and staff knows how to execute the plan, either themselves or who to outsource it to.


The Value of Security Testing in QA

Over in the TechWell Hub, I was recently asked by a fellow community member, "Is there value in having traditional testers do security testing in addition to the testing taking place from our security group?" I thought it was a great question, and it deserves a more detailed response.

For many organizations, traditional software and testing groups are separated from the IT security group. The first is just concerned with functionality, while the latter cares only about security. In many cases this results in adversarial relationships, which almost always leads to some challenges for software development teams:

“The Best” of the Best Practices for Test Automation


If I were to write about the benefits of test automation, rest assured that you would be reading all about the enhanced reliability it provides, its laser-like accuracy, and far-reaching coverage. And of course, I would certainly make sure to stress how it can drastically improve product quality, reduce time-to-market, and perhaps most valuable of all, bring with it a high return on investment. 

However, I am not writing about the benefits of test automation, although they are indeed impressive when all laid out like that. Instead, I have chosen to write about something that is arguably much more valuable than the benefits of test automation to your business: how to achieve them. And just like most things done well, it requires the right procedures, the right strategies, and of course, the “right” best practices. 

Shifting Testing Left: How to Get it Right

If your business depends on web and mobile applications to connect with customers and drive transactions — and what business doesn’t these days? — then a great deal of your success or failure as a company hinges on your ability to continuously deliver a flawless digital experience. It’s no surprise then that shift left testing is fast becoming the foundation of the agile development process.

After all, the very idea behind agile development is to enable teams to continually push code and update apps — something you simply can’t do if you’re constantly uncovering bugs at the tail end of the delivery pipeline. Teams thus have no choice but to find ways to run a high volume and wide variety of tests as early in the development cycle as possible.      

How to Shift Left: Four Tips to Change Team Culture

As the “shift-left” mindset begins to take hold, it is important to remember that embedding key technical practices earlier in the delivery pipeline will only deliver value if all teams are prepared and on board with the change. Continuous testing, for example, is essential and may require more of a shift in culture than technology.

Most shift-left discussions focus on automation tools and techniques. But an area that many fail to touch on is culture. This is arguably the most important consideration of all. Simply instructing engineering and operations teams that shift-left is the new world order is unlikely to get them onboard. What’s more, it risks furthering the silent divisions between siloed teams. This is why a cross-organizational culture must be addressed. If you do the right thinking up front, confronting behavioral and cultural challenges early, your shift-left strategy is more likely to succeed and improve delivery performance. With this in mind, here are four tips and practices to help enable a shift-left transformation.