SWEN 777 Assignment 3 1 SSW 567. Software Testing, Quality Assurance, and Maintenance Individual Assignment 03 V.1.0 Description: This assignment has 3 parts. The first and second part require...

I have attached file


SWEN 777 Assignment 3 1 SSW 567. Software Testing, Quality Assurance, and Maintenance Individual Assignment 03 V.1.0 Description: This assignment has 3 parts. The first and second part require working/using the same project (software) that needs to be compiled (Make sure you choose a small project and resolve any dependencies using its installation manual or you can use compilable projects that I have provided in the previous assignment folder). Part 1: Using FindBugs Description: Locating and fixing software defects (bugs) is one of the most expensive tasks involved in software development. Because of this, software projects benefit greatly from tools that can automate the process of locating them. This is often accomplished using a technique called "static analysis", which examines the software and extracts useful knowledge from it. One such popular static analysis tool for Java programs is FindBugs. FindBugs examines the byte code of compiled Java classes for well known "bug patterns" that indicate possible defects and reports them with detailed information about the pattern it detected and why it may be a problem. FundBugs has an extensive database of these bug patterns and is quite good at locating hidden problems within even mature codebases. Task: For this exercise we will have FindBugs analyze one version of a software of your choice, preferably the one you have used in the previous assignment. You will then be asked to provide some detailed analysis of the generated report and to offer up a proposed fix for the identified bug: 1. Install the Eclipse plug-in for FindBugs 2. Run FindBugs on the input code of your choice. 3. Pick 10 issues of different types. 4. Create a report and, for each issue, add to the report: 1. The type of issue 2. Whether it is a false or a true positive 3. If it is a true positive, what are the necessary steps to fix it? 4. How long it took you to check it / fix it. 5. Add to the report a concise comment about your experience with FindBugs (positives, negatives, other comments). http://findbugs.cs.umd.edu/eclipse-candidate/ 2 Part 2: Using PMD Description: Part 3 is basically a repetition of Part 2, but the analysis will be done with PMD. PMD is a source code analyzer. It finds common programming flaws like unused variables, empty catch blocks, unnecessary object creation, and so forth. It supports Java, JavaScript, Salesforce.com Apex, PLSQL, Apache Velocity, XML, XSL. Additionally it includes CPD, the copy-paste-detector. CPD finds duplicated code in Java, C, C++, C#, PHP, Ruby, Fortran, JavaScript, PLSQL, Apache Velocity, Ruby, Scala, Objective C, Matlab, Python, Go, Swift and Salesforce.com Apex. Task: 1. Install the Eclipse plug-in for PMD 2. Run PMD on the same input code (preferably) from Part 2. 3. Pick 10 issues of different types. 4. Create a report and, for each issue, add to the report: 1. The type of issue 2. Whether it is a false or a true positive 3. If it is a true positive, what are the necessary steps to fix it? 4. How long it took you to check it / fix it. 5. Add to the report a concise comment about your experience with PMD (positives, negatives, other comments). http://pmd.sourceforge.net/eclipse/ 3 Part 3: Using PIT Description: PIT is a state of the art mutation testing system, providing gold standard test coverage for Java and the JVM. It's fast, scalable, and integrates with modern tests and build tooling. PIT runs your unit tests against automatically modified versions of your application code. When the application code changes, it should produce different results and cause the unit tests to fail. If a unit test does not fail in this situation, it may indicate an issue with the test suite. Task: For this exercise, we will challenge the three test sets that you have developed in the previous assignment using PIT. The purpose of this part is to measure the robustness of each of the test suits when it comes to the injections of mutants: 1. Install PIT 2. Install EvoSuite 3. Run PIT for each of the test sets, previously generated in assignment 2. 4. Report the findings in the following tables. Test Suite Source Number of generated mutants Killed Lived No Coverage Timed Out Memory / Run Error Manual EvoSuite Randoop Type of Mutant Number of generated mutants Killed Lived No Coverage Timed Out Memory / Run Error Conditionals Boundary Mutator Increments Mutator Invert Negatives Mutator Math Mutator http://pitest.org/downloads/ https://www.evosuite.org/ 4 Negate Conditionals Mutator Return Values Mutator Void Method Calls Mutator 5. Add to the report a concise comment about your experience with running PIT (positives, negatives, other comments). Also, include a brief interpretation of the found results. Submission: Submit a pdf file containing all parts of the assignment. • For part 1, 2, you also need to provide the source code of the project you studied along with two log files that each contain the results of running FindBugs and PMD (one file containing all the bugs detected for each tool). • For part 3, you need to provide 3 projects, one containing your handwritten test cases, another containing EvoSuite test cases, the last one containing Randoop test cases. The comparison table should be in the word file. Rename the zipped folder (that contains your report and sub-folders) using your "firstname- lastname.zip". Upload the zipped file to the appropriate assignment on myCourses. The following figure explains how your submission should be structured: 5
Feb 28, 2022
SOLUTION.PDF

Get Answer To This Question

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here