Latest news, useful features and tips for your Salesforce

Top 5 Answers to the Most Topical QA Questions

November 18, 2016

Staying in touch with our clients means everything to us. We are always open to discussion and are ready to answer any questions you may have about the development process. In today’s article the Head of Quality Assurance Department – Eugene Kunda – will answer the most frequently asked questions about testing as a part of development process.

Being a Salesforce  wizard with 8+ years experience in QA Eugene has already unveiled some secrets of Automation testing and Quality Control for Salesforce Custom apps. In case you missed the opportunity to look them through, I would highly recommend to do it.

But no more lyrics. Let’s open our chart!

#1 Why should I pay for testing if it’s the developer’s job to deliver code without bugs?

E: In order to answer this question, you have to delve into the development process and really look at the duties of developers and QA engineers.

Developers write software code designed to comply with architecture or platform rules. The end goal for a developer is to implement a technical solution.

While developers create code, QA engineers make sure that code meets the customer’s expectations as well as the overall business requirements. Developers care about the quality of code. QA engineers care about the quality of the application.   

Sometimes, however, different code modules just don’t work very well together. To catch these occurrences, QA engineers need to test application run in an environment that most closely resembles actual end-user working conditions. They collect reliable data about the application behavior under different circumstances and then submit this information to the team and the customer. Such information helps make right decisions.

The testing process is considered to be complete only when all quality criteria is achieved. The end goal for a QA engineer is to ensure that the developed app is reliable and successful according to predetermined business processes.

#2  What if I don’t see any need for QA on my project?

E: Quality Assurance is an important aspect of any project. It is very rare to have a development process without a team of QA engineers. When it comes to projects that don’t involve UI (such as those related to calculations on the backend, big data manipulation, etc.), the role of QA engineers can be performed by the developers themselves to ensure good coding. These projects developers can create a series of fast-running tests that will determine the quality of the code. In larger companies, specially trained people such as software engineers in test can perform these tests.

However, if the application has a particularly complex UI logic (i.e., users with different roles are performing several actions, users are regularly interacting with each other, or users are entering a large amount of different data input combinations in the software application), QA is critical for satisfying the end-user needs. Therefore, it is imperative that the QA team understands the developed application functionality and utilizes special testing and process control techniques.

It is just a basic best practice to have a carefully selected and skilled QA team that can cooperate closely with developers and decision makers. This ensures that the client gets perfect code and an application that meets the defined requirements.

#3 Can’t my BA or PM test everything on their own?

E: If you want a BA or PM to perform the role of Quality Assurance, there are several things to consider:

  • Are they qualified to do QA?
  • What is their background and experience?
  • Do they have the time to do this in addition to their current workload? 

How much additional costs is involved?A good PM has a lot to deal with: project plan drafting, time estimation, conflict resolution, presentation of ready solutions, demos, prototypes, sending bunches of report emails, etc. Not to mention the fact that the project manager must have an overall understanding of all risks. Not all PMs can find time for a deep dive into each subtask, which is a requirement in a QA role.

Regarding background issues, it is a must for a BA or PM to understand not only the technologies used, but also bug-tracking systems, test case management systems, the different types of testing and when they are applicable. Without this knowledge, an engineer trying to combine these roles will be challenged with the extra workload.

When combining PM and QA roles, if more attention is given to PM duties, there is a risk of sacrificing quality for the sake of a speedy project completion. On the contrary, if emphasis is placed on QA, there can be a significant delay in the release date due to the focus on achieving perfect quality. 

#4 What if I already have a QA team, but they don’t have experience with Salesforce?

QA
E: Testing Salesforce applications is not that different from testing other applications. You go through pretty much the same stages…from planning and information gathering to final testing and application support. The differences lie in the technical background. It is absolutely necessary to have knowledge in Salesforce administration and have a clear understanding of Salesforce CRM, Service Cloud and Sales Cloud.

Having a QA engineer without a Salesforce background would delay your project, as the person would need to get up-to-speed on the latest updates and nuances of Salesforce. It’s better to save the time, money and overall headache and go with a team that is highly experienced.

You need an experienced QA engineer that can successfully handle a lot of tasks, like data preparation, page layout configuration, workflow adjustments, SOQL database queries, configuring user logs for debugging, testing Salesforce integration with third party systems via API or Web-Services, and more.

A highly qualified Salesforce QA engineer can effectively interact with any development team and carry out knowledgeable testing while quickly addressing any emerging issues.  This will allow you to find critical defects earlier and reduce TTM (time-to-market).

# 5 Why should I pay for QA involvement at the very beginning of product development?

E: It is a common best practice in the industry to include a QA engineer at the outset of any development project. It may not be full-time, but the QA engineer should definitely be involved in all key meetings during the planning stages.

From the beginning, the QA engineer will be aware of all the system requirements, which will lead to accurate and precise testing throughout the life of the project, rather than scrambling to do testing and bug fixes at the last minute. This will increase the chances of your project being finished on time and on a budget.

If the engineer is not involved from the very beginning, you’ll end up wasting valuable time in the final testing phase on onboarding and getting up-to-speed on the details of the project. Also, you will lose the benefit of ongoing documentation and test scripts which improve the overall quality. A good idea for successful project implementation is to have a QA team ready with rough test cases before the release of first internal test build.

The probability of additional costs and errors increases significantly when the project is moved from one team to another, or when teams from different organizations work on the same project.

So, the general thing you need to remember is that project development and testing go hand-in-hand. After all, QA is really all about bug prevention…not just bug detection.