In my previous article, I introduce some useful tools for manual testers. Today, I will share the best practices in our work that make it more efficient. These practices help to maintain high-quality testing while ensuring consistency and repeatability of the process. In addition, they affect the optimization of work and save our time.

Role of manual tester in ensuring quality of Salesforce solutions

Manual testers often serve as a bridge between complex system functionalities and the end user. Their work, although not always visible, is priceless when it comes to refining details and providing high-quality solutions. Manual testers not only find errors but also look at the system through the eyes of the user to understand how they interact with the system. Understanding client’s business processes is also essential. This allows for the appropriate adjustment of test scenarios to the actual needs of end users.

Testers should be familiar with the technology they work with; the more they know about Salesforce, the easier it is to understand its mechanisms. This translates into faster task analysis and finding appropriate paths to test a given functionality. The entire IT industry is changing very rapidly, and Salesforce is no exception. To keep up, testers need to stay up to date, acquire new knowledge, and develop their skills.

Understanding testing basics

Before I move on to best practices, I want to mention that every tester should be familiar with the International Software Testing Qualifications Board (ISTQB) Foundation Level (FL) Syllabus. It covers the basics and standards of the tester’s work, providing a fundamental understanding of testing processes, techniques, and tools. It also contains a lot of information about testing levels and techniques, as well as methodologies used in projects (such as Agile and Waterfall). For Salesforce testers, familiarity with the ISTQB FL Syllabus is essential for tailoring tests to Salesforce-specific requirements and functionalities.

Now, let’s take a look at best practices for successful manual testing in Salesforce projects.

Description for typical users operating in given environment

The first best practice is to have a description of typical users operating within a given environment or application. The description can include a license type, roles, profiles assigned to users, permission sets, and participation in public groups and queues. This enables a better understanding of how specific people operate in Salesforce. In addition, it helps to identify the most important user paths. Therefore, it is possible to check whether the corresponding functionality is available for a specific user or group of users.

For example, imagine that there is a salesperson using a Salesforce application or an agent working on a ticket application. After refreshing the environment, there’s no need to panic if test users disappear because, with a description, we can quickly recreate our diverse users.

The benefits of having descriptions are as follows:

  • ability to quickly create a user
  • saving time
  • confidence that we will test the user with the correct configuration
  • test repeatability
Test scripts: key to effective and accurate software testing

Another good practice is using ready-made test scripts written in the Apex language. They provide consistent and reproducible results. They can be used repeatedly in different scenarios and test environments, thus ensuring the stability and reliability of the testing process.

Test scripts are particularly useful in the following situations:

  • we need to generate large amounts of test data with specific values,
  • we need records linked to other records,
  • we test specific functionalities representative of real application usage.

Also, test scripts help save time. We also minimize the occurrence of human error during manual data creation. When we perform the same actions repeatedly, such as creating multiple records from the UI, we may miss or misspell something. The form may let us proceed, but as a result, we’ll end up with incorrect data, and some system elements may not function properly. In such a situation, it will be difficult to find the cause – whether it’s an invalid functionality code or simply a data error. However, thanks to ready-made test scripts, we can avoid such situations.

Benefits of having ready-made test scripts

Ready-made test scripts for data creation can greatly increase the efficiency, accuracy, and effectiveness of manual testing, allowing the tester to focus on the more demanding aspects of software testing.

Advanced API testing using Postman library

A popular tool for API testing is Postman. It allows sending requests to the server and receiving responses, facilitating API testing, development, and documentation. You can read more about it in my previous article here.

The Postman library is a collection of predefined scripts, queries, environments, and other elements useful in API testing. Having a well-organized library is a good practice. It facilitates daily work and test management and ensures high quality and efficiency of the testing process.

We can group the tests and perform them in a specific order. It is helpful to group them by object or application. We can share such collections with other team members so that they can alter the query data at any time to update the JSON structure. Ensuring everyone has access to the most recent version of the collection facilitates a form of test automation, resulting in repeatability. This approach is beneficial when multiple testers are assessing the same workflow. Thanks to having a shared space, each tester on the team downloads the latest request. This significantly facilitates work and shortens the time of arrangements.

The advantages of having a library in Postman
  • Resume work: the library enables testers to save and use previously created queries and scripts; this makes the work much easier because we don’t have to create everything from scratch every time;
  • Consistency and standardization: the library ensures consistency in testing; all testers on the team can use the same queries and scripts, ensuring uniformity and standardization of the testing process;
  • Quick prototyping and testing: with ready-made JSON scripts in the library and queries, we can quickly test different scenarios and API responses, which is especially useful in Agile and DevOps environments;
  • Easy management of test environments: the library can contain environment configurations that enable easy switching between different environments (for example, development, test, or production);
  • Documentation and collaboration: sharing the library with other team members facilitates collaboration and ensures that everyone has access to current queries and scripts;
  • Regression testing: the library can be used to quickly run regression tests, checking that new changes have not introduced errors in existing functionality.

As we can see, having a well-organized library in Postman is definitely a good practice for testers. It makes our daily work easier, supports long-term test management, and ensures a high-quality testing process.

Creating fresh test data is key to effective and reliable software testing

Creating fresh test data refers to the process of generating new data for use in software testing. Important aspects of this method include the following:

  • Uniqueness: fresh test data is created in a way that it is not a copy of data already used in previous tests; this helps to avoid potential errors from reusing old data that may be outdated or unsuitable for new test scenarios;
  • Representativeness: new data should reflect a variety of use scenarios, including typical use cases as well as extreme situations; this allows for a better assessment of how the software will behave in real-world conditions;
  • Currency: fresh test data aligns with current system requirements and specifications; as software evolves and requirements change, old data may become inadequate.

