Reference no: EM132373496
Assignment:
Working in Agile Environment and Developing Detailed Test Plans with a Test Management Tool
Purpose:
The purposes of the assignment:
• Practice and improve your team working skills
• Write professional level testing documentation
• Develop a good understanding of professional industry standards for software testing
• Practice an Agile Testing environment and use of Agile toolchains
Description:
Consider the following Class Diagrams of Figure 1. The class (called Repository) contains 3 types of data for multiple persons. The attributes are Name, Phone, and Address, and they are grouped as Info. That is, the class Repository contains the array (Vector) of Info. The private member variable of the Info class is a list in the Repository class. There are various public methods to access and mutate the list variable of the class (Repository).
Figure 1: Class Diagram of Repository and Info classes
Sample information stored in an object of the Repository class is shown in the following table:
Name Phone Address
|
Josh
|
+61728382818
|
VA, USA
|
Kevin
|
+16456712345
|
Hobart, Australia
|
Andy
|
+61423456134
|
Sydney, Australia
|
John
|
+16456712345
|
Melbourne, Australia
|
Adam
|
+61341231231
|
|
Albert
|
+61231212312
|
Canberra, Australia
|
Merry
|
+61412098765
|
|
Andy
|
+61728382811
|
VA, USA
|
Phillip
|
+61428382819
|
Brisbane, Australia
|
John
|
+61341231239
|
Brisbane, Australia
|
Here is the detailed description of the Repository class:
i) list: Vector <Into> - the list is a vector of Info class where info class contains three private variables and 6 public functions. Since the scope of the assignment is restricted to Repository class, the description of Info class's methods is skipped here. Please note that, a person will have one name with exactly one phone number and address. The <Name, Phone Number> pair uniquely identifies a person. However, a phone number can be used by multiple persons and multiple persons may have the same address. A person must have a name and the phone number, but the address field might be empty.
ii) Add (Info): String - Adds the information about a person and returns the success message ("Successfully Inserted") when the insertion is successful. If the insert is unsuccessful, it returns ("Error in Insertion").
iii) EditInfo (String, String, String, String): String - Edits the information about a person. The first and second string contains the Name and Phone Number, respectively, that uniquely identifies a person. The third string is the attribute to change and the fourth string is the modified value of that attribute. For example, if the function call is EditInfo ("John", "+16456712345", "Address", "NY, USA"), then it will replace the address to "NY, USA" of the person whose name is "John" and the phone number is "+16456712345". The function call will return "Successfully Edited", however, if no such data is found, it will return "No Such Data Found".
iv) Delete (String, String): String - This function will simply delete the entry from the list. The name and the phone number are the arguments of the function. If the information is deleted successful, it will return the string "Successfully Deleted", otherwise "Error in Deletion".
v) Count(): Int - This function returns the number of persons on the list.
vi) Count(String, String): Int - This function returns the number of persons having a common attribute. The first string indicates attribute to search and the second string indicates the value of the attribute. For example, Count ("Name", "John") will return 2 as there are 2 persons with the name John in the current list.
vii) IsAvailable (String, String): Bool - Checks whether a particular attribute has a given value. The first string contains the attribute and the second string contains the value of the attribute.
viii) IsMultipleName(String): Bool - Checks whether a name is available multiple times in the list. The string parameter contains the name of the person.
ix) Show (String, String): vector<Info> - Searches for a particular attribute. The first string is the attribute and the second string is the value of the attribute. The functions return a vector so that it may contain multiple records. For example, if the call is Show("Name", "John"), it will return two records in the vector.
x) CountNoAddress(): Int - Returns the number of records that have no address.
Introduction:
Consider that the above classes are already implemented and the unit testing is already done. Now a different group of the developer is implementing a software based on the above- implemented classes. The software will be deployed in a cloud service and will be accessible for any number of users. In addition, the software is synced with your phonebook. The features of the Software include:
1. The user will first create an account in the deployed site
2. The user will be allowed to create multiple sheets in a phonebook and each sheet can contain information about 10000 persons (The structure of information of a person is discussed in Info Class).
3. In the phone set, user have to log in to that website [or a dedicated app using user's credential (username and password)]
4. After that, both the phonebook and the account in phonebook will always remain synced. That is, whatever you add/edit in the phone book will be synced in the website and vice versa.
5. A user can share a sheet with his/her friend using the friend's email address and that email address must be used to log on to the system
6. If a user (say A) provides a ‘write' access to his/her friend (say B), then B will be able to modify any contact information, otherwise, B can only see the information of the sheet(s) (read-only)
7. A user will be able to select any number of the sheet from his account to be synced with the phone number.
8. The user will be able to import a set of information in a sheet from any CSV (Comma Separated Values) file and that information will be stored in a selected sheet.
9. The user will be able to export a sheet in a CSV file.
[Of course you need an app to be installed in your mobile, but for simplicity, we avoid testing that app. Assume that the app is installed and you have finished login activities for the app]
As mentioned earlier, the classes, along with the methods (I-X) and the features of the website (1-9) are already developed by two different group of software developers. The Unit tests for the methods of the classes are already tested by the developers of the first group and you need not to worry about the correctness of the classes/object. Now the website will be deployed on a server and then will be opened for all.
As a group of Software Engineers in Test, your group in assigned to perform the black box testing for the developed website.
Submission Criteria:
what you need to do:
1. Develop a detailed test plan for functional testing using Test Rail Software/Website. Your Test plan (Suit) should contain multiple test cases for each of the 9 scenarios
2. Develop integration and acceptance testing with the plan for Performance Testing (Stress testing, load testing, volume testing). You should also use TestRail* for writing the test cases and scenarios
3. Maintain your splitted work through your Trello Board, prioritize them and estimate their size (Big/Medium/Small). Also, maintain each of your timing using punchtime, and submit the printout of everyone's punchtime log in pdf format. You should also submit the printout of your Trello board in pdf format
4. Take the printout of all the test cases (summary) and submit the pdf with your assignment
5. In a text file, provide your login credential so that the tutor can log in directly to check the work
Attachment:- Software Testing.rar