السلام عليكم، عندي مشروع وتسليمه قريب جدا قبل ٦ سبتمبر ،احتاج مساعدك قد يبدو سهلا على احد بخبرتك ماشاءالله. عندي برنامج multifactor authentication واحتاج اكتب بالتفاصيل test cases باستخدام طرق مختلفه. هل من الممكن ان نعمل معا احتاج اتعلم كيفيه استخدام جافا junit testing وغيرها
نبذه عن البرنامج
Junit test driver for equivalence partitioning
Select test cases associated with your equivalence classes, and implement these in the JUnit test driver named `/mfa/PartitioningTests.java`. Use *one* JUnit test method for each equivalence class. For each test, clearly identify from which equivalence class it has been selected. Push this script back to your git repository.
Include this as Appendix A of your submission.
NOTE: When implementing tests for one method, you may use other methods to check that the first method has worked as expected. Similarly, sometimes you may be required to execute other methods in the class to get the instance into a state that is testable (see the example in `PartitioningTests.java`).
### Boundary-value analysis
Conduct a boundary-value analysis for your equivalence classes. Show your working for this. Select test cases associated with your boundary values.
### Junit test driver for boundary-value analysis
Implement your boundary-value tests in the JUnit test driver called `t/mfa/BoundaryTests.java`. As before, use *one* JUnit test method for each test input. Push this script back to you git repository.
Include this as Appendix B of your submission.
Note that the BoundaryTests JUnit script inherits PartitioningTest, which means all tests from PartitioningTests are including in BoundaryTests. A JUnit test is just a standard public Java class! You may choose to remove this inheritance, but you may also use it to your advantage to make the BoundaryTest script easier to create. Overriding an existing test will replace it in the BoundaryTest sscript.
### Task 5 -- Multiple-condition coverage
Calculate the coverage score of your two test suites (equivalence partitioning and boundary-value analysis) using *multiple-condition coverage* each the five methods, as well as those methods in `MFA.java` that they call; that is, `isAuthenticated`.
Show your working for this coverage calculation in a table that lists each test objective (that is, each combination for multiple-condition coverage) and one test that achieves this, if any.
NOTE: You do NOT need to draw the control-flow graph for your solution.
You will receive marks for deriving correct coverage scores and showing how you come to this score. No marks are allocated for having a higher coverage score.
### Mutation selection
Derive five *non-equivalent* mutants for the MFA class using only the nine Java mutation operators in the subject notes. These mutants should be difficult to find using testing. Insert each of these mutants into the files `/mfa/MFA.java`, `mfa/MFA.java`, etc.
All five mutants must be non-equivalent AND each mutant must be killed by at least one test in your JUnit BoundaryTest script to demonstrate that they are non-equivalent. They must only be in code that is executed when calling one of the four methods tested in Task 1.
Importantly, do not change anything else about the mutant files except for inserting the mutant.
Each mutant must change exactly one line of `MFA.java` for each version `mutant-1`, `mutant-2`, etc.
### - Comparison
Compare the two sets of test cases (equivalence partitioning and boundary-value analysis) and their results. Which method did you find was more effective and why? You should consider the coverage of the valid input/output domain, the coverage achieved, and the mutants it kills. Limit your comparison to half a page. If your comparison is over half a page, you will be marked only on the first half page.
وعليكم السلام ورحمه الله ، مرحبا بك ، قد قرأت طلبك و يمكننى مساعدتك في هذا حيث انى درست في هذا المجال فى iti