<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE article  PUBLIC "-//NLM//DTD Journal Publishing DTD v3.0 20080202//EN" "http://dtd.nlm.nih.gov/publishing/3.0/journalpublishing3.dtd"><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" dtd-version="3.0" xml:lang="en" article-type="research article"><front><journal-meta><journal-id journal-id-type="publisher-id">JSEA</journal-id><journal-title-group><journal-title>Journal of Software Engineering and Applications</journal-title></journal-title-group><issn pub-type="epub">1945-3116</issn><publisher><publisher-name>Scientific Research Publishing</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.4236/jsea.2020.136009</article-id><article-id pub-id-type="publisher-id">JSEA-101040</article-id><article-categories><subj-group subj-group-type="heading"><subject>Articles</subject></subj-group><subj-group subj-group-type="Discipline-v2"><subject>Computer Science&amp;Communications</subject></subj-group></article-categories><title-group><article-title>
 
 
  A Fault-Based Testing Approach in Safety Critical Medical Systems
 
</article-title></title-group><contrib-group><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Xaveria</surname><given-names>Youh Djam</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref><xref ref-type="corresp" rid="cor1"><sup>*</sup></xref></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Yisa</surname><given-names>Henry Kimbi</given-names></name><xref ref-type="aff" rid="aff2"><sup>2</sup></xref></contrib></contrib-group><aff id="aff2"><addr-line>Urgences, CHE, CNPS, Yaounde, Cameroon</addr-line></aff><aff id="aff1"><addr-line>Department of Computer Science, University of Yaounde I, Yaounde, Cameroon</addr-line></aff><pub-date pub-type="epub"><day>28</day><month>05</month><year>2020</year></pub-date><volume>13</volume><issue>06</issue><fpage>129</fpage><lpage>142</lpage><history><date date-type="received"><day>18,</day>	<month>April</month>	<year>2019</year></date><date date-type="rev-recd"><day>2,</day>	<month>June</month>	<year>2020</year>	</date><date date-type="accepted"><day>23,</day>	<month>June</month>	<year>2020</year></date></history><permissions><copyright-statement>&#169; Copyright  2014 by authors and Scientific Research Publishing Inc. </copyright-statement><copyright-year>2014</copyright-year><license><license-p>This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/</license-p></license></permissions><abstract><p>
 
 
  The advent of technology has opened unprecedented opportunities in health care delivery system as the demand for intelligent and knowledge-based systems has increased as modern medical practices become more knowledge-intensive. As a result of this, there is greater need to investigate the pervasiveness of software faults in Safety critical medical systems for proper diagnosis. The sheer volume of code in these systems creates significant concerns about the quality of the software. The rate of untimely deaths nowadays is alarming partly due to the medical device used to carry out the diagnosis process. A safety-critical medical (SCM) system is a complex system in which the malfunctioning of software could result in death, injury of the patient or damage to the environment. The malfunctioning of the software could be as a result of the inadequacy in software testing due to test suit problem or oracle problem. Testing a SCM system poses great challenges to software testers. One of these challenges is the need to generate a limited number of test cases of a given regression test suite in a manner that does not compromise its defect detection ability. This paper presents a novel five-stage fault-based testing procedure for SCM, a model-based approach to generate test cases for differential diagnosis of Tuberculosis. We used Prime Path Coverage and Edge-Pair Coverage as coverage criteria to ensure maximum coverage to identify feasible paths. We analyzed the proposed testing procedure with the help of three metrics consisting of Fault Detection Density, Fault Detection Effectiveness and Mutation Adequacy Score. We evaluated the effectiveness of our testing procedure by running the suggested test cases on a sample historical data of tuberculosis patients. The experimental results show that our developed testing procedure has some advantages such as creating mutant graphs and Fuzzy Cognitive Map Engine while resolving the problem of eliminating infeasible test cases for effective decision making.
 
