QA testing methods for better products

Agile processes inspire a more collaborative environment to design and release digital products. This methodology, particularly popular among tech and innovative entrepreneurial companies, brings a new high-speed workflow that companies must be able to meet. In this context, QA testing methods are more important because of their ability to increase efficiency and improve work processes within the tech industry. 

Having consistent QA testing procedures will increase your customers’ satisfaction, which will be reflected in long-term commercial relationships. QA has a direct impact on revenues, so it’s important that leaders include QA engineers in the entire process of digital product development. A strong QA team provides a wide range of tests that make sure digital products work, and saves companies a lot of money and working hours. Let’s go over some of the QA methods our team applies.  

Smoke testing

Smoke testing is very helpful to review whether the most crucial features involved in an app or software are working properly. It’s a primarily scripted testing method that provides a quick big picture view of your digital product. Smoke testing aims to ensure overall functionality.  It’s a useful starting point to get the bigger picture of the digital product and proceed with other more specific methods. It’s also a source of data to decide if it’s time to continue to production or conduct other tests.  As part of our QA strategy, we perform smoke testing all the time with Tok, our Chatter messaging app. This is particularly helpful to ensure our new versions are 100% ready to be released in AppExchange. 

Regression testing

Regression testing requires tests be performed for every single area of functionality for the app or software after a change has been made. When bugs are found and the team does their best to fix them, the programming code changes. Each time the code is changed, it may impact other functionality that wasn’t supposed to be affected and may result in new bugs that need to be fixed. Regression testing helps us trace any unexpected impact from alterations. We helped Zola, a wedding registry, planning, and retail company, to test their web and native mobile apps. Regression testing provided great results and new learnings for both of us. 

Sanity Testing

Sanity testing is not performed to verify the core functionality (such as regression testing), but to double-check the rationality (sanity) of the digital products. It focuses on one or two (or a few) sections of the software. If any of them doesn’t retrieve the expected result; then the build should not continue with more rigorous procedures that may demand an extra investment of time and money.  This method is characterized as being narrow, deep, and normally unscripted. 

Exploratory Testing

This method encourages the QA team to “explore” the application and play around with it to identify and report any possible bug. Test cases are not required in advance. Actually, experimented teams use it to gain time before the Requirement Documents are not available yet. We are not talking about a lack of procedures; we are talking about the possibility of discovering, learning, and executing tests simultaneously. That’s why exploratory testing is widely used in agile environments. We highly recommend this method in your testing strategy because it uncovers issues that another functional testing wouldn’t be able to, it puts an emphasis on the UX and trains your team to become more intuitive and creative.

Other tests: 

Besides the three methods listed above, others may be included in the test plan according to the QA engineering criteria and, of course, the nature of the digital product. Here are some of them: 

  • Unit testing, the core of QA testing: This procedure aims to isolate functional pieces of code and test them separately. This way, the QA engineer makes sure every single part of a system works properly. This first scan provides predictability for the QA team to test at a higher level. 
  • Integration testing: When programmers write code, it interacts within a more complex system and those interactions must be tested with the same strictness. So, after unit testing has been successfully conducted, isolated functional pieces of codes are tested together. 
  • Stress-testing: Facing the unexpected is a part of life and it’s necessary to embrace it. Even though a digital product was thought to meet some criteria, it’s very likely that during its life cycle, exceptional situations will be presented. The QA engineer pushes the software to its maximum potential to discover bugs or points of improvement that are hard to identify in regular scenarios.  
  • End-to-end testing: 

In this type of test, the entire application or digital product is tested from a user perspective. It aims to analyze all possible ways a user can interact with the digital product and then, identify and register every point of improvement. The user is the center of this testing method, so the data reported can be particularly useful for the UX strategy.

Our commitment to QA testing

Because we have helped a lot of customers build and boost their digital products around Salesforce, we understand the importance of QA testing. Having a strong QA process not only means meeting our customers’ expectations but also implies money and time savings for our company. Tok, our Chatter messaging app, and other Lightning web components remind us every day that QA testing is a procedure that never ends, but is worth all the time and energy we put into it.

Tok 30 day trial - QA testing

QA process: a win-win model

We are sure you are familiar with Quality Assurance (QA) and that it’s a critical step in your product development flow. In software development, the purpose of QA is to test to ensure the software will function properly. However, defining the best QA process is sometimes an endless challenge. Let’s say you are an experienced QA manager. You may have reached a point in your career where you think your workflow fits your needs perfectly, so you keep testing and building great products across amazing projects. One day, you are assigned a challenging customer that teaches you that your process was not as perfect as you thought. 

Does this sound familiar? No worries, we have gone through that as well (and continue to improve our standard best practices all the time, particularly when it comes to Salesforce testing). Our testing process is continuously improved and our team has the capability to adapt its strategy according to each project’s complexity. Let us walk you through our primary testing steps so you understand why our testers and test automation engineers are ready to face customer changes while testing.

QA process - Oktana

Customer requirements

Set expectations. We highly recommend considering the first meeting with your customers as the best opportunity to set expectations, build trust and introduce team leaders. The goal is to ensure the team has a good idea of the goal of the project and that both sides agree on basic expectations. Specific to testing, these expectations should include a test plan, UAT process, and definition of done. The QA leaders must be part of this conversation so they can identify weaknesses or inconsistencies in advance. This will help shape SMART requirements that will save a lot of time and resources.

Test plan, the center of our QA process

It’s time to be strategic. After the customers have conveyed their needs, we design a strategy that documents the testing methods that we will need to ensure the functionality of the app. Management skills are needed since the test plan must work with the product development workflow, deadlines, budget, talent, and other resources given for the project. Our QA team takes advantage of this stage to collaborate closely with the development team. If you need more information about test plans, click here.

Test execution

This is where we really have fun. Finally, the QA team runs the testing methods according to the strategy agreed on in the previous steps. We can group the methods into two groups. Exploratory testing allows our testers to have a quick overview of the software functionality to identify bugs and errors without a large time investment and is quite common among Agile models. Once the app, functionality, or module is stable, we frequently craft and run automated tests with software such as Selenium, Chai, Cucumber, Jenkins, SauceLabs, and more. At Oktana, we generally use TestLodge as the platform for executing tests. 

Reporting

As testing is executed, any findings or bugs must be logged so the development team can fix the issue. Across this reporting procedure, systematization and real-time management are crucial. Unless the customer has specified other platforms, we use Assembla to keep track of every report. We also use Tok, our messaging app, to communicate efficiently between teams.   

Verification

What’s the key to ensuring we have full functionality? Test it all over again. Yes, after the development team returns a reported bug as fixed, it is important to test again to verify that changes work and haven’t impacted pieces of software that previously worked. In another blog, we will list three of our most useful testing methods you may want to review to ensure high-quality delivery across your products.

Final learning based on our QA process

It’s worth mentioning that none of our best practices are static, they are dynamic and continuously improved. We still strive to make our processes consistent and systematic, but we embrace innovation and the capability to react quickly when presented with new testing scenarios. This is the main learning we can share from years of experience working with customers across different industries – we understand change is part of the process and we are ready for it.

Tok 30 day trial - QA process
QA process