DevOps is a new term emerging from the collision of two major related trends. The first was also called “agile infrastructure” or “agile operations”; it sprang from applying Agile and Lean approaches to operations work. The second is a much expanded understanding of the value of collaboration between development and operations staff throughout all stages of the development lifecycle when creating and operating a service, and how important operations has become in our increasingly service-oriented world.it is nothing but a framework that allows developers, quality assurance and operations to meet customer needs.
67% of folks surveyed in the World Quality Report are using DevOps practices. Many of these DevOps practices have driven a the shift-left strategy of testing which focuses on testing as early as possible in the development process. This helps your teams focus on quality from day one of your project, rather than waiting for defects to be uncovered late in the software development lifecycle.
What is BDD?
BDD – Behavior-Driven Development –One of the key things BDD addresses is implementation detail in unit tests. A common problem with poor unit tests is they rely too much on how the tested function is implemented. This means if you update the function, even without changing the inputs and outputs, you must also update the test. This is a problem because it makes doing changes tedious Behavior-Driven Development addresses this problem by showing you how to test. You should not test implementation, but instead behavior.
The Difference Between BDD and TDD?
Teams have a number of strategies to choose from when it comes to evaluating their applications and ensuring that they stand up to user expectations. In many cases, agile software testing can quickly become confusing for quality assurance professionals due to the number of abbreviations and different types of testing approaches. In particular, behavior-driven and test-driven design have both become more popular, but many organizations don’t understand the difference between these concepts or where they intersect
3.Visual Validation Testing:
Visual testing is a quality assurance activity that is meant to verify that UI appears correctly to users. Many people confuse that with traditional, functional testing tools like Selenium and QTP/UFT which were designed to help you test the functionality of your application through the UI. When we’re talking about visual testing we want to make sure that the UI itself looks right to the user and that each UI element appears in the right color, shape, position and size. We also want to ensure that it doesn’t hide or overlap any other UI elements. In fact, many of these types of tests are so difficult to automate that they end up being manual tests. Applitools was designed to help users create highly maintainable, visual validation tests on a very large scale.
5.Internet of Things iOT & Hardware
We are living in an ever-connected world with all kinds of things connecting to the internet.
There have been some estimates from Cisco that there will be more than 50 billion objects connected to the Internet by the year 2020. The Internet of Things (IoT) is becoming a bit more than a fun three letter acronym. And while internet connected devices have been around for a while, turning it into a practice is an important evolution. It allows the establishment of best practices, better integration into standard software development, and thus more robust applications, sometimes too robust And because software drives everything, and software quality is key. How we can ensure quality in all those connected devices?
We can do following things to resolve this problem:
- A strong test strategy – Think test first
- New platform and test tools
- Gray Box testing
- Test environments with automated test configuration
What is TDD?
TDD or Test-Driven Development is a process for when you write and run your tests. Following it makes it possible to have a very high test-coverage. Test-coverage refers to the percentage of your code that is tested automatically, so a higher number is better. TDD also reduces the likelihood of having bugs in your tests, which can otherwise be difficult to track down.39% of folks surveyed in the World Quality Report are using TDD or BDD. With the growing emphasis on end-user type practices I only see this trend increasing even more over time. BDD/TDD testing focuses on customer risks, with a particular emphasis on creating real end-user scenarios around customer experience, security and performance aspects.
Big difference is the fact that BDD helps mitigate issues caused by TDD and is driven by behaviour and specification. Rather than coding in a bunch of functions, BDD uses a style that is more akin to naturally writing sentences, essentially telling the code exactly what you want it to do. This is a major difference, as BDD directly impacts the actual design of the software, while TDD is more focused on the testing.
Testing Micro services are becoming more and more important as many of the new applications are being built using Microcservices architecture.A microservices architecture consists of very small, extremely focused services that, when they come together, make up what is ultimately a complete application or task. Each instance of a microservice represents a single responsibility within your application. What’s really cool is that these services are independent of one another, which makes them independently deployable and testable.
These services require bare minimum centralized management, use different data storage technologies, and can be written in different programming languages. These services, built around business capabilities, can also be deployed independently by machinery that supports fully automated deployment.
Source : https://theagileadmin.com/what-is-devops/