Test fundamentals: Planning and Control
Test Plan components
The test plan is designed to answer the questions of WHAT, HOW, WHO, WHERE, and WHEN to conduct the testing process. This crucial document is developed as a result of the test planning process. It defines, among others, features to be tested, test environments, test cases, and testing tools.
According to the ISTQB glossary, a “test plan” is a document describing software testing scope and activities. It is the basis for formally testing any software/product in the organization.
-
test strategy,
- goals,
- timeframe or schedule,
- analysis and estimation,
- planned outcomes (deliverables),
- and resources needed to perform testing.
Test plans describe not only the scope but also the risks. It indicates which areas should be tested, but also limitations - excluding the range that is not necessary to be involved. It is a desired practice to know what not to test as such knowledge, indeed, saves time and money.
Planning of ERP software tests, like Microsoft Dynamics 365, is no different in terms of its compositions. What makes ERP testing exceptional is the priority and importance of testing for business. Each company has the option to customize the ERP software and adjust the platform to its needs. It requires extensive integration testing to make sure that the ERP system is set up in line. Also when the software is being updated all customized parts should be verified to be ready for new features’ implementation.
Test plans vary across teams, industries, and projects. There is no single set of parameters that makes a test plan the only one “correct”. However, certain elements can make test plans more useful and valuable. For ERP companies, for instance, one typical part is security testing.
To conclude, a proper test plan document indicates what to test, areas to skip, testing pass and fail criteria, deliverables, testing environment needs, responsibilities, requirements of the staff, the schedule, risks, and the scale for feedback. Whoa! Quite a lot, right? Such a comprehensive project demands small steps. This is how we slightly move to the pre-phase of planning.
Identify the business needs and scope of the testing
What can restrain the scope of testing? Budgets and resources, as well as the complexity of the ERP process and design. If the company works with sensitive data, contractual and regulatory requirements must be involved. The organization’s test policy and practices, internal or external norms impose special testing standards.
In ERPs, company departments work as an interlinking system. Integrations between sectors protect the smooth running of the business and at the same time create a complicated structure of dependencies. In fact, a business working this way has more modules than the company is even able to test! The ISTQB glossary constitutes a great beginning for understanding all components of the test plan. The more essential part is, however, understanding the company’s environment.
In an enterprise with a complex nature of business processes and information systems, sometimes it is difficult to follow what is actually going on within every single piece of the company. However, the lack of knowledge can lead to a waste of money and an ineffective selection of business processes and its testing needs.
The APQC model allows to conduct a complex business analysis of the company, as well as to organize the process outlook and, consequently, the methodical approach to the complex project, which is the implementation of an ERP class system and its testing criteria. This is why APQC is frequently used by ERP providers. We do not need to look far - it is the standard for Microsoft Dynamics. Due to that, after the software implementation, APQC matrix can be used as a checklist on what and how deep the company should test its areas.
APQC may serve as an elimination methodology. It is easier to pick from a big jar of processes (these ones that are performed by the company) than trying to write them down from scratch. In a simple world, it is a deductive way to evade the risk of wasting time.
The scope of testing based on business analysis should be set by business representatives as well. Who can tell more about processes conducted in the company, if not people that perform them on a daily basis? Surely it is not easy to specify all the details developed every day in the company. Even the best employee can forget about some parts or consider them as not important to mention. The APQC matrix can help to avoid this danger.
Tricky EPR testing: the complexity of the system
What complicates testing in ERPs is complex dependency. Systems are usually very cross-functional. A simple exemplary process of online orders includes also sending the delivery and collecting the payment which engages at least a few departments during different phases.
While preparing the tests, the manager should be able to predict the whole end-to end process to choose the best-fitted testing technique and prepare different test scenarios.
Test Types
Manual tests are performed personally by testers literally clicking through the application elements or using appropriate tools to interact with software and APIs. These types of tests are usually expensive because they require the physical presence of testers who set up the environment and conduct tests. Manually performed parts may also be prone to human error due to the fact that testers may, for example, skip some steps in the test script.
Automated tests, on the other hand, are performed by software that implements the assumptions of a previously prepared test script. Tests of this type can differ significantly in their complexity, including both very simple tests consisting of verifying the operation of a single method in a given class, as well as tests checking whether the execution of a sequence of complex actions in the user interface will lead to the same results each time. Automatic software testing is much more efficient and more reliable compared to manual testing. However, the quality of automated testing directly depends on the quality of the developed test scripts.
ERP testing activities may be performed, either manually or by the automation tools using different testing techniques.
The functional test analyzes the actions of the particular system in terms of available functionalities. The tester plays the role of a potential application user- examining the availability and ergonomics of functionality and the actual operation of the product in relation to its specifications. These types of tests detect errors and malfunctions but do not provide information about the causes of errors. Why? Because they do not see the particular process as a part of the greater system.
The integration test may simply check that the application is able to query the database, while the purpose of the functional test is to get a specific value from the database according to the product requirements.
Risk Assessment
- provide the assessment of what could go wrong,
- determine what risk and of what importance the company may be dealing with
- introduce actions to counteract the risk.
Monitoring and Control
Test monitoring includes gathering feedback on test progress, communicating test results, tracking test metrics, and planning future action based on the calculated indicators. All rests on the shoulders of one man? Not exactly.
Larger ventures frequently require participating business specialists or consultants - people with in-depth knowledge of a business area that enhances a team’s understanding of a given process. Their engagement is crucial, as they play a significant role in each automated testing team - defining business needs, test requirements, and software functionality. Officially they are called Subject Matter Experts, standing on the business side of the testing team. Talking about which…
The importance of a Test Team
It does not mean that with the automation there is no human component needed. Nevertheless, if the test is performed manually or with the automation tool, a dedicated testing team helps with the performance and delivery of all the benefits. Business representatives that record test-related activity in the system, developers that review it and adjust missing parts, and a Test Manager that controls and verifies if everything goes correctly with the testing plan.
Technical frontmen - testers, developers, technical-skilled people responsible for ensuring the code and - in case of automating the process - requirements to test automation solutions that match technical needs. This part of the team should also involve the leader that drives the project - with technical knowledge and understanding of business processes, as the above mentioned Test Manager.
Business insight - when the tech experts do not have the inside knowledge, or if the scope for testing is complicated, the team needs someone to set business priority and ensure that the business value is delivered. In specific situations, testing teams call for more specialized roles such as an expert on a specific technology or Subject Matter Experts - already described. The test team does not require to be expanded, especially when the company uses automated testing tools. For instance, Executive Automats can cover a huge dose of work performed manually by testers - even up to 70-80% of test cases.
Testing system and data security
If the ERP user cares about the security of data and wants to be sure that no failure of updates occurs, then applying more advanced testing techniques is desired. To accelerate the results, and reduce the long-term costs, business owners decide to use automation testing tools. They let functional power users record business tasks by the recorder and convert the recordings into a suite of automated tests, without having to write source code. It may significantly reduce the time and cost of user acceptance testing (UAT).
Developing software or adding new functions to the existing environment requires running the entire testing process in order to verify how the system is handling specific conditions, like the weight of a large database. In the perfect situation, the entire process is performed under conditions as close as possible to those that will occur when the system is operating in a real production environment. Therefore, it is best for applications if their extensions and updates are recreated on the basis of databases that faithfully reflect the facts. That could be manually impossible, yet available when it is automated.
Setting up a testing system for ERPs raises compliance and sensitive data questions. If the organization implemented data security compliance strategies e.g. to protect the individuals as well as the organization from violating any laws like HIPPA or GDPR, should also include the security aspect in testing. Most companies pay a lot of attention to securing production environments against data leakage, but they treat test environments less restrictively. And this is a large area for abuse.
Test planning recurrency - monthly modifications to the standard
Even a small component of a customized system that is not ready for an update may cause a domino-effect. Thus, a small update change in the sales module can require significant modification in the inventory and supply parts. To predict that, the test plan must be comprehensive.
Reviewing the test basis: Analysis and Design
- Test Plan
- Analysis & Design
- Implementation & Execution
- Evaluation & Report
- And finally, test Closing Activities
- Evaluation of test fundamentals (i.e. requirements, risk reports, interface specifications, software integrity, construction, and design part)
- Estimation of the testability of an application and its parts
- Recognition and prioritization of the test conditions based on the test elements, specifications, software structure, and behavior
- Design of test cases and assignation of properties
- Identification of the test data needed to handle the test
- Configuration of the test conditions and recognition of the necessary infrastructure
HOW to do that by determining if the test of a given element should be carried out manually or automatically.
WHEN When is the best time to test by indicating how often the test should be run (365 days a year, only once, or in a special period of time).
Analysis & Design Basics
- test conditions (specifications)
- test cases
- test procedures (properties).
Company’s “Golden template” and rollouts
WHAT to test? - Analysis essentials
- Test basis meticulousness
- The complexity of the software
- Product and testing project risks
- The connection between the test database (what should be tested and how it should be tested?)
- Testing tools used to manage the project
- The advancement of the testing processes in the company and the skills of the testing manager
- Accessibility of the business part (for instance is there a dedicated Subject Matter Expert for consultation purposes?)
- Whether the application part is an element of the software “golden template”? If so, then it must be tested, because of the future rollouts and inevitable scaling effect.
- Is it an essential and critical area from the business perspective? The team needs to prioritize and estimate the necessity of testing. For example, if the element is essential but not critical, the test cases can be prepared more selectively.
- Was the part modified from the standard during the implementation phase? Each modification needs more testing.
The company decides which part of the software should include more testing cases, what should be prioritized, and which functions should and should not be tested. After that assessment, the cross-functional test scenarios are built.
HOW to test smart? - Design in practice
This phase may begin as soon as the test conditions have been identified and sufficient information is available to allow the creation of test cases.
The test case is a set of input values, execution preconditions, expected results, and post-execution conditions created for a specific purpose or test condition. A test case can include practicing a specific program path or verifying compliance with a specific requirement.
While it can be combined with test Analysis, Design is still a separate activity. Some tasks that normally occur during test implementation, or are included in the “golden template” designing are likely to be incorporated here.
Planning could be done in an Excel sheet or on a piece of paper. Design and Analyze parts are more demanding and require a tool that will simplify the test managing. One of them is DevOps which can transfer testing plans into the tree structure of test suites and test cases.
Dedicated testing tools. Are they necessary?
For instance, the planning phase assumes to perform functional testing in a production part of the ERP. During the design phase, a hierarchical tree of activities is created. The area has its functions that should be covered by the application (e.g. creating orders in the production department). Based on defined functions test cases are created. The coverage of test conditions by prioritizing test cases can be optimized by creating properties attached to each test case. Properties determine whether the test case belongs to the “golden plate” or if it has high or low priority.
DevOps covers all of the activities in the „Define” tab where all test cases, properties, steps to be performed, and definitions of positive and negative results are determined. Based on them, appropriate tasks to be made by testers are automatically created in the following, „Execute” tab. All chosen tests can be performed in predefined configuration. Repeating them in a different configuration is just a matter of changing the parameters, without the need of creating an additional Design. The Design prepared once allows testers to perform the testing activities with modified conditions. What is more, execution history shows all tests made within the particular test case in various configurations.
As you have probably noticed, we dedicated more space for the test Planning chapter. This is not a coincidence. When the test Planning phase is given much thought and done properly, the Analysis and Design and the following take much less time. Using the proper managing tool, the number of activities that need to be done within this step of the test process shrinks significantly!
Testing shifts into high gear: Implementation & Execution phase
- An automated testing component, that will handle the repetitive and time-consuming test cases (such as free of charge, but limited RSAT, or more advanced - Executive Automats).
- A reporting element (DevOps has narrow reporting availability, that can be expanded with an external tool like Executive Automats or others).
Implementation
- Manual and automated test cases are checked and scheduled and the test environment is verified.
- Test data is provided.
- All risks and priorities are located, set, and verified.
- Test tools are prepared and checked.
- Input criteria are established.
Execution
- if all tests are defined and designed
- if the tools for test management and test automation are prepared
- if all documentation, including standards for test recording and reporting, is evaluated
- To automate only manually unprofitable test cases.
- To make automated scripts reusable, especially in end-to-end tests. The practicality of automated tests means combining scripts that make them functional for each other (the script for input data is used for closing scripts).
- To avoid test case duplication. Creating one group of scripts that are identical in multiple locations (like allowing for the use of different currencies) prevents wasting money on repeating similar case scenarios.