This report ensures to find the metamorphic relation. Metamorphic testing (MT) is a technique of property-based software testing. This method of testing is highly effective to address the issues in oracle and test case generation issues. It is also noted that, determining the desired results from the chosen test cases is highly complicated and hard. It can either be stated as, determining whether the actual outputs agree with the expected outcomes is difficult. The problems of oracle denotes the circumstances where it is to a great degree troublesome, or incomprehensible, to confirm the test consequence of a given experiment (that is, an information chose to test the program). Ordinarily, after the execution of an test case t, an efficient component called a test oracle (or just an oracle) is required to check the execution result. In the event that, the outcome does not concur with the normal result, we say that t comes up short and results as a disappointment and contains issues in generating the test cases. Else, we say that t succeeds and its result is fruitful, or non-disappointment causing, test case. In some genuine circumstances, an oracle may not exist, or it might exist but the requirements are limited which make it infeasible to utilize.
This report contains six distinct metamorphic relations, for each of the examples provided in the lecture notes 3, form the slide number 37, 38, 39, 40 and 41 will be discussed and solution will be presented for Metamorphic Testing. Thus, the report aims to find the metamorphic relation.
The objective of this report is to provide definition for every single metamorphic relations along with example.
Initially, during 1998 the metamorphic testing was introduced in a technical report, but the very initial major survey in the MT field was carried out during 2016. The Metamorphic testing (MT) denotes a method to produce follow-up test cases in the light of present test cases which have not revealed any disappointment. The Metamorphic testing must o be connected related to other test case determination techniques which actually creates the underlying arrangement of test cases. For example, consider a program p implementing function f on the domain denoted as D. Assume S as the test case selection strategy which the analyzer has adopted like the data flow testing or branch coverage. As indicated by S, a test set T = {t1, t2, …, tn} ⊂ D, where n ≥ 1, can be produced. Running the program on T yields the yields p(t1), p(t2), …, p(tn). At this point, when there is oracle, these test outcomes can be confirmed against f(t1), f(t2), …, f(tn). The metamorphic testing is valuable in light of the fact that by far most of test cases are effective, despite the fact that they have not uncovered any disappointment, these test cases do convey helpful data disregarded in customary testing. The metamorphic testing creates a follow-up of test cases by making reference to metamorphic relations (MRs).
Since the metamorphic testing evaluates the relations among a few executions as opposed to the accuracy of individual yields, the metamorphic testing don’t require oracle, as it could be automated completely. Such a methodology is additionally connected to fault-based testing without oracles. It can examine where a trial MT system is developed (Zhou et al., 2004). The metamorphic relations are not limited just to the programs which have numerical inputs or equality relations.
The problems of oracle refers the circumstances where it is to a great degree troublesome, or incomprehensible, to confirm the test consequence of a given experiment. Once the execution of a test case t is completed, an efficient component called a test oracle is needed to check the results of execution (Chen and Kuo, 2018). Therefore, the metamorphic testing aims to alleviate the issues related to oracle. It is basically a property-based testing method, which provides a new point of view for designing the test cases. Additionally, the metamorphic testing checks for the metamorphic relation (Yueh Chen, 2018).
The disadvantages of metamorphic testing are listed below:
A program is referred as the testable program in case it is possible to verify the output of any input.
To compute 41 ** (1/7)
=> 0.836
If Answer is 1.7
=> 41 ** 24
=> 1.7
In this section the following system of linear equations are solved:
3x + 2y – z = 4,
x – 2y – 2z = -9 and
2x + y + z = 7, where the solutions x=1, y=2 and z=3.
Solution:
Apply the value of x, y and z, in the provided equation.
3+4-3 = 4
4= 4
1 -4 -6= -9
2+2+3= 7
7=7
Therefore, the given solution is correct.
Here, the values of x such that x**67 + 3*(x**46) – x**37 +4.5 =0, where the solutions for x includes either of the following: 2.17 and 6.5.
Solution:
n = 2.17
n ** 67 + 8* (n**46) – n **37 + 45 = 0
If n = 2.17
2.17 ** 67 + 8* (2.17**46) – 2.17 **37 + 45 = 0
=3.48
If n = 6.5
6.5** 67 + 8* (6.5**46) – 6.5 **37 + 45 = 0
=2.9
Therefore, the given solution is incorrect.
A program is referred as the non-testable program in case it is not possible to verify the output of any input.
In terms of oracle, there will be challenging problems. For example, in machine learning the Applications, simulation, scientific computing, optimization, and so are at times non-testable programs. The reason for this is that, the expected outputs are difficult to be identified or the outputs actually doesn’t exist at all. Therefore, the computer scientists have tried their best to find various methods which can address the problems related to oracle, and this is available during the software verification process (Liu, 2009).
The sin function used are,
-sin (00) = 0
-sin (300) = 0.5
Where, whether the program returns sin (29.80) = 0.4987 or not is verified in this example.
Solution:
-sin (x) = sin (x+360)
Compute 29.80 + 3600 =389.80
sin (29.80) = sin (389.80)
29.80 + 3600 = 398.80
0.4987+0 = 0.4987
Solution:
The sin function used are,
-sin (00) = 0
-sin (300) = 0.5
Where, whether the program returns sin (29.80) = 0.4987 or not is verified in this example.
Solution:
Therefore, sin (29.80) = 0.4969 is correct.
Test Oracle is a mechanism or a procedure against which the computed outputs can be verified.
Here, by comparing the Example 2 with the Example 3, the outcomes of Example 2 can be verified, which will represent the metamorphic relations.
Here, it is identified the number of times the string is searched, where the string (S1) appears in another string (S2).
S1 =abaccabacddaabcabdcdaabacccdbacaddc
S2= abac
abaccabacddaabcabdcdabacccdbabaddc
Solution:
The correct out should be (2, 6, 21), because there are two occurrences. The first occurrence starts at the position 6 of S2 and the second occurrence starts at the position 21 of S2.
This section provides details on whether is it feasible to identify or generate the metamorphic relations (MRs). The answer to this includes that, among various approaches the machine learning is identified.
The metamorphic testing refers to a method to automate the testing process for the programs without test oracles.
Conclusion
In this report, the 6 distinct metamorphic relations for each of the examples provided in the lecture notes 3, form the slide number 37, 38, 39, 40 and 41 are discussed and solution are presented for Metamorphic Testing. Moreover, for every single metamorphic relations, apart from its definition, an example must is also provided.
The definition of metamorphic testing, testable program and non-testable program is provided. It is observed that metamorphic testing refers to a technique of property-based software testing. This method of testing is highly effective to address the issues in oracle and test case generation issues. It is also noted that, determining the desired results from the chosen test cases is highly complicated and hard. It can either be stated as, determining whether the actual outputs agree with the expected outcomes is difficult. This report finally determines the metamorphic relations, where its novelty and elegance is represented. Example 1 and example 2 are compared to retrieve the desired outcomes. It is observed that the testable program is a program whose input’s output can be verified. The Example 2 of Testable Programs is verified as correct, whereas the Example 3 of Testable Programs is verified as incorrect.
References
Chen, T. and Kuo, F. (2018). Metamorphic Testing: A Review of Challenges and Opportunities. ACM computing surveys, 51(1).
Liu, J. (2009). Metamorphic Testing and its Application on Hardware Fault-Tolerance. Dept. of Electrical and Computer Engineering University of Wisconsin – Madison.
Yueh Chen, T. (2018). Metamorphic Testing. Swinburne University of Technology. [online] Available at: https://pdfs.semanticscholar.org/presentation/4544/bd04340fb5052c66c944dd5432e36f2ff6ae.pdf [Accessed 21 Sep. 2018].
Zhou, Z., Huan, D., Tse, T., Yang, Z., Huang, H. and Chen, T. (2004). Metamorphic Testing and Its Applications. Proceedings of the 8th International Symposium on Future Software Technology (ISFST 2004).
Essay Writing Service Features
Our Experience
No matter how complex your assignment is, we can find the right professional for your specific task. Contact Essay is an essay writing company that hires only the smartest minds to help you with your projects. Our expertise allows us to provide students with high-quality academic writing, editing & proofreading services.Free Features
Free revision policy
$10Free bibliography & reference
$8Free title page
$8Free formatting
$8How Our Essay Writing Service Works
First, you will need to complete an order form. It's not difficult but, in case there is anything you find not to be clear, you may always call us so that we can guide you through it. On the order form, you will need to include some basic information concerning your order: subject, topic, number of pages, etc. We also encourage our clients to upload any relevant information or sources that will help.
Complete the order formOnce we have all the information and instructions that we need, we select the most suitable writer for your assignment. While everything seems to be clear, the writer, who has complete knowledge of the subject, may need clarification from you. It is at that point that you would receive a call or email from us.
Writer’s assignmentAs soon as the writer has finished, it will be delivered both to the website and to your email address so that you will not miss it. If your deadline is close at hand, we will place a call to you to make sure that you receive the paper on time.
Completing the order and download