Creating fresh test data is crucial to ensuring the quality and reliability of software, as it allows the product to be tested accurately and comprehensively under diverse and realistic conditions. It gives us the assurance that they are strictly defined and controlled. This saves time and minimizes the risk of using old records for testing.

Optimizing testing process in Salesforce through knowledge of SOQL

Knowledge of SOQL (Salesforce Object Query Language), the query language used in the Salesforce platform, is valuable to software testers. We can independently construct SOQL queries to retrieve specific sets of data needed for a particular testing process. This makes the tests more precise and efficient. We can verify whether the data generated as a result of tests aligns with the acceptance criteria of a given task.

Increased knowledge of SOQL allows for building more complex queries using techniques such as nesting or referencing existing object relationships. The screenshot shows an example of a situation when we want to retrieve a Contact and display the Record Type Account to which the Contact is linked. This makes it easier to analyze data dependencies.

Knowledge of SOQL significantly enhances the testers’ competence in the Salesforce environment, making them more independent and effective in various aspects of testing.

Optimizing testing process in Salesforce through knowledge of SOQL

Benefits of SOQL knowledge for accurate and efficient software testing
  • Understanding SOQL helps analyze and diagnose problems, especially those related to data and its relationships; testers can identify and resolve data issues faster.
  • Testers can use SOQL to analyze the performance of queries and data operations, which is essential in environments where big data can affect performance.
  • Knowledge of SOQL contributes to a better understanding of the structure and schema of data in Salesforce, which is essential for effective application testing.
  • It facilitates communication with developers and other technical team members, resulting in a better understanding of requirements and faster problem-solving.
Monitoring Salesforce release notes

Tracking Salesforce release notes lets us know about new features and repaired elements of the system. Thanks to this, we can potentially identify areas requiring retesting and verify whether individual functionalities are working correctly, especially if these are custom functionalities tailored to the customer’s needs but rely on standard Salesforce components available out of the box.

Significance of certification for tester: benefits and impact on professional development

Is it worth it to get certified? Yes! But why? What does it give us?

  1. Firstly, we increase our area of knowledge; if we want to pass a certification exam, we need to prepare well for it and to do so, we need to learn new things.
  2. Secondly, we increase our attractiveness in the labour market; from the employer’s perspective, a candidate who holds a certification ensures that they have knowledge about Salesforce, and there will be no need to onboard them into the system itself, but rather only into the project they will join.
  3. Thirdly, holding certifications increases client trust; a client with a certified person in the project team gains confidence that the system, created by qualified people, will meet their expectations and those of the organization.
Valuable certifications for testers

Generally, there is no such thing as certifications specifically designed for testers, but that doesn’t mean there are no certifications available for testers. I recommend Salesforce Associate certification to start with. It’s an excellent certification to gain experience. It includes the basics of how the Salesforce platform works and introduces us to the user interface and data management issues.

As a tester, I also obtained the Salesforce Administrator certification. By studying for this certification, we learn about editing the user interface, the types of objects and fields, and how to create them manually. We are given explanations about user permissions and demonstrated how to manage them, illustrating how these permissions impact user capabilities. It also introduces us to process automation. Finally, this certification shows us what the reports are and how they work. It also introduces us to Service Cloud, Sales Cloud, and the related out-of-the-box features.

As a complement, I would recommend the Platform App Builder certification, as it expands knowledge of automation and declarative ways of programming. Additionally, it shows how to customize and design applications.

  • Salesforce Associate

  • Salesforce Administrator

  • Platform App Builder

Where to study for certifications?

I recommend the Salesforce learning platform trailhead.salesforce.com. It features sets of trailheads, which are tasks that must be completed to pass each stage. They prepare us for a specific certification. Completing a Trailhead takes some time, but the knowledge gained is helpful because it’s better than plain theory.

We can also learn from the Focus on Force website. It contains ready-made study materials for certifications as well as sample test sets. The platform specializes in building a database of questions and developing materials for certifications.

Studying together is also a good practice. If we work for a company that is a Salesforce Partner, it’s worth seeking help from colleagues and studying together.

The certification process, which involves taking the exam, can be done in person at authorized Salesforce centres or online. We need to register for the exam and pay for it (by bank transfer or voucher). I recommend the in-person option, as it eliminates the additional stress factor of unforeseen technical difficulties.

General guidelines to consider in software testing process

At the end, I want to share with you some questions worth answering during the testing process:

  • Are we operating on a good application?
  • Are we logged in as the user we want to test as (login as option)?
  • Is there maintenance work in progress on the instance where our environment is? (check on trust.salesforce.com)
  • Is the logic contained on the front-end or the back-end (validation on the form vs. in the database)?
  • Do the test data need to have a specific created date (system permission “Set Audit Fields upon Record Creation” = “true”)?
  • Are the objects we are testing standard, custom, or external?
  • Do I have any IP-related restrictions, such as login IP range?

In summary, effective software testing requires not only thorough technical knowledge and skills but also continuous development and adaptation to changing technologies and methodologies. Each of the aspects mentioned in the article plays a key role in building a strong and versatile testing competency.

Remember that as a tester, you are not only a detective looking for bugs but also a craftsman who improves the software and thus affects its quality and reliability. By sticking to these principles and constantly improving your skills, you can make a

Author

  • Wojciech Janiak
  • Senior Software Tester / Team Leader
  • Senior Software Tester with five years of experience in software testing. He holds several Salesforce certifications and constantly gains new knowledge in the Salesforce area. He enjoys sharing it with others and introducing juniors to the amazing world of testing in Salesforce projects. Privately, he loves playing Xbox and Nintendo Switch and is interested in soccer.

Editorial study
Ernestyna Okrasa
Text translation