Learning outcomes being assessed
A) Learning outcomes being assessed: Students will be able to choose appropriate strategies for soft- ware testing and validation and implement them.
B) A solution template is provided as an attachment to this worksheet (file smqa.zip). This zip file contains a maven project that you can import into your favourite IDE.
c )The solution to the assignment must be submitted as a single zip file named smqa.zip.
The submitted zip file contains exactly the same files as the provided solution template, i.e., no new files should be added.
You must not change any source code file except for Java classes named *Test.
You must not change the Maven build file pom.xml.
If the submitted project does not compile, the submission will receive zero marks.
2)Steps towards completing assignment:
a) Open worksheet.
b) Download solution template (file smqa.zip)
c) Import solution template as a Maven project in your favourite IDE (e.g., Eclipse or IntelliJ)
d) Once you finish task 2, export your project as a zip file named smqa.zip and upload it on Blackboard.
Let us suppose you are designing a social media web app and want to do black-box testing of a method with the following signature and expected behaviour: boolean fbpost(String message, ArrayList photos, String location, String datetime, String privacy)
1 )The fbpost method takes the following arguments as input:
2) The message to be included in the post. The message may be of any length and may contain links or emojis in it.
3) A list of photos, which may be empty or include up to 5 photos. Photos cannot be larger than 3MB each. If any photo is corrupted, then the method will throw an exception.
4) The location of the post, which may be empty, a valid postcode or the name of a city.
5) The date and time of the post in format.
6) The privacy configuration of the post, which can be either ”ME”, ”FRIENDS”, or ”EVERYONE”. As part of the environment, you have:
7) The service may be either available or unavailable. If the service is unavailable, the method will always throw an error.
8) The user may or may not be logged in. If the user is not logged in, no message can be posted and an error will be raised.
9) Your task is to use the Category Partition Method to design a test framework for the fbpost method. You must:
10) Identify at least five categories for each of the input arguments and consider the two environment parameters.
11) Identify at least 5 properties and constraints between different categories and partitions.
12) Identify at least 5 error or single constraints.
Your solution must be written as an input file for the TSL Generator tool. You will include two files in your submission for this task:
1.This is where you will write your test framework as input to TSL Generator
2.This is the file TSL Generator will produce for you.
Placeholders for both of these files are included in the template project. You may not create any additional files for this task.
Note: You do not need the code of the method to apply the category partition method.
Given the Java project attached to this assignment worksheet which contains realistic Java classes for a command line interface application:
- Write a set of JUnit tests to achieve the highest possible branch coverage for the different classes in the project.
- Each of your JUnit tests must contribute to improving the coverage of the code (i.e., no JUnit test should be redundant).
- Each JUnit test should contain a descriptive test name corresponding to the covered behaviour.
- Each JUnit test must contain one or two JUnit assertions.
You will write tests in the already existing classes in the smqa/src/test/java/edu/leicester/cli/
directory, where you have a test class for each of the Java classes in the project.
You will not create any new file in your project and no other test class will be awarded marks. You must not rename any existing file.
You will notice that for each of the classes under test in the project, an example JUnit test has been provided already. You may use these examples to write further JUnit tests for each class.