Test Plan and Cases (TPC) Version 4.0
Test Plan and Cases (TPC)
Pic Share App (RA)
Team 1
Logan Chang – Project Manager, Developer
Jiashun Zhou – Developer
Yew Hua Chua – Developer
Haihao Lu – Developer
Yunwei Yuan – Developer
Yao Wang – Developer
Weili Zhang – Developer
Joseph Mouawad – Developer
Nicholas Funk – Developer, Tester
27 April 2016
Version History
Date / Author / Version / Changes made / Rationale /11/25/15 / Larry Stratton / 1.0 / · Added initial test plan and test cases / · Initial draft
12/07/15 / Larry Stratton / 2.0 / · Update test plan / · Submission of DCP
02/12/16 / Nicholas Funk / 3.0 / · Added all the required test cases
· Update test plan / · Submission of RDCP
04/27/16 / Yew Hua Chua / 4.0 / · Update final test plan and test cases / · Submission of AS-BUILT package
Table of Contents
Test Plan and Cases (TPC) i
Table of Contents Iii
Table of Tables v
1. Introduction 9
2. Test Strategy and Preparation 10
2.1 Hardware preparation 10
2.2 Software preparation 10
2.3 Other pre-test preparations 11
2.4 Requirements Traceability 12
3. Test Identification 16
3.1 Create Event 16
3.2 Search by Location 24
3.3 Upload a Photo to the User’s current location 333
3.4 Delete uploaded Photos 388
3.5 Download Photos for Events 466
3.6 User Interface Interactions 50
3.7 Administrator Photo Management 555
3.8 Create Account 655
3.9 Search for Event 733
3.10 Join an Event 777
3.11 Upload Photos to Events 833
3.12 Take Photos with Device Camera 899
3.13 Account Login and Logout 944
3.14 Automated System Functions 1055
4. Resources and schedule 109
4.1 Resources 10909
4.2 Staffing and Training Needs 10909
4.3 Schedule 110
48
TPC_ASBUILT_S16b_T01_V4.0.docx Version Date: 04/27/16
Test Plan and Cases (TPC) Version 4.0
Table of Tables
Table 2.4.1: Requirements Traceability Matrix 12
Table 3.1.1: TC-01-01 Check create public event with valid hashtag name 17
Table 3.1.2: TC-01-02 Check create private event with valid hashtag name and password 18
Table 3.1.3: TC-01-03 Check create public event with invalid hashtag name 19
Table 3.1.4: TC-01-04 Check create private event with invalid hashtag name 20
Table 3.1.5: TC-01-05 Check create private event with invalid password 21
Table 3.1.6: TC-01-06 Check create public event with no network connection 22
Table 3.1.7: TC-01-07 Check create public event with already used hashtag name 23
Table 3.2.1: TC-02-01 Functional Sensor Test 25
Table 3.2.2: TC-02-02 Non-Functional Sensor Test 26
Table 3.2.3: TC-02-03 Populated Location Query Test 27
Table 3.2.4: TC-02-04 Null-Result Location Query Test 28
Table 3.2.5: TC-02-05 Valid Database Connection Test 29
Table 3.2.6: TC-02-06 Invalid Database Connection Test 30
Table 3.2.7: TC-02-07 Non-Connection Database Error Test 31
Table 3.2.8: TC-02-08 Partial-Result Location Filter Test 32
Table 3.3.1: TC-03-01 Choose a photo to upload 34
Table 3.3.2: TC-03-02 Upload a photo with valid tag data and server connectivity 35
Table 3.3.3: TC-03-03 Upload a photo with invalid tag data 36
Table 3.3.4: TC-03-04 Upload a photo with no server connectivity 37
Table 3.4.1: TC-04-01 Check deleting a photo when every part of the system works well 39
Table 3.4.2: TC-04-02 Check deleting a photo without Internet access 40
Table 3.4.3: TC-04-03 Check deleting a photo when server is unavailable 41
Table 3.4.4: TC-04-04 Check event owner able to delete a photo uploaded to their event 42
Table 3.4.5: TC-04-05 Check event owner able to cancel deleting a photo 43
Table 3.4.6: TC-04-06 Check event owner deleting a photo without Internet access 44
Table 3.4.7: TC-04-07 Check event owner deleting a photo when server is unavailable 45
Table 3.5.1: TC-05-01 Check downloading a photo when every part of the system works well 47
Table 3.5.2: TC-05-02 Check downloading a photo with Internet interruption 48
Table 3.5.3: TC-05-03 Check downloading a photo when local device is out of storage 49
Table 3.6.1: TC-06-01 Check navigation bar display 51
Table 3.6.2: TC-06-02 Check navigation bar input receipt 52
Table 3.6.3: TC-06-03 Check navigation invoke functionality 53
Table 3.6.4: TC-06-04 Check event expiration countdown 54
Table 3.7.1: TC-07-01 Check search for photo by user with legal name 56
Table 3.7.2: TC-07-02 Check search for photo by user automatically 57
Table 3.7.3: TC-07-03 Check search for photo by user without Internet access 58
Table 3.7.4: TC-07-04 Check search for photo by event hashtag with legal name 59
Table 3.7.5: TC-07-05 Check search for photo by event hashtag automatically 60
Table 3.7.6: TC-07-06 Check search for photo by event hashtag without Internet access 61
Table 3.7.7: TC-07-07 Check admin able to delete photo 62
Table 3.7.8: TC-07-08 Check admin able to cancel photo deletion 63
Table 3.7.9: TC-07-09 Check admin not able to delete photo during connection error 64
Table 3.8.1: TC-08-01 Check creating an account with correct information 66
Table 3.8.2: TC-08-02 Check creating an account with missing required field 67
Table 3.8.3: TC-08-03 Check creating an account with email address or username that is already in use 68
Table 3.8.4: TC-08-04 Check creating an account with username or password that does not meet requirements 69
Table 3.8.5: TC-08-05 Check adding a photo to profile from camera device 70
Table 3.8.6: TC-08-06 Check removing a photo from profile 71
Table 3.8.7: TC-08-07 Check adding a photo from photo roll 72
Table 3.9.1: TC-09-01 Check input search term legality 74
Table 3.9.2: TC-09-02 Check server error status 75
Table 3.9.3: TC-09-03 Test search response speed 76
Table 3.10.1: TC-10-01 Check user able to join public event 78
Table 3.10.2: TC-10-02 Check user able to join private event with correct password 79
Table 3.10.3: TC-10-03 Check user unable to join private event with incorrect password 80
Table 3.10.4: TC-10-04 Check user able to cancel joining an event 81
Table 3.10.5: TC-10-05 Check user able to view joined events 82
Table 3.11.1: TC-11-01 Check upload to event which user has joined 84
Table 3.11.2: TC-11-02 Check upload to event which user has not joined 85
Table 3.11.3: TC-11-03 Check upload to event when device has no network connection 86
Table 3.11.4: TC-11-04 Check upload to event when database unavailable 87
Table 3.11.5: TC-11-05 Check user cancels upload action 88
Table 3.12.1: TC-12-01 Check user able to take a photo 90
Table 3.12.2: TC-12-02 Check user able to retake a photo 91
Table 3.12.3: TC-12-03 Check user able to cancel taking a photo 92
Table 3.12.4: TC-12-04 Check user attempt to take photo while there is a camera error 93
Table 3.13.1: TC-13-01 Check user able to login with valid username and correct password 95
Table 3.13.2: TC-13-02 Check user unable to login with valid username and incorrect password 96
Table 3.13.3: TC-13-03 Check user unable to login with invalid username 97
Table 3.13.4: TC-13-04 Check user able to log out of account 98
Table 3.13.5: TC-13-05 Check user able to cancel log out of account 99
Table 3.13.6: TC-13-06 Check administrator able to login with valid username and correct password 100
Table 3.13.7: TC-13-07 Check administrator unable to login with valid username and incorrect password 101
Table 3.13.8: TC-13-08 Check administrator unable to login with invalid username 102
Table 3.13.9: TC-13-09 Check administrator able to log out of account 103
Table 3.13.10: TC-13-10 Check administrator able to cancel log out of account 104
Table 3.14.1: TC-14-01 Check system deletes expired location photos automatically 106
Table 3.14.2: TC-14-02 Check system deletes expired event photos automatically 107
Table 3.14.3: TC-14-03 Check system deletes expired events automatically 108
Table 4.3.1: Assigned Testing Team Member Testing Schedule 11010
48
TPC_ASBUILT_S16b_T01_V4.0.docx Version Date: 04/27/16
Test Plan and Cases (TPC) Version 4.0
1. Introduction
The purpose of testing within this project is to demonstrate to the client that the requirements were satisfied and if not, that they can then be fixed to meet requirements. Since the project involves a mobile application and is being developed for the iOS ecosystem, the application will first be tested on a software-based emulator. Once core-functionality has been tested, the client can then choose whether to expand testing to specific iPhone versions to be able to guarantee platform-wide usage.
The application involves persisting and retrieving photo data for a specified period of time before photos are deleted. Paid versions allow for extended storage duration. As a result of these requirements, a back-end COTS solution of Parse was chosen. This allowed for reduced complexity in designing a system that will allow for reliably uploading photos and distributing them, but also implies that the team cannot test all aspects of the mobile application and will have to trust in Parse’s own reliability and dependability guarantees. Despite an assumption of trust in Parse’s guarantees, the team can still test basic connectivity guidelines and potential errors associated with a database management system and a server not hosted by the team. In particular, reliable photo uploading, photo downloading, and user management can be tested through Parse’s own interface. Concurrently, the interactions between the mobile application users and the back-end as well as the expected downloads to push new uploads can be tested without having to know the details that Parse omits.
Thus, the majority of testing will focus on the mobile application’s front-end functionality and the interactions with the back-end Parse. Detailed scaling, load testing, and other issues associated with wide-spread adoption will not be tested because it will be assumed that the back-end solution will provide these capabilities at different paid service levels. The client can then choose to pay for greater functionality at greater cost, without worrying about scalability testing.
As it was announced that Parse would be ending its services on January 28, 2017, the team has built a custom backend by deploying the Parse open source server code on Heroku and MongoLab. In order to facilitate smooth transition from Parse to the team's custom backend in the future, the admin tool is implemented and tested on the custom backend.
To complete the testing, the team has used JIRA as a bug tracking system. The team took a hybrid approach by having a different tester for each week and the assigned tester was responsible for performing tests on a particular group of test cases. The assigned tester would create a new JIRA ticket for each test case that failed and somebody in the team would be assigned to fix the bug and perform the testing of that test case again.
2. Test Strategy and Preparation
The team will approach testing using requirements-test traceability and value-based test prioritization. This will be done to ensure focused testing that will meet the client’s needs, while helping to meet the client’s requirements within a semester timeline.
2.1 Hardware preparation
Hardware testing for the mobile application front-end will be primarily done through simulation using the developer emulator. Testing for specific hardware devices such as an iPhone6 or an iPhone5 will require new negotiation with the client to determine explicit hardware testing requirements.
The database back-end hardware will not be tested in a hardware context, since the COTS solution Parse has been selected. Hardware functionality from Parse will be assumed to meet Parse’s own guidelines at a paid service level. This also applies to the custom backend as it is hosted on Heroku and MongoLab.
2.2 Software preparation
Building maintainable software is one of the key quality attributes of our system. Informative, easy-to-use tests are a key aspect of the maintainability of the system.
We can accomplish this through test driven development. For each requirement and its accompanying use cases, the test cases will be developed for the requirement, and then implemented in the code.
Our class diagrams define a blueprint for our code. Since the class diagrams span multiple use cases, we will identify which requirements contribute to each class diagram (see traceability matrix in the next section) and define the tests for those requirements before building the classes shown in the class diagram. This will ensure that our code meets our system requirements. We will define a script to execute the suite of regression tests. Through the script, automated testing during development and onward in system maintenance will ensure that the system continues to fulfill its intended function.
We have elected not to utilize code generators because we aren’t doing model-based development. However, our process includes detailed comments for each object, method and attribute. Additionally, diagnostic tests will be created as part of the test suite that not only indicates that a problem occurs, but also provides detail about the problem. Test failure messages will include: the class and method where the failure occurred, test failure criteria, relevant state information, comments on likely sources of failures and potential resolutions.
2.3 Other pre-test preparations
In order to fully test the mobile application, the team should start looking for representative users who would be available to test after all team testing is completed. This will allow for non-development team constructive criticism, which will help to demonstrate that the UX and core-functionality requirements appropriately satisfy a representative example of future users of the mobile application.
2.4 Requirements Traceability
Table 2.4.1: Requirements Traceability Matrix
# / Requirements / Use Case # / Use Case Description / Sequence Diagram / Class Diagram / Test Case /1 / The system shall allow a user to upload a photo to an event. / 1,24 / Upload photo to my event, Search for event & upload photo / Upload photo to my event / Photo Management / 11
2 / The system shall allow a user to reserve a hashtag for a private event, allowing the user to specify a password to upload and view photos of the event. / 4, 5,6,7,8 / Create private event, Reserve Hashtag, Set a password, View photos of event, View event with password / Set a password, reserve a hashtag, view photos of event/private with password / Event Management / 1
3 / The system shall allow users to view photos uploaded from nearby locations in a grid layout. / 9 / Search by location / Search Location / Search Location / 2