CloudBees announced the integration of CloudBees’ continuous delivery and release orchestration solution, CloudBees CD/RO, with Argo Rollouts.
The software testing industry is known for its jargon — from black-box testing and defects to mutation testing and Gherkin. But two important terms in the software delivery lifecycle are alpha testing and beta testing. Beta testing is the best-known, even for those with a less-technical background. Major brands like Apple and Google have made this term popular, by running large-scale beta test programs to give users a sneak peek at their new products. But, for most companies, why take the risk of releasing a product in beta, revealing the latest features to their direct competition? The answer is because you need to be sure you are releasing software that is actually useful and usable.
The Need for Acceptance Testing
In most stages of the software testing cycle, QA test engineers perform functional tests to eliminate bugs and defects, ready for release. This ensures the software doesn't crash and the UI behaves as expected. But, in order to verify the software delivers a positive experience, developers turn to two types of acceptance testing: alpha and beta testing.
Alpha Testing
Alpha testing is one of the most important steps in the software development lifecycle. It's typically the last test the QA engineers perform before releasing software to customers. Alpha testing verifies the software is completely bug-free. But QA engineers aren't the only ones who run tests on software before launch — the product team plays an important role, too.
With any form of acceptance testing, the product team knows exactly how the software should operate and work alongside the QA team to advise what needs to be checked and verified during alpha testing. Up to this point, artificial test data is used to run tests, but the product team can provide real test data for each unique user journey, providing a more holistic view of how the product will operate.
Alpha testing is the first time teams can evaluate what the software does rather than how the software behaves. To put this into perspective, consider the steps it takes to build a car. The engine, steering, brakes, and chassis are all thoroughly tested in isolation. But then you need to build a production prototype and put it on the test track. Similar to an alpha test, the car is inspected inside and out and thoroughly tested before it hits the open road.
Beta Testing
Beta testing happens after alpha testing is complete. Beta testing allows companies to expose their software to real users when teams are confident the product or software is ready to be released at full scale. Beta testing is usually done with a small, select group of users. The goal is to see how the software performs in the real world, using real users, with real data. Beta testing allows product teams to evaluate if features are being used as expected and flush out any stability issues that might have an impact on the backend. They can also compare different UI experiences through A/B tests. In relation to the car example above, this would be comparable to testing the prototype car on the open road.
To receive honest results and feedback from a beta test, you need to recruit users who are familiar with the product or with similar technology. Knowing they are testing a product or feature in beta, these users will likely be more forgiving to any mishaps or issues, especially as they are getting a taster of upcoming features not yet available to other customers.
Beta testing can be even more beneficial when your team instruments the UI and backend properly, and monitors exactly what the beta testers are seeing in the software. Importantly, monitoring allows teams to gather data and any crash logs should users trigger a fault or unknown bug. Teams also gather explicit feedback from beta testers, critical for understanding usability and which new features are more popular.
While alpha and beta testing have their similarities, there are distinct differences.
Taking Testing a Step Further
There are two other approaches to consider that generate additional benefits — canary testing and dark launching. Canary testing involves exposing a small group of users to your new software without their explicit knowledge or consent. The goal of canary testing is to compare these users against everyone else. In dark launching, new features are released but not activated. The goal is to ensure the software is still stable and to allow these features to be turned on and off via feature flags.
For some companies, it doesn't stop there. Gmail, for example, was in beta for five years. This approach of long-running betas that are available to anyone are allows companies to avoid potential litigation or negative press that may arise from any bugs. Plus it gives companies the right to change or update the software whenever necessary.
Together, alpha and beta testing ensure software is stable, works at scale, and performs as designed and as users expected. Companies that avoid acceptance testing risk delivering negative customer experiences. But if companies invest in intelligent test tools that leverage machine learning to assist in the creation, running, and analysis of their tests, they can accelerate their product roadmap, giving them a competitive edge and providing the ultimate customer experience.
Industry News
amazee.io, a Mirantis company, announced that its fully-managed application delivery platform is available in AWS Marketplace.
env0 secured an additional $18.1 million of funding to conclude its Series A investment round with a total of $35.1 million.
Planview announced a new strategic collaboration with UiPath. The integration is designed to fuse the UiPath Business Automation Platform with the Planview Value Stream Management (VSM) solution Planview® Tasktop Hub.
Noname Security announced major enhancements to its API security platform to help organizations protect their API ecosystem, secure their applications, and increase cyber resilience.
Mirantis announced the latest version of Mirantis Container Cloud -- MCC 2.23 -- that simplifies operations with the ability to monitor applications performance with a new Grafana dashboard and to make updates to Kubernetes clusters with a one-click “upgrade” button from a web interface.
Pegasystems announced updates to Pega Cloud supported by an enhanced Global Operations Center to deliver a more scalable, reliable, and secure foundation for its suite of AI-powered decisioning and workflow automation solutions.
D2iQ announced the launch of DKP Gov, a new container-management solution optimized for deployment within the government sector.
StackHawk announced the availability of StackHawk Pro and StackHawk Enterprise for trial and purchase through the Amazon Web Services (AWS) Marketplace.
Octopus Deploy announced the results KinderSystems has seen working with Octopus. Through the use of Octopus, KinderSystems automates its software deployment processes to meet the complex needs of its customers and reduce the time to deploy software.
Elastic Path announced Integrations Hub, a library of instant-on, no-code integrations that are fully managed and hosted by Elastic Path.
Yugabyte announced key updates to YugabyteDB Managed, including the launch of the YugabyteDB Managed Command Line Interface (CLI).
Ambassador Labs released Telepresence for Docker, designed to make it easy for developer teams to build, test and deliver apps at scale across Kubernetes.
Fermyon Technologies introduced Spin 1.0, a major new release of the serverless functions framework based on WebAssembly.
Torc announced the acquisition of coding performance measurement application Codealike to empower software developers with even more data that increases skills, job opportunities and enterprise value.