</p></abstract><kwd-group><kwd>Mutation Testing</kwd><kwd> Software Development</kwd><kwd> Software Testing</kwd><kwd> Test Coverage</kwd><kwd> Mutation Adequacy Score</kwd></kwd-group></article-meta></front><body><sec id="s1"><title>1. Introduction</title><p>To investigate the pervasiveness of software faults in Safety critical medical system, a fault-based testing approach is desired. The emergence of technology has opened unprecedented opportunities in health care delivery system as the demand for intelligent and knowledge-based systems has increased as modern medical practices become more knowledge-intensive [<xref ref-type="bibr" rid="scirp.101040-ref1">1</xref>]. As a result of this, there is a greater need to investigate the pervasiveness of software faults in safety critical medical system for proper diagnosis. A safety-critical medical system is a complex system in which the malfunctioning of software could result in death, injury of the patient or damage to the environment. The rate of untimely deaths nowadays is alarming partly due to medical device used to carry out the diagnosis process. Not surprisingly, software quality is a serious and growing problem. To scope with the limitation of software testing, a five-stage fault-based testing approach has been proposed in this paper that does not only generates test cases but equally a Fuzzy Cognitive Map (FCM) Engine for the system under test. In view of this, mutation analysis is used as a technique to assess the quality of a test suite.</p><p>In recognition of the fact that exhaustive testing is impossible in any software development project, the need to have a methodical means to improve on the available diagnostic and treatment modalities for the system under test in order to reduce the rate of mortality, a diagnostic system is desired. This paper presents an innovative five-stage testing procedure for a fault-based approach in Safety Critical Medical System and the system under test is a diagnostic system for the management of Tuberculosis (TB).</p><p>Computer based techniques that employ fuzzy Cognitive maps have been extensively examined for improving diagnosis and treatment of diseases [<xref ref-type="bibr" rid="scirp.101040-ref1">1</xref>] [<xref ref-type="bibr" rid="scirp.101040-ref2">2</xref>] [<xref ref-type="bibr" rid="scirp.101040-ref3">3</xref>] [<xref ref-type="bibr" rid="scirp.101040-ref4">4</xref>] and until today remains an active research area because the merging of mutation analysis and FCM to address the oracle problem to determine successful test cases is still an unresolved issue.</p><p>The remainder of this paper is organized as follows. Section 2 provides a background on mutation analysis and fuzzy cognitive map. Section 3 provides an overview of our approach, and Sections 4 and 5 present the experimental setup and evaluation of the research. Finally, the paper concludes with a discussion of future work.</p></sec><sec id="s2"><title>2. Related Work</title><p>In this section, we present a categorized survey of the background concepts mutation analysis and Fuzzy Cognitive Maps FCM). These related works are classified according to the difference strategies for their test case generation.</p><sec id="s2_1"><title>2.1. Mutation Analysis</title><p>This paper proposes the use of mutation analysis to design effective test cases for safety critical medical systems for the management of TB. Mutation testing modifies a software artefact such as a program, requirements specification, or a configuration file, to create new versions called mutants [<xref ref-type="bibr" rid="scirp.101040-ref5">5</xref>]. The mutants are usually intended to be faulty versions and are created by applying rules for changing the syntax of the software artefact. These rules are called mutation operators [<xref ref-type="bibr" rid="scirp.101040-ref6">6</xref>]. The tester then creates tests that cause the original and each mutated version to exhibit different behaviours, called killing the mutant [<xref ref-type="bibr" rid="scirp.101040-ref9">9</xref>]. Several researches have been conducted on mutation testing to discover faults in some programming languages [<xref ref-type="bibr" rid="scirp.101040-ref7">7</xref>] [<xref ref-type="bibr" rid="scirp.101040-ref8">8</xref>]. To the best of our knowledge, this is the first attempt to define mutation operators for safety critical medical systems that attempt to merge the concepts of mutation analysis and fuzzy cognitive maps.</p></sec><sec id="s2_2"><title>2.2. Fuzzy Cognitive Maps</title><p>The concept of a fuzzy set was originally proposed by [<xref ref-type="bibr" rid="scirp.101040-ref10">10</xref>] as an extension of the notion of a set by allowing partial membership, and the usage of fuzzy sets theory in medical applications can be traced back early to work by [<xref ref-type="bibr" rid="scirp.101040-ref3">3</xref>] [<xref ref-type="bibr" rid="scirp.101040-ref4">4</xref>] who advocated and put the foundations of the theory to model relationships of symptoms and diseases by using the compositional rule of inference (CRI) as an inference mechanism. Fuzzy Cognitive Maps FCMs, which were introduced by (Kosko, 1986 [<xref ref-type="bibr" rid="scirp.101040-ref10">10</xref>]) as an extension of Cognitive Maps, are powerful tools for modeling dynamic systems. A Fuzzy Cognitive Map (FCM), as a branch of fuzzy logic [<xref ref-type="bibr" rid="scirp.101040-ref11">11</xref>] [<xref ref-type="bibr" rid="scirp.101040-ref12">12</xref>], is a causal knowledge-driven methodology for modeling complex decision systems originally developed by [<xref ref-type="bibr" rid="scirp.101040-ref13">13</xref>].</p><p>Few frameworks based on fuzzy cognitive maps for medical reasoning have been proposed [<xref ref-type="bibr" rid="scirp.101040-ref1">1</xref>] [<xref ref-type="bibr" rid="scirp.101040-ref2">2</xref>] [<xref ref-type="bibr" rid="scirp.101040-ref3">3</xref>] [<xref ref-type="bibr" rid="scirp.101040-ref4">4</xref>]. Due to the fact that, the complexities of medical practice make traditional approaches of analysis inappropriate, this multi-expert approach presented by these researchers would have efficiently aid in medical decision but for the fact that they did not base on a model-based approach to generate test suits while maintaining accuracy and interpretability. “Improving accuracy while maintaining interpretability” is the main focus of a Clinician. We proposed that the performance of a FCM Engine can extensively be increased by merging the FCM model with mutation analysis for effective decision making.</p><p>In a recent research, a fuzzy expert system for tuberculosis diagnosis was developed [<xref ref-type="bibr" rid="scirp.101040-ref1">1</xref>]. The main focus of the work was accuracy and no doubt, the researchers would have achieved “high peak” accuracy. But a physician involved in sensitive decision making about a patient’s treatment, demands more than that. Factors including interpretability, system’s ability to adopt human reasoning to deal with uncertainties, identification of successful test cases, mutation operators for safety critical medical systems and performance consistency were ignored. While [<xref ref-type="bibr" rid="scirp.101040-ref14">14</xref>] attempted and suggested a novel fuzzy system for TB management, no test cases were generated and no metric was used to evaluate the system. According to our approach, the performance of the FCM model was improved by developing new mutation operators to remove redundant test cases and the identification of suitable test cases for effective decision making.</p><p>The review of related literature shows that there is a painful lack of diagnostic predictive models for TB management and no explicit attempts are made to merge mutation analysis and Fuzzy Cognitive Maps to address the test suite problem for proper medical decision.</p></sec></sec><sec id="s3"><title>3. Materials and Methods</title><p>For data gathering, historical patients’ medical records on tuberculosis were sourced from Urgences-CHE CNPS Yaounde, Cameroon from 2018 to 2019. Personal interview was conducted with domain experts (Physicians) in order to get the necessary data for this study. We sampled a total of 200 patients’ medical records. The method of sampling strategy adopted was systematic sampling method.</p><p>We proposed a five stage fault-based testing procedure and analyzed the proposed testing procedure with the help of three metrics consisting of Fault Detection Density, Fault Detection Effectiveness and Mutation Adequacy Score.</p>Fault-Based Testing Procedure<p>Our proposed testing procedure consists of the following five stages:</p><p>1) Dividing the application based on its structure;</p><p>2) Creating a Mutant graph from application structure;</p><p>3) Selection of Coverage Criteria and production of test paths;</p><p>4) Create a Fuzzy Cognitive Map Engine;</p><p>5) Deriving and running test cases.</p><p>These stages are explained in the section below.</p>Dividing the Application Based on Its Structure<p>In the first step, for all the chosen Domain Experts, all input factors and the output factors are identified. (Identification of input and output parameters), determination of the numbers of linguistic variables associated with each input/output parameter and select an appropriate membership function. Determine all the fuzzy sets for the system and generate linguistics variables (<xref ref-type="table" rid="table1">Table 1</xref>, <xref ref-type="table" rid="table2">Table 2</xref>).</p><p>1) Procedure to Generate Linguistic Weights for FCM Engine</p><p>The procedure to generate linguistic weights that describe the cause-effect relationships among the concepts of the FCM engine was developed and is presented below:</p><p>Step 1: For all N Domain Experts, set credibility weight e<sub>ij</sub> in the interval [−1, 1].</p><p>Step 2: For all ordered pair of concepts (C<sub>i</sub> and C<sub>j</sub>), N Domain Experts describe the interrelationship between concepts using IT-THEN rules derived from data pair: IF a {Mild, Moderate, Severe or Very Severe} change occurs in the value of C<sub>i</sub> THEN a {Mild, Moderate, Severe or Very Severe} change in the value of concept C<sub>j</sub> is caused. Thus the influence of concept C<sub>i</sub> on concept C<sub>j</sub> is {Negatively Strong, Negatively Moderate, Negatively Weak, Negatively Very Weak, No Relationship, Positively Weak, Positively Moderate, Positively Strong or Positively Very Strong}.</p><p>Step 3: If causality occurs, it occurs to Maximum Positive or Maximum Negative.</p><p>Step 4: Using Fuzzy Ranking Values, the Fuzzy Maximum is applied and a linguistic weight is assigned between concept C<sub>i</sub> and concept C<sub>j</sub>.</p><p>Step 5: IF for two or more interconnections between concept C<sub>i</sub> and concept C<sub>j</sub>, more than 3N/4 Experts assigned difference linguistic weights, THEN request the Experts to GOTO step 2 and reassign weights for that particular interconnections.</p><p>Step 6: Aggregate all the linguistics weights proposed for every interconnection using the SUM method and construct the Weight Matrix.</p><table-wrap id="table1" ><label><xref ref-type="table" rid="table1">Table 1</xref></label><caption><title> Fuzzy sets for tuberculosis</title></caption><table><tbody><thead><tr><th align="center" valign="middle" >Concepts</th><th align="center" valign="middle" >Linguistic Variables</th></tr></thead><tr><td align="center" valign="middle" >C1: Cough &gt; 3 weeks</td><td align="center" valign="middle" >None (No Cough), Moderate (Productive Cough), Severe (Non-Productive Cough)</td></tr><tr><td align="center" valign="middle" >C2: Headache</td><td align="center" valign="middle" >None, Mild, Moderate, Severe and Very Severe</td></tr><tr><td align="center" valign="middle" >C3: Constipation</td><td align="center" valign="middle" >Absence, Presence (Absence = 0, Presence = 1)</td></tr><tr><td align="center" valign="middle" >C4: Fever</td><td align="center" valign="middle" >None, Mild (Low grade fever: 36˚ - 38.4˚), Severe (high grade fever &gt; 38.5˚)</td></tr><tr><td align="center" valign="middle" >C5: Weight Loss</td><td align="center" valign="middle" >None, Mild, Moderate, Severe and Very Severe</td></tr><tr><td align="center" valign="middle" >C6: Drenching night sweats</td><td align="center" valign="middle" >Absence, Presence (Absence = 0, Presence = 1)</td></tr><tr><td align="center" valign="middle" >C7: Loss of appetite</td><td align="center" valign="middle" >Absence, Presence (Absence = 0, Presence = 1)</td></tr><tr><td align="center" valign="middle" >C8: Anaemia</td><td align="center" valign="middle" >None, Mild, Moderate, Severe and Very Severe</td></tr><tr><td align="center" valign="middle" >C9: Sputum AFB</td><td align="center" valign="middle" >None, (+)Mild, (++)Moderate, (+++)Severe, (++++)Very Severe,</td></tr><tr><td align="center" valign="middle" >C10: Mantoux Test</td><td align="center" valign="middle" >None (0 - 5 mm), Mild (5 - 6 mm), Moderate (7 - 8 mm), Severe (9 - 10 mm) and Very Severe (≥10 mm)</td></tr><tr><td align="center" valign="middle" >C11: Haemoptysis (Coughing of blood)</td><td align="center" valign="middle" >Absence, Presence (Absence = 0, Presence = 1)</td></tr><tr><td align="center" valign="middle" >C12: Tachypnea (Fast Breathing)</td><td align="center" valign="middle" >Mild, Moderate, Severe and Very Severe</td></tr><tr><td align="center" valign="middle" >DS: Severity of the Disease</td><td align="center" valign="middle" >None, Mild, Moderate, Severe and Very Severe</td></tr></tbody></table></table-wrap><table-wrap id="table2" ><label><xref ref-type="table" rid="table2">Table 2</xref></label><caption><title> Fuzzy Ranking of Input/output variables (concepts) for Tuberculosis</title></caption><table><tbody><thead><tr><th align="center" valign="middle" >Linguistic Variables</th><th align="center" valign="middle" >Fuzzy Values</th><th align="center" valign="middle" >Classification</th></tr></thead><tr><td align="center" valign="middle" >Neutral</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td></tr><tr><td align="center" valign="middle" >Mild</td><td align="center" valign="middle" >0 &lt; x &lt; 0.3</td><td align="center" valign="middle" >1</td></tr><tr><td align="center" valign="middle" >Moderate</td><td align="center" valign="middle" >0.3 ≤ x &lt; 0.6</td><td align="center" valign="middle" >2</td></tr><tr><td align="center" valign="middle" >Severe</td><td align="center" valign="middle" >0.6 ≤ x &lt; 0.8</td><td align="center" valign="middle" >3</td></tr><tr><td align="center" valign="middle" >Very Severe</td><td align="center" valign="middle" >0.8 ≤ x ≤ 1.0</td><td align="center" valign="middle" >4</td></tr></tbody></table></table-wrap>Creating a Mutant Graph from Application Structure<p>Given: The original program P, consisting of input concepts/vectors C<sub>i</sub> and a set of Test Cases T. A test suit T = { t 1 , t 2 , ⋯ , t n } , with each test case represented as Coverage Vector V t i = { v t 1 , v t 2 , ⋯ , v t n } , such that v<sub>ij</sub> is one (1) if t<sub>i</sub> identifies fault and Zero (0) if t<sub>i</sub> does not identifies fault.</p><p>Different mutants can be created to discover the behavior of each concept in every state of the program. In this approach model-based mutation testing is used to generate mutant graphs by applying mutation operators. In our testing procedure, we need mutation operators to add vectors, update vector, normalized vector to the FCM Engine. Since the operators, such as delete node, add node, delete edge, or add edge, cannot create a new vector/concept/node, add node, update node and normalized node are considered as the mutation operators. As a result, new edges can be produced by changing the input and output parameters of each state vector (C1-C12 represent input parameters) while eliminating the infeasible test cases and detecting all redundant test cases. According to the number of created edges, the output of this third stage can be one or more mutant graphs (<xref ref-type="fig" rid="fig1">Figure 1</xref>) to be used for the FCM Engine.</p>Selection of Coverage Criteria and Production of Test Paths<p>The goal of the third stage is to produce test paths from the Mutants graphs. At this stage a proper coverage criterion (<xref ref-type="table" rid="table3">Table 3</xref>) and an automatic tool are required. As shown in <xref ref-type="fig" rid="fig2">Figure 2</xref> (Ammann and Offutt, 2017 [<xref ref-type="bibr" rid="scirp.101040-ref9">9</xref>]), Complete Path Coverage (CPC) can produce all test paths from a graph. Nevertheless, the number of paths obtained can be infinite through a loop due to the path explosion problem. Thus, to satisfy all coverage criteria without compromising quality of a safety critical medical system for the management of TB, Prime Path Coverage (PPC) and Edge-Pair Coverage (EPC) which are the two subsets of CPC are selected for the coverage criteria. Web Graph Coverage was used as the tool to produce test paths in our novel approach.</p>Create a Fuzzy Cognitive Map Engine<p>At this stage, Fuzzy Cognitive Map Engine can now be developed. At this stage, FCM graphs are created based on the opinion of Domain Experts. The Decision Concept (DS) represents the severity of tuberculosis infection and takes four fuzzy values (Mild, Moderate, Severe, Very Severe) as shown in <xref ref-type="table" rid="table1">Table 1</xref>. The 13 identified concepts with 13 fuzzy sets keep relation with each other, in order to characterize the process of diagnosing tuberculosis. After the determination of fuzzy sets, each expert was asked to define the degree of influence among the concepts and equally describe their interrelationships using IF-THEN rules derived from fuzzy decision tree and the inferred fuzzy weights were combined and normalized using sigmoid function and the result was a crisp value representing the weight of each interconnection. In this way, the weights of interconnections between the concepts were determined.</p><p>According to domain experts’ judgments, input variables selected for this research were described with five linguistic variables (Neutral, Mild, Moderate, Severe and Very Severe) in the fuzzy interval of [0, 1] as shown in <xref ref-type="table" rid="table2">Table 2</xref>.</p><p>From the FCM Engine (<xref ref-type="fig" rid="fig3">Figure 3</xref>), an Overall Weight Diagnostics Matrix (M<sub>OverallWeight</sub>) with 13 rows and 13 columns was computed as shown in <xref ref-type="table" rid="table4">Table 4</xref> below.</p>Deriving and Running Test Suite<p>All the test paths that are extracted from mutant graphs and FCM Engine are inputs to the final stage to generate test cases. The test cases are executed, the actual results are compared with the expected results and test oracle is established as shown in <xref ref-type="table" rid="table5">Table 5</xref>. The output of the final stage is represented as a list of faults arising from running test cases.</p><table-wrap id="table3" ><label><xref ref-type="table" rid="table3">Table 3</xref></label><caption><title> Types of graph coverage criteria (adapted from Ammann and Offutt, 2017 [<xref ref-type="bibr" rid="scirp.101040-ref9">9</xref>])</title></caption><table><tbody><thead><tr><th align="center" valign="middle" >Name</th><th align="center" valign="middle" >Description</th><th align="center" valign="middle" >Terms</th></tr></thead><tr><td align="center" valign="middle" >Node Coverage (NC)</td><td align="center" valign="middle" >Test set T Satisfies node coverage on graph G if and only if for every syntactically reachable node n in N, there is some path p in path (T) such that p visits n. Test Requirement (TR) contains each node in G</td><td align="center" valign="middle" >Test Requirements (TR): Describe properties of test paths</td></tr><tr><td align="center" valign="middle" >Edge Coverage (EC)</td><td align="center" valign="middle" >TR contains each reachable path of length up to 1, inclusive, in G</td><td align="center" valign="middle" >Test Criterion</td></tr><tr><td align="center" valign="middle" >Edge Pair Coverage (EPC)</td><td align="center" valign="middle" >TR contains each reachable path of length up to 2, inclusive, in G</td><td align="center" valign="middle" >The rules that define test requirements</td></tr><tr><td align="center" valign="middle" >Complete Path Coverage (CPC)</td><td align="center" valign="middle" >TR contains all paths in G</td><td align="center" valign="middle" >Satisfaction</td></tr><tr><td align="center" valign="middle" >Specific Path Coverage (SPC)</td><td align="center" valign="middle" >TR contains a set of S of test paths, where S is supplied as a parameter</td><td align="center" valign="middle" >Given a set TR of test requirements for a criterion C, a set tests T satisfies C on graph if and only if for every test requirement in TRN there is a test path in path (T) that meets the test requirement TR</td></tr><tr><td align="center" valign="middle" >Prime Path Coverage (CPC)</td><td align="center" valign="middle" >Simple Path: A path from node n<sub>i</sub> to n<sub>j</sub> is simple if no node appears more than once, except possibly the first and last nodes are the same. Prime Path: A simple path that does not appear as a proper sub path of any other simple path. TR contains each prime path in G</td><td align="center" valign="middle" >Test Criterion</td></tr></tbody></table></table-wrap><table-wrap id="table4" ><label><xref ref-type="table" rid="table4">Table 4</xref></label><caption><title> Overall weight diagnostics matrix for tuberculosis</title></caption><table><tbody><thead><tr><th align="center" valign="middle" >Concepts</th><th align="center" valign="middle" >C1</th><th align="center" valign="middle" >C2</th><th align="center" valign="middle" >C3</th><th align="center" valign="middle" >C4</th><th align="center" valign="middle" >C5</th><th align="center" valign="middle" >C6</th><th align="center" valign="middle" >C7</th><th align="center" valign="middle" >C8</th><th align="center" valign="middle" >C9</th><th align="center" valign="middle" >C10</th><th align="center" valign="middle" >C11</th><th align="center" valign="middle" >C12</th><th align="center" valign="middle" >DS</th></tr></thead><tr><td align="center" valign="middle" >C1</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >1.0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >1.0</td><td align="center" valign="middle" >0</td></tr><tr><td align="center" valign="middle" >C2</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td></tr><tr><td align="center" valign="middle" >C3</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td></tr><tr><td align="center" valign="middle" >C4</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0.8</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td></tr><tr><td align="center" valign="middle" >C5</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td></tr><tr><td align="center" valign="middle" >C6</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >1.0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td></tr><tr><td align="center" valign="middle" >C7</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0.8</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td></tr><tr><td align="center" valign="middle" >C8</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td></tr><tr><td align="center" valign="middle" >C9</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td></tr><tr><td align="center" valign="middle" >C10</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td></tr><tr><td align="center" valign="middle" >C11</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >1.0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >1.0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" ></td><td align="center" valign="middle" >0</td></tr><tr><td align="center" valign="middle" >C12</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td></tr><tr><td align="center" valign="middle" >DS</td><td align="center" valign="middle" >0.9526</td><td align="center" valign="middle" >0.9526</td><td align="center" valign="middle" >0.7685</td><td align="center" valign="middle" >0.9168</td><td align="center" valign="middle" >0.8176</td><td align="center" valign="middle" >0.8909</td><td align="center" valign="middle" >0.9526</td><td align="center" valign="middle" >0.9168</td><td align="center" valign="middle" >0.9526</td><td align="center" valign="middle" >0.9526</td><td align="center" valign="middle" >0.9526</td><td align="center" valign="middle" >0.9168</td><td align="center" valign="middle" >0</td></tr></tbody></table></table-wrap><table-wrap id="table5" ><label><xref ref-type="table" rid="table5">Table 5</xref></label><caption><title> An example of test suit document with test paths inclusive</title></caption><table><tbody><thead><tr><th align="center" valign="middle" >Test Paths</th><th align="center" valign="middle" >Test Case</th><th align="center" valign="middle" >Expected Results</th><th align="center" valign="middle" >Actual Results</th><th align="center" valign="middle" >Test Oracle</th></tr></thead><tr><td align="center" valign="middle" >[1, 3, 2, 6, 7, 9, 8, 12, 4, 11, 5, 10,] {input parameters path}</td><td align="center" valign="middle" >Diagnosis</td><td align="center" valign="middle" >Severe Diagnosis</td><td align="center" valign="middle" >Should report severe diagnosis</td><td align="center" valign="middle" >Pass</td></tr><tr><td align="center" valign="middle" >[ds, 10] {Disease severity Path }</td><td align="center" valign="middle" >Treatment Outcome</td><td align="center" valign="middle" >Disease Progressive State</td><td align="center" valign="middle" >Should report disease progressive state</td><td align="center" valign="middle" >Fail</td></tr></tbody></table></table-wrap></sec><sec id="s4"><title>4. Results</title><sec id="s4_1"><title>4.1. Dividing the Application Based on Its Structure</title><p>For this stage of our testing procedure for the safety critical medical system, by analyzing the concepts (input variables) the main diagnostic structures in the system are presented in <xref ref-type="table" rid="table1">Table 1</xref>.</p></sec><sec id="s4_2"><title>4.2. Creating a Mutant Graph from Application Structure</title><p>Considering the add node, update node and normalized node as the mutation operators for the safety critical medical system, 76 mutants were created (for both diagnosis and treatment) and 14 mutants were killed as shown in <xref ref-type="table" rid="table6">Table 6</xref> and <xref ref-type="fig" rid="fig1">Figure 1</xref> shows a sample of the mutant graphs. The mutants were killed by EPC and PPC test sets. Equivalent mutants were identified by hand analysis. <xref ref-type="table" rid="table7">Table 7</xref> shows the results for each mutation operator.</p></sec><sec id="s4_3"><title>4.3. Selection of Coverage Criteria and Production of Test Paths</title><p>A sample path can be seen in <xref ref-type="table" rid="table5">Table 5</xref> with the corresponding test case. We used Prime Path Coverage and Edge-Pair Coverage as coverage criteria to ensure maximum coverage to identify feasible paths.</p><table-wrap id="table6" ><label><xref ref-type="table" rid="table6">Table 6</xref></label><caption><title> Number of created mutants</title></caption><table><tbody><thead><tr><th align="center" valign="middle" >Mutant Class</th><th align="center" valign="middle" >Number of Created Mutants</th><th align="center" valign="middle" >Mutant Killed</th><th align="center" valign="middle" >Equivalent Mutants</th></tr></thead><tr><td align="center" valign="middle" >Diagnosis</td><td align="center" valign="middle" >41</td><td align="center" valign="middle" >13</td><td align="center" valign="middle" >12</td></tr><tr><td align="center" valign="middle" >Treatment</td><td align="center" valign="middle" >35</td><td align="center" valign="middle" >02</td><td align="center" valign="middle" >04</td></tr><tr><td align="center" valign="middle" >Total</td><td align="center" valign="middle" >76</td><td align="center" valign="middle" >14</td><td align="center" valign="middle" >16</td></tr></tbody></table></table-wrap><table-wrap id="table7" ><label><xref ref-type="table" rid="table7">Table 7</xref></label><caption><title> Empirical results for each mutation operator</title></caption><table><tbody><thead><tr><th align="center" valign="middle" >Mutation Operator</th><th align="center" valign="middle" >Mutants Killed</th><th align="center" valign="middle" >Equivalent Mutants</th><th align="center" valign="middle" >Live Mutants</th><th align="center" valign="middle" >Total Mutants</th><th align="center" valign="middle" >Mutation Scores</th></tr></thead><tr><td align="center" valign="middle" >Add Node</td><td align="center" valign="middle" >3</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >1</td><td align="center" valign="middle" >4</td><td align="center" valign="middle" >0.750</td></tr><tr><td align="center" valign="middle" >Update Node</td><td align="center" valign="middle" >10</td><td align="center" valign="middle" >4</td><td align="center" valign="middle" >21</td><td align="center" valign="middle" >35</td><td align="center" valign="middle" >0.675</td></tr><tr><td align="center" valign="middle" >Normalized Node</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >2</td><td align="center" valign="middle" >2</td><td align="center" valign="middle" >0.693</td></tr><tr><td align="center" valign="middle" >Subtotal</td><td align="center" valign="middle" >13</td><td align="center" valign="middle" >04</td><td align="center" valign="middle" >24</td><td align="center" valign="middle" >41</td><td align="center" valign="middle" >0.351</td></tr></tbody></table></table-wrap></sec><sec id="s4_4"><title>4.4. Create a Fuzzy Cognitive Map Engine</title><p>By simulating a safety critical medical diagnostic system, our FCM Engine performance is illustrated by means of simulating two scenarios of tuberculosis infection as a means to diagnose and manage a TB patient. In each of these scenarios, we have an initial state vector V<sub>Initial</sub> representing the presented events at a given time of the process and a final state vector V<sub>Final</sub> representing the last state vector produced in convergence region—the final value of the decision concept.</p><p>First Scenario: For this scenario, an immunocompromised patient health status (with respect to tuberculosis) with patient identification number as 015 was considered, with Non-productive Cough &gt; 3 weeks (C1 = 1.0), Severe Headache (C2 = 0.7), Severe Fever (C4 = 0.7), Moderate Weight Loss (C5 = 0.5), Presence of Drenching Night Sweats = (C6 = 1.0), Severe Sputum AFB (C9 = 1.0), Severe Mautoux Test (C10 = 0.7), Presence of Haemoptysis (C11 = 1.0), Tachynea (C12 = 0.7).</p><p>Thus the initial state vector (Input Vector) V<sub>Initial</sub> is:</p><p>After the fuzzy inference process (simulation process), at the eighth iteration step, the FCM concept values did not changed, which indicates that the equilibrium region is reached at a fixed point with the final state vector (Decision Output Vector) V<sub>Final</sub> as:</p><p>The calculated value of the decision concept (DS = 0.82) indicates that patient number 015 was diagnosed for very severe TB with 82% possibility with gives the result specified by the domain experts.</p><p>Second Scenario: For this scenario, a young patient health status (with respect to tuberculosis) with patient identification number as 025 was considered, with productive Cough &gt; 3 weeks (C1 = 0.7), Severe Constipation (C3 = 1.0), Presence of Drenching Night Sweats = (C6 = 1.0), Loss of Appetite (C7 = 1.0), Moderate Sputum AFB (C9 = 0.7), Moderate Mautoux Test (C10 = 0.7), Presence of Haemoptysis (C11 = 1.0).</p><p>Thus the initial state vector (Input Vector) V<sub>Initial</sub> is:</p><p>After the fuzzy inference process (simulation process), at the eleventh iteration step, the FCM concept values did not changed, which indicates that the equilibrium region is reached at a fixed point with the final state vector (Decision Output Vector) V<sub>Final</sub> as:</p><p>The calculated value of the decision concept (DS = 0.56) indicates that patient number 025 was diagnosed for moderate TB with 56% possibility with gives the result specified by the domain experts.</p><p>Similarly, we computed the results for the other patients and got results that were in the range of predefined limits by the domain experts.</p></sec><sec id="s4_5"><title>4.5. Deriving and Running Test Cases</title><p>By applying our developed testing procedure on safety critical medical system, 1778 test cases were produced. An example of a test case document is shown in <xref ref-type="table" rid="table5">Table 5</xref>.</p></sec></sec><sec id="s5"><title>5. Evaluation</title><p>In this study, we used the following three performance metrics consisting of Fault Detection Density, Fault Detection Effectiveness and Mutation Adequacy Score to show the performance ability of the developed fault-based model. We evaluated the effectiveness of our testing procedure by running the suggested test cases on a sample historical data of tuberculosis patients sourced from Urgences-CHE CNPS Yaounde, Cameroon from 2018 to 2019.</p><p>&#178; Fault Detection Density (FDD): FDD is the ratio of the total number of faults detected by each test case ( ≠ t f i ) and the total number of test cases ( ≠ T ) in the total number of unique faults ( ≠ F unique ) and is calculated as:</p><p>FDD =   ≠ ( t f 1 + t f 2 + ⋯ + t f n ) ( ≠ T   &#215;   ≠ F unique ) (5.1)</p><p>&#178; Fault Detection Effectiveness (FDE): FDE is the ratio of the total number of faults ( ≠ F Total ) and the total number of unique faults( ≠ F Unique ). FDE is calculated as below:</p><p>FDE = ( ≠ F Total ) ( ≠ F Unique ) (5.2)</p><p>&#178; Mutation Adequacy Score (MAS): MAS, used for evaluating mutated graphs, is the ratio of the total number of mutants killed ( ≠ Mutant killed ) and the total number of mutants ( Mutant Total ) with no equivalent mutants ( ≠ Mutant Equivalent ). M Mutation Adequacy Score is calculated as below:</p><p>Mutation   Score ≠ Mutant killed ( ≠ Mutant Total   −   ≠ Mutant Equivalent ) (5.3)</p><p>The mutation score for the case study is represented in <xref ref-type="table" rid="table7">Table 7</xref> and <xref ref-type="table" rid="table8">Table 8</xref> presents the values of FDD, FDE and the unique faults for the stages of the developed testing procedures.</p></sec><sec id="s6"><title>6. Conclusions and Future Work</title><p>This paper presents an innovative approach to fault-based testing in Safety Critical Medical Systems. We introduced a new five-stage testing procedure that has some advantages: 1) creating testing cases while resolving the problem of removing infeasible test cases, 2) creating FCM Engine for our case study because without sound diagnosis and accurate treatment, medical practice is as good as guess work.</p><p>While the research is promising, several research questions remain unanswered. An important evaluation, currently being planned, is to do a full fault study. We will generate tests to kill all non-equivalent mutants, then evaluate those tests to determine how many faults the tests detect, and compare with tests generated for other criteria (possibly statement or branch coverage).</p></sec><sec id="s7"><title>7. Threads to Validity</title><p>Our empirical evaluation has some threats to validity. Firstly, equivalent mutants were identified manually by one person. Secondly, our implementation of the three proposed mutation operators may include faults. To ensure they work as expected, we tested our suggested testing procedure constantly, and checked mutants generated by hand very carefully. Thirdly, like most software engineering experiments, it is not possible to guarantee the representativeness of selected subjects,</p><table-wrap id="table8" ><label><xref ref-type="table" rid="table8">Table 8</xref></label><caption><title> Evaluating developed testing procedure</title></caption><table><tbody><thead><tr><th align="center" valign="middle" >Testing Procedure</th><th align="center" valign="middle" >FDD (%)</th><th align="center" valign="middle" >FDE (%)</th><th align="center" valign="middle" >Unique Fault No.</th></tr></thead><tr><td align="center" valign="middle" >Mutated Graphs</td><td align="center" valign="middle" >3</td><td align="center" valign="middle" >4</td><td align="center" valign="middle" >3</td></tr><tr><td align="center" valign="middle" >EPC Criterion</td><td align="center" valign="middle" >2</td><td align="center" valign="middle" >3</td><td align="center" valign="middle" >10</td></tr><tr><td align="center" valign="middle" >PPC Criterion</td><td align="center" valign="middle" >5</td><td align="center" valign="middle" >5</td><td align="center" valign="middle" >2</td></tr><tr><td align="center" valign="middle" >FCM Engine</td><td align="center" valign="middle" >0.6</td><td align="center" valign="middle" >1</td><td align="center" valign="middle" >2</td></tr></tbody></table></table-wrap><p>we made an honest attempt and choose real life case study from the medical domain. The fact that the case study was used by previous researchers provides consistency across multiple studies.</p></sec><sec id="s8"><title>Acknowledgements</title><p>The authors are very grateful for every constructive comment from Anne Marie Sah for her guidance and editing, Ntam Victor and Richard Favour for their advice on the fault detection and coverage criteria used in this research. Furthermore, the authors would like to thank the reviewers for suggesting qualitative changes in the paper.</p></sec><sec id="s9"><title>Conflicts of Interest</title><p>The authors declare no conflicts of interest regarding the publication of this paper.</p></sec><sec id="s10"><title>Cite this paper</title><p>Djam, X.Y. and Kimbi, Y.H. (2020) A Fault-Based Testing Approach in Safety Critical Medical Systems. Journal of Software Engineering and Applications, 13, 129-142. https://doi.org/10.4236/jsea.2020.136009</p></sec></body><back><ref-list><title>References</title><ref id="scirp.101040-ref1"><label>1</label><mixed-citation publication-type="other" xlink:type="simple">Djam, X.Y. and Kimbi, Y.H. (2011) A Decision Support System for Tuberculosis Diagnosis. Pacific Journal of Science and Technology, 12, 410-425.</mixed-citation></ref><ref id="scirp.101040-ref2"><label>2</label><mixed-citation publication-type="other" xlink:type="simple">Greenhalgh, J., Flynn. R., Long, A.F. and Tyson, S. (2008) Tacit and Encoded Knowledge in the Use of Standardized Outcome Measures in Multidisciplinary Team Decision Making: A Case Study of In-Patient Neurorehabilitation. Social Science &amp; Medicine, 67, 183-194. https://doi.org/10.1016/j.socscimed.2008.03.006</mixed-citation></ref><ref id="scirp.101040-ref3"><label>3</label><mixed-citation publication-type="other" xlink:type="simple">Papageorgiou, E.I., Stylios, C.D. and Groumpos, P. (2003) An Integrated Two-Level Hierarchical Decision Making System Based on Fuzzy Cognitive Maps (Fcms). IEEE Transactions on Biomedical Engineering, 50, 1326-1339. https://doi.org/10.1109/TBME.2003.819845</mixed-citation></ref><ref id="scirp.101040-ref4"><label>4</label><mixed-citation publication-type="other" xlink:type="simple">Papageorgiou, E.I., Spyridonos, P., Ravazoula, P., Groumpos, P.P. and Nikiforidis, G. (2006) A Soft Computing Method for Tumour Grading Cognitive Maps. Journal of Artificial Intelligence in Medicine, 36, 58-70.</mixed-citation></ref><ref id="scirp.101040-ref5"><label>5</label><mixed-citation publication-type="other" xlink:type="simple">DeMillo, R.A., Lipton, R.J. and Sayward, F.G. (1978) Hints on Test Data Selection: Help for the Practicing Programmer. Computer, 11, 34-41. https://doi.org/10.1109/C-M.1978.218136</mixed-citation></ref><ref id="scirp.101040-ref6"><label>6</label><mixed-citation publication-type="other" xlink:type="simple">Deng, L., Mirzaei, N., Ammann, P. and Offutt, J. (2015) Towards Mutation Analysis of Android Apps. 2015 IEEE Eighth International Conference on Software Testing, Verification and Validation Workshops (ICSTW), Graz, 13-17 April 2015, 1-10.https://doi.org/10.1109/ICSTW.2015.7107450</mixed-citation></ref><ref id="scirp.101040-ref7"><label>7</label><mixed-citation publication-type="other" xlink:type="simple">Jhamb, M., Singhal, A. and Bansal, A. (2013) A Survey on Different Approaches for Efficient Mutation Testing. International Journal of Scientific and Research Publications, 3, 1-5.</mixed-citation></ref><ref id="scirp.101040-ref8"><label>8</label><mixed-citation publication-type="other" xlink:type="simple">Offutt, A.J. (1994) A Practical System for Mutation Testing: Help for the Common Programmer. Proceedings of the International Test Conference, Washington, DC, 2-6 October 1994, 824-830. https://doi.org/10.1109/TEST.1994.528535</mixed-citation></ref><ref id="scirp.101040-ref9"><label>9</label><mixed-citation publication-type="other" xlink:type="simple">Ammann, P. and Offutt, J. (2017) Introduction to Software Testing. Cambridge University Press, Cambridge. https://doi.org/10.1017/9781316771273</mixed-citation></ref><ref id="scirp.101040-ref10"><label>10</label><mixed-citation publication-type="other" xlink:type="simple">Kosko, B. (1986) Fuzzy Cognitive Maps. International Journal of Man-Machine Studies, 24, 65-75. https://doi.org/10.1016/S0020-7373(86)80040-2</mixed-citation></ref><ref id="scirp.101040-ref11"><label>11</label><mixed-citation publication-type="other" xlink:type="simple">Zadeh, L.A. (1965) Fuzzy Sets. Information and Control, 8, 338-353.https://doi.org/10.1016/S0019-9958(65)90241-X</mixed-citation></ref><ref id="scirp.101040-ref12"><label>12</label><mixed-citation publication-type="book" xlink:type="simple">Zadeh, L.A. (1965) Fuzzy Sets and Systems. In: Fox, J., Ed., Proceedings Symposium on System Theory, Polytechnic Institute of Brooklyn, New York, 29-37.</mixed-citation></ref><ref id="scirp.101040-ref13"><label>13</label><mixed-citation publication-type="book" xlink:type="simple">Zadeh, L.A. (1969) Biological Applications of the Theory of Fuzzy Set and Systems, In: Proctor, L.D., Ed., The Proceedings of an International Symposium on Biocybernetics of the Central Nervous System, Little, Brown and Company, Boston, 199-206.</mixed-citation></ref><ref id="scirp.101040-ref14"><label>14</label><mixed-citation publication-type="other" xlink:type="simple">Mohammad, S.H., Fatema, T.J., Faisal, A. and Karl, A. (2017) A Belief Rule Based Expert System to Assess Tuberculosis under Uncertainty. Journal of Medical Systems, 41, Article number: 43. https://doi.org/10.1007/s10916-017-0685-8</mixed-citation></ref></ref-list></back></article>