# A Methodical Approach to Functional Exploratory Testing for Embedded Systems
## 4 Framework  
To place ET within the organization process and regulations, maximizing its benefits, a structured approach is suggested, as shown in Figure 2. This ensures the sustainability, maintainability, and portability of the implemented solution, facilitating the decision-making process of when and where to introduce it. The proposed framework based on the authors' experience and the case study presented above consists of the following steps:  
1. Determine the ET ratio/scale. 2. Define the desired coverage. 3. Collect inputs. 4. Identify test oracles. 5. Develop test charters. 1. Describe the objectives. 2. Provide overall summary. 3. Determine test targets. 4. Set the timebox. 5. State the charter vs. opportunity ratio. 6. Execute scenarios (optionally, record the execution). 7. Collect and analyze the results. First, it must be decided what portion of testing within the project should be exploratory. For similar or repetitive projects, the scripted approach is more suitable as it enables large-scale regression testing automation, while some unique endeavors could be largely tested in only an exploratory fashion. It must also be remembered that scripted testing is susceptible to the pesticide paradox, which makes portions of ET beneficial and rational in almost every context. By having the scale defined, the coverage should be determined based on criteria, such as: familiarity with the device or feature under test, the possibility of introducing automation, existing documentation, or the test engineers' availability. While being less formalized, ET does not exist in a void. Therefore, it is required to collect inputs in the form of existing documentation, requirements, case scenarios, or experience. This step is extremely important to create valuable test charters that clearly outline their objectives and consciously identify potential risks. To be able to unambiguously determine test results, test oracles must be identified. In the case of ET this can be more difficult than for scripted testing, where pass or fail criteria are usually much better defined. After completing the preparation steps, a test charter can be created. This will serve the test engineer with the information required to complete the ET session, while remaining vastly briefer compared with a test script. The most important aspect is to provide the set of objectives, which are a crucial element of a scenario. An overall summary or description can elaborate on session goals to provide more context, intention, and provide any crucial information. As with scripted testing, it is advisable to determine test targets that can support the charter. Lastly, it is considered good practice to set a timebox and clearly state the ratio between focusing on objectives versus the so-called \"free roam\". This ensures focus and discipline, while at the same time enabling the opportunity to pursue any behavior or phenomena that test engineers may consider anomalous. No test steps are provided,creating a major difference from traditional scripted testing, while still allowing the test engineer to follow their own path. The execution of an exploratory testing session can be supported by a tool that enables recording and can be used to capture the test steps. This enables ET to be later transformed into scripted testing, while simultaneously having a significant impact on identified defect reproduction and enabling the same steps to be followed during regression testing. The final step should be collecting, analyzing, and reporting the results based on the previously determined test oracles or other defined verification or validation criteria. The main aspect of the successful implementation of ET lies within the preparation, which drives the effort in the correct direction.