Tag: Automated testing

  • Sauce Labs Adds Visual Testing Tool to Platform

    Sauce Labs Adds Visual Testing Tool to Platform

    Sauce Labs has added native visual regression testing capabilities to its testing platform to enable DevOps teams to streamline workflows.

    Marcus Merrell, vice president of technology strategy for Sauce Labs, said Sauce Visual provides the ability to test user interfaces without requiring DevOps teams to acquire, maintain and integrate a separate tool.

    The overall goal is to make it possible to test functions and user interfaces in parallel by adding a single line of code to a DevOps workflow, he added. Updates to the visual presentation of a page are automatically highlighted, with any visual inconsistencies automatically surfaced. In comparison, a standalone visual testing tool increases the time it takes to execute a test suite, noted Merrell.

    Sauce Visual natively uses the same tools as the rest of the Sauce test automation platform, and can be integrated into any continuous integration/continuous delivery (CI/CD) workflow. At launch, Sauce Visual is compatible with Java/JUnit, Java/TestNG, WebDriverIO, Selenium, Appium (web) and Cypress testing tools with support for Playwright, Puppeteer, TestCafe, Espresso, and XCUITest forthcoming.

    The Sauce Labs approach also serves to reduce the total cost of application testing at a time when the number of applications organizations are building and deploying only continues to increase exponentially, said Merrell.

    In general, organizations are attempting to strike a balance between shifting responsibility for testing too far left toward developers that typically lack testing expertise and the need to verify application experiences are delivered as expected. Many organizations have shifted more responsibility for testing toward developers in the hope of improving code quality and reducing the number of vulnerabilities that might find their way into a production environment. The challenge is those efforts have also increased the level of cognitive load developers need to carry at the expense of having more time to write application code.

    Of course, in time, artificial intelligence (AI) tools will make it easier to generate test scripts, but there is still going to be a need for testers who were not involved in the writing of code to validate it, noted Merrell. The difference is those testers will not necessarily need to be rocket scientists as the process of creating tests becomes more automated, he added.

    Testing user interfaces is especially problematic for developers because many of them don’t have a lot of expertise in the business functions that the application they are building enables. In addition, there are often minute changes to user interfaces that developers are not always going to discern.

    As always, one of the first things that tends to be reduced whenever a developer falls behind schedule is testing. In a recent Sauce Labs survey found more than two-thirds (67%) admitted they pushed code into a production environment without testing, with more than a quarter (28%) acknowledging they do so on a regular basis.

    The assumption is that if any issues do arise, they can be addressed via the next update to the application. End users, however, are less tolerant of that approach when, in the age of digital services, an alternative application is readily available.

  • SapientAI Emerges From Stealth to Apply AI to App Testing

    SapientAI Emerges From Stealth to Apply AI to App Testing

    SapientAI emerged from stealth today to automate the writing of test code using a combination of generative artificial intelligence (AI), machine learning algorithms and data science.

    Fresh from raising $5 million in seed funding, SapientAI CEO Rishi Singh said the goal is to leverage AI to push application testing further left using an AI Test Coder the company built.

    The concept of AI Test Coder is similar to the co-pilot capabilities that GitHub and Google are providing to help developers write better code faster, but also goes beyond generative AI to add deeper analysis and contextual understanding to the tests it automatically generates, noted Singh.

    In the longer term, the ability to use AI to create tests will result in the deployment of more secure, higher-quality applications because there will be no need to short-shrift application testing processes in the interest of meeting deadlines, added Singh.

    Prior to the rise of AI, building application tests has historically been prone to error. AI Test Coder is designed to be a plug-in for an integrated development environment that will leverage the large language models (LLMs) created by OpenAI and cloud service providers to employ natural language to create tests based on an analysis of the application environment created using a combination of machine learning algorithms and data science techniques, said Singh.

    As part of the effort, AI Test Coder instantly inspects all software code to understand the software testing environment, including any incorrect assumptions that stem from errors and bugs, before generating any test code. It then leverages code intelligence to understand existing code and automatically identify and detect patterns to anticipate any new software issue that may arise. AI Test Coder also locates where code changes will have an effect before any test code is created. This eliminates time that would otherwise be wasted on manually debugging code.

    Once those steps are completed, Test Coder then generates more accurate tests without relying on the current trial-and-error approach to testing that can slow application development, said Singh.

    In effect, AI Test Coder provides each developer with their own assistant dedicated to managing testing tasks that ultimately improve quality assurance, including removing many of the vulnerabilities that create application security issues that have become the bane of software supply chains.

    It’s too early to determine precisely what impact AI will have on application development and deployment, but many of the manual tasks that create a sense of drudgery are about to be eliminated. That means the overall pace at which applications can be built and deployed is about to be greatly accelerated. DevOps teams are likely to find themselves pushing more code simultaneously through pipelines than ever.

    Naturally, AI will soon be applied to not just writing code and tests faster, but also DevOps workflows. The issue now is determining which of the tasks that today require manual intervention will be eliminated in a way that enables DevOps teams to focus more of their time and effort on more complex challenges.

  • Continuous Testing: The Key to Quality Assurance in the DevOps Era

    Continuous Testing: The Key to Quality Assurance in the DevOps Era

    Continuous testing has emerged as a critical aspect of quality assurance in the DevOps era. In recent years, there has been a rapid transformation in software development methodologies. With the advent of DevOps, there has been a significant shift toward automation and continuous integration and delivery (CI/CD). The traditional approaches to quality assurance are no longer adequate to meet the needs of modern software development practices. Continuous testing is the key to ensuring that the software is delivered on time, with quality and reliability.

    Definition of Continuous Testing

    Continuous testing is a process of executing automated tests continuously throughout the software development life cycle to provide rapid feedback on the quality of the code. It is an essential component of DevOps that ensures that the software is always ready for release. Continuous testing allows for the detection of defects and errors at an early stage, which reduces the risk of production issues and enhances the overall quality of the software.

    Importance of Continuous Testing in DevOps

    To understand the importance of continuous testing in DevOps, it is essential to understand the evolution of quality assurance in software development.

    Traditional Waterfall Method

    The traditional waterfall model of software development had a sequential approach to quality assurance. Testing was only performed after the development phase was completed. This approach often led to delays and increased costs due to detecting defects later.

    Agile Methodology

    The Agile methodology introduced an innovative approach to quality assurance. Testing became an integral part of the software development lifecycle, and the focus was on continuous feedback and improvement. However, even with Agile, testing was still done in batches, and there was a significant amount of manual testing involved, which could be time-consuming and prone to errors.

    DevOps Model

    The DevOps model took the concept of continuous feedback and improvement to a new level. With DevOps, testing became automated, and continuous integration and delivery became the norm. This approach significantly reduced the time to market, increased collaboration between development and operations teams, and enhanced the overall quality of the software.

    The Role of Continuous Testing in DevOps

    Definition of DevOps

    DevOps is a software development methodology that emphasizes collaboration and communication between development and operations teams to deliver software products rapidly and reliably. It involves the integration of development, testing and operations into a continuous process, with automation as a key enabler.

    Importance of Continuous Testing in DevOps

    Continuous testing is a critical component of DevOps. It enables the testing of software continuously throughout the development lifecycle, which helps to identify defects and issues early on.
    This early detection of issues is essential in reducing the risk of production issues, and it allows for timely feedback, which facilitates faster decision-making.

    Benefits of Continuous Testing in DevOps

    There are several benefits of continuous testing in DevOps, including:

    · Faster time to market: Continuous testing enables the rapid release of software, reducing the time to market significantly.
    · Improved collaboration: DevOps emphasizes collaboration between development and operations teams, and continuous testing facilitates this collaboration by providing continuous feedback on the quality of the code.
    · Enhanced quality: Continuous testing enables the early detection of defects and issues, which reduces the risk of production issues and enhances the overall quality of the software.
    · Reduced costs: Continuous testing can help to reduce costs by identifying defects and issues early on, which reduces the cost of fixing issues later in the development cycle.

    Implementing Continuous Testing in DevOps

    Choosing the Right Test Automation Tools

    The selection of the right test automation tools is critical to the success of continuous testing in DevOps. Some of the popular test automation tools for DevOps include Selenium, Appium, Cucumber and JUnit.

    It is essential to choose a tool that is easy to use, integrates well with other DevOps tools, and has strong community support.

    Building an Effective Test Automation Framework

    An effective test automation framework is essential to implementing continuous testing in DevOps. A test automation framework is a set of guidelines and standards that help in the creation and execution of automated tests.

    A good framework should be modular, flexible, and scalable. It should also be easy to maintain and extend as the project grows.

    Integrating Continuous Testing Into the DevOps Pipeline

    To implement continuous testing in DevOps, testing should be integrated into the DevOps pipeline. The DevOps pipeline is a series of steps that automate the software development process, from code commit to production release.

    Continuous testing should be integrated into every stage of the pipeline, from unit testing to acceptance testing.

    Best Practices for Continuous Testing in DevOps

    To achieve the full benefits of continuous testing in DevOps, it is important to follow best practices. Some of the best practices for continuous testing in DevOps include:
    · Test early and often: Testing should begin early in the development cycle and continue throughout the development process.
    · Automate everything: Automation is essential for continuous testing in DevOps. All tests should be automated, including unit tests, integration tests and acceptance tests.
    · Integrate testing into the DevOps pipeline: Testing should be integrated into every stage of the DevOps pipeline, from code commit to production release.
    · Use the right test data: Test data should be relevant and representative of real-world scenarios.
    · Collaborate across teams: Collaboration between development, testing and operations teams is essential for the success of continuous testing in DevOps.

    Challenges and Solutions for Continuous Testing in DevOps

    There are several challenges to implementing continuous testing in DevOps, including:
    · Test data management: It can be challenging to manage and maintain relevant test data that accurately represent real-world scenarios.
    · Test environment management: Ensuring that the test environment is consistent and reliable can be a challenge, especially in complex applications.
    · Test automation maintenance: Test automation scripts can become complex and challenging to maintain, especially as the application evolves.

    Strategies for Overcoming Continuous Testing Challenges

    There are several strategies for overcoming the challenges of continuous testing in DevOps, including:
    · Test data management: Creating synthetic test data can help ensure that the data is relevant and representative of real-world scenarios.
    · Test environment management: Using containerization technology such as Docker can help ensure a consistent and reliable test environment.
    · Test automation maintenance: Regular maintenance and refactoring of test automation scripts can help keep them up-to-date and relevant.

    Conclusion

    Continuous testing is the key to ensuring quality in the DevOps era. It enables the rapid release of software, reduces the risk of production issues and enhances the overall quality of the software. Implementing continuous testing in DevOps requires choosing the right test automation tools, building an effective test automation framework, integrating testing into the DevOps pipeline and following DevOps best practices. Although there are challenges to implementing continuous testing in DevOps, these challenges can be overcome with the right strategies and practices. By implementing continuous testing in DevOps, organizations can achieve faster time to market, improved collaboration, enhanced quality and reduced costs.

  • Tabnine Extends Generative AI Platform Reach to Testing

    Tabnine Extends Generative AI Platform Reach to Testing

    Tabnine today announced it extended its generative artificial intelligence (AI) platform that enables developers to write code faster to now include the ability to automatically generate tests for that code.

    Available in beta, this capability promises to make it easier for developers to test code at the time it is being developed. That approach should make it simpler for developers to address issues without losing any context.

    Brandon Jung, vice president of ecosystems and business development at Tabnine, said this latest addition to the Tabnine platform is part of a larger effort to extend the reach of the Tabnine generative AI platform across the entire software development life cycle. The testing capability is expected to be generally available in the third quarter, and Tabnine expects to also employ generative AI to automate a much wider range of tasks across the software development life cycle within the next 12 months.

    The Tabnine platform supports multiple programming languages including Python, Java and JavaScript and is designed to be integrated with integrated development environments (IDEs) such as Visual Studio Code and Jetbrains. The company has also previously integrated its code completion tool with the GitLab continuous integration/continuous delivery (CI/CD) platform. The overall goal is to make it easier for developers to automatically write code based on custom models using approved source code hosted in a secure private repository, said Jung.

    Generative AI creates a large language model that assesses the probability of what the next line of code will be based on what has preceded it. Tabnine is now extending the model it created to also generate tests for the code its platform helped a developer write. It’s not clear what impact this ability to automate test creation will have on the need for dedicated testing teams, but it is about to become considerably easier to shift more responsibility for testing further left toward developers.

    It’s not likely DevOps teams will be replaced as generative AI is extended across workflows, but the overall size of those teams might shrink, noted Jung. DevOps teams will soon be able to do far more with fewer people, he noted. At the same time, the barrier to DevOps adoption will also fall as AI platforms make it simpler for more organizations to embrace DevOps best practices, added Jung.

    The challenge will be making sure the data collected to train AI models is of a high enough quality to ensure the desired outcome, noted Jung.

    One way or another, it’s now only a matter of time before generative AI capabilities are applied more broadly. Platforms such as ChatGPT developed by OpenAI are only the tip of the iceberg that impacts almost every manual process, including software development and deployment. The issue will be determining at what rate those innovations will become practical to employ. In the meantime, it is already apparent generative AI platforms are having a significant impact on the rate at which code can be developed. Inevitably, that means the amount of code moving through DevOps pipelines at any one time is about to increase significantly.

  • Faster and Better Testing?

    Faster and Better Testing?

    The whole concept of Agile and DevOps was to iterate development faster and deliver results in a more timely manner. As we learned more about both methodologies, processes and policies were put into place that improved the quality of what was created. Early ideas of quality like, “We can just do another iteration,” still exist, but are largely not used. Rollbacks are a thing in most orgs, and though the environment is more complex, rollbacks are easier to manage in the smaller development changes that iterations generally represent.

    And once we got past the whole, “Anything that slows the process down is bad!” mentality that permeated early implementations of both DevOps and Agile development, we started seeing amazing things. But including things like security and functional testing were not viable in the fast-iteration world that Agile and DevOps created. And they really weren’t viable at most orgs in the slow-iteration world of waterfall, either. Staffing and time constraints made them fall far short of optimal in the vast majority of organizations. But putting them into the DevOps process challenged vendors to find a way to do things faster and challenged organizations to look at quality and security a little differently.

    And now, we have tools that can test—be it functional, integration or security—at the speed of DevOps. Tools that enable Agile development with an eye toward security. A far larger number of developers now acknowledge their part in application security and are creating more secure code.

    Keep an eye on how AI/ML is being used in testing—all forms of testing—and how it evolves in the next year or two. The same with full-on automation. I’ve made no secret that I view AI/ML in the testing space as advanced automation because of what it enables, so maybe “Watch what AI/ML-enabled automation is available,” is more accurate. The ability to create, run, process results and even modify code to resolve issues are all out there today, and getting better. Faster, more accurate, more automated.

    Much like back when intrusion detection became intrusion prevention, I would not just turn it on and walk away, but think about the ability to upskill developers; “Here is a list of things the automated system found, and a list of fixes it proposes.” They are literally being shown how to do their craft better.

    I’ve been a developer, so I’m not being offensive, here. If you get something that tells you, “This is an issue; here is why it happened and here is what to do to fix it,”take the opportunity to get better at coding. Look closely at the what, the why and how to fix it and incorporate that into your work.

    And keep rocking it. We’ll be making more stable and secure code, but you’ve kept systems running without that feedback and fixed the errors along the way. This just makes it easier to find the errors early—before they crash production and make a fire drill.

  • Testing Automation has Become a Necessity – Techstrong TV

    Testing Automation has Become a Necessity – Techstrong TV

    Guljeet Nagpaul, Chief Product Officer for ACCELQ, explains why automating testing has become a necessity. The video is below followed by a transcript of the conversation.

    Mike Vizard: Hey, guys. Thanks for the throw. We’re here with Guljeet Nagpaul, who is chief product officer for ACCELQ, and we’re talking about all things related to testing. Guljeet, welcome to the show.

    Guljeet Nagpaul: Thanks, Mike. Thanks for having me.

    Mike Vizard: Do you think the whole testing focus has increased somewhat in the last few months with the whole shift to digital transformation, and people are trying to develop more applications than ever? I think it’s kind of critical to get it right the first time these days. I think the tolerance for experimenting on end users, especially in a digital business context, is a lot lower, but is there some sort of fundamental shift going on with testing that you’re seeing?

    Guljeet Nagpaul: Yeah, both things you mentioned, Mike, are right on. The digital transformation has clearly been on steroids almost now for the past couple of years, since we’ve seen the world kind of changing around us with remote work. A lot of processes which were even in healthcare and financial space, which were kind of buried with red tape, all of them have been kind of almost on steroids to become more automated, and organizations have had to kind of put their transformation objectives much more on a fast track. That, like you rightly said, automatically leads to having to ship the applications must faster to their customers to run their businesses faster. The need for automated testing for shipping their software faster gets kind of even more critical.

    Mike Vizard: Where is that automation taking place? Are we automating tests for the developer as we shift things left, or is the automation more in the CI/CD DevOps platform, and we’re trying to automate it there because that may be the place where the application itself comes together; otherwise, each developer is testing a small piece of something but maybe not the whole thing and then?

    Guljeet Nagpaul: That’s exactly right. We live in a world where there is an app for everything. That has been true from a consumer perspective, but now, interestingly, that is more so true on our enterprise application side. Back in the day, if you remember, we had a couple of ERPs and then we had some homegrown systems, and that’s kind of how the IT landscape of organizations looked. But now, with the onset of cloud apps, with packaged applications, with vertical applications, there is an app for everything for enterprises to be able to go more automated. What that translates to is a highly-integrated enterprise application ecosystem. What that means is unit testing or just shifting left in terms of automation is not going to be enough.

    You would really need that end-to-end validation, and each app has at least five upstream and five downstream integrations, which means the real automation, and the real customer experience in terms of your end-to-end workflow has to be automated across the board. That DevOps CI/CD pipeline you talked about, that gets even more kind of focused in terms of being able to validate that end-to-end workflow. That is kind of where we are really seeing the need for automation, more than kind of what we would have thought from a shift-left perspective. That’s absolutely necessary because you want to build a stronger product. You don’t want to be reactive in building a strong product, you want to bake quality into the product, but then downstream, you want to make sure your end-to-end workflows work as designed in terms of an integrated end-to-end system.

    Mike Vizard: How far down the path are we to achieving that goal, because I think somewhere along the line everybody maybe thinks that testing is somebody else’s job, but what’s the maturity level of testing these days in terms of automation?

    Guljeet Nagpaul: Yeah, like with a few different functions within our IT, we kind of see kind of a full circle come back, right? A lot of testing was starting to get perceived as commoditized, and we saw a lot of testing kind of getting shifted from that perspective as a cost function. But, quickly, organizations realized that without continuous testing, there is no continuous delivery, and that’s really the crux of it, that if you can’t have a dependable, reliable, continuous test automation to bridge that gap between your dev and ops, there is no DevOps, because that’s the key bridge between your dev and ops, right? With that notion, the testing maturity level has struggled.

    To be honest, a lot of automation approaches, and I spent over a decade with HP, a lot of traditional automation tools and approaches have focused more on silos because our app ecosystem was not that integrated back in the day, right? It used to kind of have integration, but not at the level that you’re seeing today, so the need for an automation approach that can span across these technology stacks is now kind of more new and is now more critical. The testing maturity in terms of what approaches are out there has struggled, but we are now starting to see customers really needing that across-technology-stack approach, and that’s kind of where ACCELQ has a sweet spot.

    Mike Vizard: Do you think the rise of micro-services is forcing the automated testing issue because we’re reaching a level of complexity that can’t really manually test all these things?

    Guljeet Nagpaul: I would say yes. Just in the last five years, interestingly, Mike, we have seen API testing as part of critical proof-of-concepts to when customers come and try a platform like ACCELQ out in terms of seeing whether it’s fit for their needs or not. Just in the last five years, we have seen at least three times the interest in making sure that APIs can be validated apart from their UI. But, like I said, it’s really more about how that validation can be done across the technology stacks. To give you an example, a healthcare customer of ours, one of the top five companies in the world, they had a use case where a patient walks into a pharmacy to put in their prescription, but now with COVID and everything, the automation is kind of boosted.

    Now they can key in their prescriptions directly through their mobile apps connected to their healthcare providers. Once that prescription is keyed in, there are at least 20 downstream processes that are kicked in, including mainframe systems, micro-services, a database that’s maybe sitting on a cloud, but then coming back to a pharmacy system which is still living in an old-school desktop world. The real demand, what we are seeing is kind of this across technology side, because that’s what the user experience is.

    Mike Vizard: How smart can testing get? We hear a lot about artificial intelligence these days. Will the whole thing become automated or what will be the role of the tester, per se?

    Guljeet Nagpaul: Yeah, that’s a great question. AI unfortunately gets thrown around very loosely these days, especially more so with talking about how AI is the platform. We have looked at it always as a tool in our toolkit. Ever since the inception of our platform, we have always looked at how we can leverage AI to make things more efficient as opposed to saying AI is the platform. We have always looked at it more realistically. If you forget AI for a second, that’s kind of how as people we have embraced technology. In various aspects, technology has enabled us to increase our throughput regardless of which process area are we picking, and that is kind of how we see AI. If it’s leveraged accurately, it’s going to increase the throughput of our test engineers. It is going to increase the throughput of our automation engineers. At various process areas that then test automation life cycle, that’s kind of how we’ve looked to leverage AI.

    Mike Vizard: Do you think we’re approaching a point where the number of applications being built is overwhelming the testers that are out there, and the pace of that work is getting to a point where they become a bottleneck?

    Guljeet Nagpaul: Yeah, I was having a discussion on the same lines with our Forrester analysts, and one of the interesting discussion points around that was we all as testers within the DevOps space have to almost take a step back and understand what needs to be tested before going about kind of in the traditional manner testing it. Yes, it can be overwhelming with so many apps coming together so quickly in terms of being able to serve our businesses, but a lot of these apps which are getting shipped for our businesses, for these organizations are cloud apps, or maybe packaged apps, vertical apps. All they need is configuration and integration with other apps, and then they can kind of start doing the job in terms of the outcome that the businesses are expecting. It almost needs some level of refactoring, a new mindset when you think about in this new world of facts, how should you be testing and what you should be testing to get the maximum bang for your buck, so it’s easy to get overwhelmed. But, with automation and the right approach to what needs to be tested, you can kind of be more efficient with your efforts.

    Mike Vizard: Who writes the tests these days? It seems to me a lot of time and effort has been spent on creating the tests, and, as we automate that process, can we get to the point where the machines can create the tests? I mean, to what degree do I need to create the tests versus run the tests?

    Guljeet Nagpaul: Yeah, that’s an interesting point. The way we look at it is, unfortunately, the way testing and automation specifically has evolved, the traditional approaches I talked about, they have lived on two ends of the spectrum, Mike, one end of the spectrum being very record-and-playback oriented. But, we have seen in the past 20 years that automation is not new; it has been around for at least a couple decades. Back when we released Windrunner, and I don’t know if that rings a bell, I was part of the original Windrunner team, at one point we had about 70 percent market share, and record-and-playback was the thing automation. But, in the last ten years, there have been a plethora of tools which have come on the same lines of record-and-playback but we have seen that they just are not scalable enough to deal with the changing technology stack. They are just not real-world enough to work across technology stacks, and a lot of other things in terms of design challenges and so on.

    The other end of the spectrum that we live in is open source, and you kind of pointed to how testing had been shipped out as a cost function, and open source made a big kind of wave into the test automation area, but that became a specialist function. The reason this is important, to your point of the question, is when automation has become a specialist function, because we have seen about 60 to 65 percent market share ‒ Gartner did a survey of open source taking over a lot of kind of testing and automation approaches. But, when you see that, basically it becomes a specialized function, and all my testing team is a mixed bag of testers, maybe some automation engineers, but a lot of business subject matter expertise. If you really want a strong test approach, you need to make the subject matter experts people who understand business rules.

    That needs to be validated as part of the automation, and that’s kind of where both ends of the spectrum have to meet, where a non-technical, non-specialized tester should also be able to be part of that automation. That can only become if our platforms are smarter, right? Maybe depending on that suite to be adaptable, maybe bridging machine in certain cases, to your point, to be able to write smarter test cases, to basically have your automation more leaner and meaner so that it can do more with kind of less in terms of authoring and design changes and change with so many releases happening, so absolutely. I mean, testing has to get out of the specialized function role.

    Mike Vizard: All right. We hear a lot of focus these days on security, of course. Do you think that security ultimately will become part of a quality assurance testing process, because it’s not clear to me that those are two distinct functions anymore. They might be joined at the hip in some fashion.

    Guljeet Nagpaul: I sure hope so. The strongest of the software and the organizations just in the past one year, we have seen outages which we would have never imagined, right? AWS went out a few times, Facebook, Meta, went out a few times, and you name it. Security has to become an integral part, and we are seeing this more and more. As part of functional regression tests, customers want to have those security regression tests. Security lived in two worlds until now. One was static code analysis, which is, “Let’s do static code analysis,” which is good, it’s kind of like shifting left to your unit tests. Yes, you’ve got to find your vulnerabilities right when your code is written, but, once the code is in action, what vulnerabilities come can be a different game.

    Static code analysis is where security lived, and, like you said, that’s why it was a little bit in the different world. Then, you had dynamic security firewalls, which are kind of more glorified firewalls. But, in the middle, that functional testing, leveraging security validation is a gap in the industry right now, and we are certainly looking to fill that gap. We have already helped a lot of Fortune 100 customers, including certain financial services customers, fill in that gap, leveraging the functional automation approach because they’ve had some solutions around these two things but functional is where it needs to get seated into, right? Like you said, it has to become mainstream into the testing and function automation space.

    Mike Vizard: All right. Other than hanging out on your website, what is your best advice to folks about how to get to this continuous testing nirvana, I guess, because, ultimately, time is money, so every time an application has a disjoined experience, somebody is losing money somewhere, right?

    Guljeet Nagpaul: Totally. Automation first. Automation first is the key. A lot of traditional mindset still remains at, “Let’s write my manual tests and let’s write the manual tests them into convert them into automation.” The mindset has to change. The organization approach has to change to automation first. For automation first, you can only do automation first if it’s not a specialist function. Don’t get caught up in getting buried into a technical debt. You don’t want a million lines of code to test a million lines of code, right? Figure a more robust solution and go automation first, and that will set you on the right path.

    Mike Vizard: All right. Guljeet, thanks for being on the show.

    Guljeet Nagpaul: Thanks, Mike. Thanks for having me.

    Mike Vizard: All right. Back to you guys in the studio.

  • Applying TestOps to Cultivate a Quality Culture

    Applying TestOps to Cultivate a Quality Culture

    Quality assurance is a universal concern, especially when it comes to application development. Enterprise applications are faster and more reliable than ever before. However, in addition to performance, application developers also must consider data security, regulatory compliance and cost-effectiveness, among other things. Organizations are embracing quality engineering (QE) as a foundation to create a software quality culture to address these challenges. Creating a quality engineering or TestOps environment is not simple, especially when QE departments must test for hundreds of applications across multiple enterprise environments. Whether it is a solution provider or a multinational corporation, applications often need to be tested across platforms, industries and geographies.

    TestOps encompasses a broader concept than just QE. With TestOps, there are testers and engineers using automated and manual testing to validate software for flawless application performance. In enterprise DevOps, the TestOps team serves as the bridge between development and deployment since they have a good understanding of the applications and a better perspective on the context and variables that can affect performance.

    Continuous testing is an integral part of any software development cycle. Quality engineers must be brought in early as part of Agile development to keep development on track and head off any problems that could escalate or become harder to resolve later. In Agile, testing becomes more crucial and frequent to ensure flawless performance.

    It pays to think horizontally when setting up a TestOps approach. For example, testing should be performed across different vertical environments such as media, manufacturing and finance. The goal is to create a test environment that can accommodate various industries.

    TestOps Across Environments

    In the age of SaaS and universal data access, it is essential to test across multiple platforms. In addition to ensuring enterprise performance, mobile web and remote data access must be tested. For streaming services, it is vital to test across mobile platforms, over-the-top (OTT) platforms such as Roku, Apple TV, Android TV and Fire TV, and even gaming consoles like PlayStation and Xbox.

    When shipping software updates, geography matters (especially when shipping across time zones), as one may never know when the software will be used or have control over the environment where they plan to use it.

    For instance, consider the challenges a leading mortgage lender faced with mobile application testing and how geography was a factor. First, Google Analytics was used to assess specific device and user requirements and ascertain performance in various parts of the United States since different regions use different carriers. Testing was then done across mobile platforms such as iOS, Android and combinations and across carriers since most banking and mortgage applications required one-time passwords (OTPs) and SMS-related capabilities. Further tests were implemented for new identity authentication strategies such as biometrics and facial recognition. Finally, performance testing by geography was conducted to determine whether a new feature or version would create issues.

    Testing for Geographies and Regional Compliance

    Localization testing is important since every region and every country has unique compliance issues and laws. To ensure proper localization, it is essential to perform complete testing, including lower environments and production systems.

    In any TestOps environment, the philosophy of continuous testing should already be part of the design environment, including understanding the nuances of production. Release readiness does not mean there are only a few known bugs in certain regions. It means the application has been tested for compliance in every geography where it could possibly be utilized.

    Testing Across Industries

    Testing application performance in specific industry settings brings along its own set of unique challenges. In manufacturing, for example, each sensor in an IoT device must be modeled against a conformance specification to determine if it can be automated using simulations. In media, one needs to test for different platforms, content management systems and business workflows.

    To accelerate time to market, one would want to support a dual-shift development lifecycle to gauge the consumer experience and get continuous feedback and also need a test environment with multiple automation tools such as Selenium, Appium, Cypress, Tricentis, UiPath, Test Complete and Winium.

    Artificial intelligence (AI) plays a larger role in testing, shortening time to market, and ensuring superior quality software. AI-driven test tools are optimized for domain-specific applications, such as testing for industries like media, manufacturing and fintech. AI can fill in the gaps to achieve optimization and offer a quicker turnaround with limited manual intervention.

    Any organization cultivating a TestOps culture needs to have specific technologies and tools in place. When assessing your testing technology stack, it is important to create an end-to-end testing ecosystem. This means the environments must be inclusive and capable of incorporating testing for unique applications, environments and scenarios. To support the needs of today’s Agile application development environment, one must plan for an agile testing infrastructure to keep development on track.

  • Survey Warns of Looming Software Testing Crisis

    Survey Warns of Looming Software Testing Crisis

    A survey of CEOs and IT professionals involved in application testing finds a significant gap in terms of how acceptable it is to release software that has not been properly tested.

    The survey, conducted by the market research firm Censuswide on behalf of Leapwork, a test automation platform provider, polled 480 CEOs in the U.S. and the United Kingdom (UK) from organizations with more than 500 employees and 480 heads of quality assurance, testers, release and delivery managers and site reliability engineers (SREs).

    A full 85% of the CEOs in the U.S. and 69% in the UK said it’s acceptable to release software that hasn’t been properly tested, as long as patches are tested and applied later. Less than half of the IT professionals surveyed (49%) agreed. A full 94% of CEOs also said they’re confident the software released is tested regularly.

    However, 79% of the IT professionals admitted that as much as 40% of software goes to market without sufficient testing. As a result, 68% of UK and 52% of U.S. IT professionals said their teams spend five to 10 days per year patching software.

    The survey also made it clear that everyone involved is well aware of the risks that lack of testing creates. Nearly every CEO (95%) is concerned about losing their job in the wake of a software failure. Slightly more than three-quarters of the IT professionals (76%) surveyed have the same fear.

    More than three-quarters of CEOs (77%) also noted that software failures have harmed their company’s reputation in the last five years.

    Many organizations today assume that Agile development and DevOps best practices will enable them to apply patches quickly in the event an issue arises. The trouble is, in the absence of sufficient testing many of those organizations are essentially experimenting on end users.

    Leapwork CEO Christian Brink Frederiksen said the primary reason so much software is not being properly tested is that most organizations continue to rely on manual testing processes that can’t keep pace with the rate at which applications are now being developed; one major factor is the use of low-code and no-code tools.

    Of the IT professionals at organizations that release insufficiently-tested software, a full 40% cited underinvestment in test automation as a factor, with only 43% of respondents using some type of automation. Other reasons cited for the lack of appropriate testing included lack of time (34%) and increased rates of deployment (29%).

    Just over a third of CEOs (34%) and about four in 10 testers (42%) whose companies use or develop in-house software that goes to market without being tested also cited a lack of available skilled developers. More than a third of CEOs (34%) also cited underinvestment in testing personnel.

    At a time when more organizations than ever are dependent on software to drive digital business transformation initiatives, it’s apparent that an application testing crisis is imminent. The only thing left to be determined is how catastrophic the fallout will be because existing processes don’t scale to meet the challenge.

  • How Automated Testing Closes the Development and Delivery Gap

    How Automated Testing Closes the Development and Delivery Gap

    For the past two years, companies have leaned into digital transformation projects to keep their digital offerings at pace with their in-person operations. Rather than become a stopgap, this digital approach became the new standard for the modern employee and customer experience. It also creates friction between a company’s development team and its user base. How long should customers wait for new or updated applications in our increasingly fast-paced business environment? Companies need time for development and testing to deliver quality products, but will the demands of their users force them to cut corners?

    Consider each stage of a customer’s journey. Visiting a website or app and putting something into the shopping cart is only the beginning. Behind the scenes, systems that monitor availability, sourcing, loyalty and promotions come into play. Following checkout and payment, there are systems for picking the product, packing it and delivering it with timely notifications along the way.

    Businesses find themselves in a bind when they have to decide which of those areas to cut back on. There’s really no good answer—enter the continuous delivery mindset. We like to say there is no continuous delivery without continuous testing, but those two areas are often at odds with each other.

    The good news is that there is a way to close the gap between customer demand and necessary development time: Test automation. Here are three ways that test automation can help companies satisfy both the needs of their business and their customers.

    Relieving the Testing Bottleneck

    Moving fast is becoming a competitive advantage for many companies. That speed-to-market opportunity has been heightened as cloud-based, low-code/no-code apps like Salesforce, MS Dynamics, Workday and Oracle have become an industry standard. Today, while plenty of development activities may be handled by low-code/no-code platforms, the test automation of these apps remains a high-code, high-maintenance activity.

    To keep from becoming a bottleneck, teams should plan automation and testing strategies early in the process. This is where continuous development includes continuous testing. Suppose companies can make test automation accessible to more people by removing the need for specialized knowledge and daunting technical constraints. In that case, they will be able to streamline ongoing development cycles.

    Ensuring Higher-Quality Output; Aligning Development and Testing

    One of the keys to putting out a higher-quality product is by adopting in-sprint testing, which aligns development and testing efforts. Each feature is tested and automated as soon as it is implemented so that teams can more easily catch errors early rather than at the end of a development phase.

    The automation also elevates the area of regression testing, as teams make sure new changes haven’t broken existing functionality. As automation moves into the mainstream, a wider range of collaborators become more involved in testing each additional feature.

    Creating a Better User Experience

    Historically, testing has been extremely focused on function and is very technical while user experience efforts remain focused on the stylistic and usability end of the spectrum. But creating satisfying end-to-end user experiences is a critical part of any application adoption, so the two sides should work toward a common goal.

    That common link lies in a company’s business processes. Each process is the starting point for building and designing a test scenario. From start to finish, everyone understands the user’s journey and works together toward making that path as effortless as possible.

    Conclusion

    Today’s modern customers don’t expect a measurable difference in experience between online and in-person. Expectations are at an all-time high, leading companies to push updates to their websites and apps more quickly and more frequently. As companies increase their dependence on software, the way to test that software is evolving to keep pace with development speeds.

    Automated testing can simplify and speed up the testing phase, catching many of the basic errors and leaving testers to focus on more complex functionality.