I need help with the following assignment

profilethoson
cs459_ip4_1_2.docx

***Some of the Material in this paper has been repurposed from CS CS455-1501-B-01 with Professor Lemaster, and CS346-1501A-01 with Professor Borrego ***

Software Testing CS459-1601B-01

Testing scenarios for gym membership web based software

02-22-2016

Revision History

Revision

Date

Sections Changed

Reason

Description

Author

1.1

02-22-2016

Original Document

Initial Revision

Initial Revision

Table of Contents

Section 1 Software Testing Environment 4

1.1 Overview 4

1.2 Testing Environment 4

1.3 Organizational Assessment 4

1.3.1 Determine Software Capabilities 4

1.3.2 creating an environment supportive of software testing 5

1.3.3 Determining Staff Competency 5

1.3.4 Determining User Satisfaction 5

1.4 Assumptions 5

Section 2 Importance of unit/usability/system test planning process 6

2.5 Test Identification and Test Levels 7

2.5.1 Component Testing 7

2.5.2 Integration Testing 7

2.5.3 Regression Testing 8

2.6 Planned Tests and Test Schedules 8

2.7 Test Report 8

2.8 Requirements Traceability 8

2.9 Summary 9

Section 3 Characteristics of Test Plans 10

Test Planning Approach 11

Outline of The Test Plan 12

Appendix A 13

5.1 RTM 13

References: 15

4

Section 1 Software Testing Environment

Overview

Membership fees for Devil Dogg Crossfit are determined by the number of classes a member attends however there is no application in place which keeps track of this and individuals are essentially put on the “honor system” whereby they are asked to keep track of the number of classes they attend per week. This system is very disorganized, creates a great deal of confusion, and makes it very difficult to keep track of the members of the gym which in turn makes it very difficult to determine the actual financial health of the gym. To resolve these issues Devil Dogg Database application will be developed and tested during this project lifecycle. The application is a web based software application that allows a gym going customer to determine their membership type, the cost of that membership, and the features the membership provides is required for the Devil Dogg Crossfit company.

Testing Environment

The application will be compatible Windows 7 through Windows 8.1. The compatibility of the application with other OS platform will require specific testing The two tier Thin-client model will be the chosen architecture to host the application. In this model the client is only used to provide an interface to connect to the server. All of the resources and applications reside with the server, and the server is also responsible for data management on the network.

Organizational Assessment

Determine Software Capabilities

The application has a Customer User and an Administrator Account with the functional requirements for the Customer User and owner user being as follows:

· The Customer User shall be able to create unique identifier account along with a password to secure the account.

· The Customer User shall be able to login to the account once it is created.

· The Customer User shall be able to determine their membership type.

· The Customer User shall be able to determine the cost associated with that membership.

· The Customer User shall be able to track the benefits available versus benefits used.

· The Customer User shall be able to read, update, and delete their account when desired.

· The Administrator Account shall be able to determine the number of paying members at the gym.

· The Administrator Account shall be able to determine the membership type associated with each individual user.

· The Administrator Account shall be able to determine the cost of membership for each individual member.

· The Administrator Account shall be able to determine the benefits utilized for each individual member.

· The Administrator Account shall be able to determine the total sum of membership fees per month.

· The Administrator Account shall be able to read, update, and delete member accounts when desired.

creating an environment supportive of software testing

To create an environment supportive of software we will perform the following steps:

1. Determine the software testing model most appropriate for our organization and adopt that model.

2. Determine our current competencies, level of user satisfaction, and software testing capabilities.

3. Develop and implement a plan to improve our current level of user satisfaction, competencies, and software testing abilities.

Determining Staff Competency

When following the steps to create an environment supportive of software testing the current capabilities and competencies will be assessed. This assessment will enable the development of a baselin

e of our staff competency. The plan we develop will in turn move the baseline in a positive direction allowing the company to compete on a world class level.

Determining User Satisfaction

Usability testing will allow us to determine if the application is on track to meet the user needs and to validate the system design in its current state. The only way to effectively determine if an application meets the user requirements is to collect empirical through a series of usability tests collected from application users. This will make determining the strengths and weaknesses of the applications easier to identify during the early phases of the project and allow us to consistently created updated and improved prototypes.

Assumptions

There are no assumptions at this time. Conditions which must exist for application testing to be comprehensive and on schedule have not yet been defined therefore no assumptions are currently required.

Section 2 Importance of unit/usability/system test planning process

1

Importance of Unit/Usability/System Test Planning Process

Testing means a great deal to engineers and developers because it can detect system issues early in the development process, and provide a means to mitigate those issues. The earlier a defect is identified, the easier it is to mitigate, and Requirements testing allows for the early identification of defects within the system.

The first step in implementing the testing process is to establish the testing plan and establish the testing criteria. The test plan is the project plan for the testing work to be performed however it does not specify the design or contain test cases or test procedures, they do not address that level of detail. Three of the most important reasons to develop a proper test plan are as follows:

1. Test plans guide project thinking. When writing a test plan the most important features of the design are emphasized.

2. Test plans promote communication. A proper test plan and the test planning process requires input from all members of the project. The test plan should influence the think of the project members and the project members should influence the test plan through communication among peers.

3. Test plans help to identify and manage changes in requirements. As a project evolves the requirements will change and the test plan is modified based upon those changes. Updating the test plan keeps the testing aligned with requirements.

Characteristics of Test Plans

A properly developed test plan should include the approach, scope, schedule, and resources of the test activities. The characteristics of a properly developed test plan are as follows:

1. It should identify the features to be tested, the testing tasks, and the tester assigned to complete these tasks.

2. It should identify the test environment, test design techniques, and degree of tester independence.

3. It should identify the entry and exit criteria, the rationale behind that selection and any risks which may require contingency planning.

Test Planning Approach

The approach taken during application testing will emphasize the following objectives:

1. Start small and continue to focus on resolving small issues which will ultimately allow you to conquer the large issues. Conducting a larger number of tests with a smaller number of users allows you continually focus on those small problems, and that focus will allow you to make steady measurable progress (Gothelf, 2011.

2. Continue testing on a regular schedule (weekly at a minimum) throughout the lifecycle of the application. When testing becomes a routine scheduled part of the development process the development becomes used to evaluating and modifying the product according the qualitative insight gained from the usability testing (Gothelf, 2011). This again keeps the problems small and easy to handle.

3. Show the customer the current state of the application on a regular basis. While the application is in a production environment the customer should have a solid idea the current state of the application, and should be providing feedback on how well they believe the application is meeting their needs. This continual dialog will help to prevent misunderstandings and allow the small issues to be observed and resolved quickly.

4. Share the results of the usability testing with all potential users and request feedback on a regular basis. Though the number of users in a usability test should remain small, all potential users should be able to see and provide feedback on the results allowing designers to effective collect empirical data and provide an application that meets all of the user’s needs.

5. Reply to the provided feedback as quickly as possible. When users provide feedback they should receive a response as quickly as possible letting them know that their opinions are being heard and their feedback acted upon.

1.1 Test Plan Outline

Scope

The overall purpose of testing is to ensure the devildogg database application meets all functional and technical requirements. The overall purpose of this test plan is to describe the strategy and overall test plan for the application. The approach illustrated in this document provides the framework for all application testing. The test plan will be updated as required for each subsequent release of the application, and individual test cases will be written for each version of the application that is released.

Component Testing

Component testing utilizes the provided input by the user to receive the output of the system. The expected output of the system is then compared to the actual output to determine the quality of the output. Because the output is compared to set requirements this is usually a form of black box testing where the tester does not require any knowledge of the system.

Integration Testing

Integration testing allows developers to simulate a real world environment for the application and see how the application reacts to the stresses received. Typically there is external hardware and software specifically designed to provide the application with a simulated environment and working conditions which mimic the real world. The results of a simulation should be believable and repeatable. It is usually best to have an independent auditor perform and verify the simulation testing to ensure accuracy and believability. When Unit Testing is complete Integration testing is then performed. Integration testing validates the functionality of the components of a process when they are integrated into a process.

Regression Testing

Regression testing is a type of software which occurs during the maintenance phase of the project when a change to the software or hardware has been made. The goal of regression testing is to uncover “regressions” in the functional areas of the system. After configuration changes, enhancements or patches have been applied to the system. Regression testing will test the compatibility of changed components or parts with the new system and

Planned Tests and Test Schedules

The testing schedule will be defined using the Microsoft Project software to develop a Gantt chard and will break the project into five phases with each phase comprising approximately one week of man hours per phase. A Gantt chart allows you to see the various activities on a project, the start and end date for those activities, which activities overlap in time with each other, and the length of the project as a whole. The ability to obtain that much information with a single glance allows project manager’s to determine the overall status of the project, and individual details regarding project tasks in a quick and efficient manner. When these charts were originally developed it was a very laborious task done by hand and manually updated by hand as the project progressed. At the time that was a disadvantage of the Gantt chart, however modern software has automated the process of updating a Gantt chart, and made it a very simple task to create and maintain a Gantt chart. The disadvantages of a Gantt chart can be the time and expense to generate reports, the cost of training personnel in using the software associated with it, and security concerns if the details of the Gantt chart is placed online.

Test Report

The test report contents will include a summary of the test activities and the final test results. The results will be communicated to the project stakeholders and approved by the project manager. Specifically, the test report will contain a summary of the test strategy,

Requirements Traceability

A requirements traceability matrix allows us the trace requirements from their original development to their final implementation on a timeline which records their origin and final stage of development. This helps us to ensure the design meets the customer needs and helps us to assess the impact of a requirements change. The following table tracks the requirements, and links the requirements test case number. Those test cases are used to verify the usability of the system and ensure that the customer receives exactly what they asked for.

Summary

No matter the type of test or technique used it is vital that the procedures are planned and traceable, and all of the results are documented for later review. The attributes of a good test include uniqueness, the high probability of finding errors, a medium degree of complexity, and proper suitability for the application being tested. When the verification and validation process is properly utilized the result is the elimination of unexpected errors, and the delivery of a system that meets all requirements.

Section 3 Regression Test Plan Outline

2

Regression Testing

Test Risks / Issues

The purpose of regression testing is to ensure that defects which were fixed do not bring up problems in the operation of the software. Software testing is a very important process and with its complexity, there are some issues which may come up. Solving one bug can lead to the unearthing of more bugs in the software. During regression testing, it is important to test each part of the software which has been modified. After the integration of new parts of the software, regression testing should be done in order to ensure that the system will work well after the changes. Some other risks which might come up due to the addition of more functionality include new bugs, ports which might not work well and the whole program might be defective after addition of functionalities.

Items to be Tested / Not Tested

Item to Test

Test Description

Test Date

Responsibility

General functional regression

During this process, a broad test of the product is done. This is aimed to check whether newly added functionalities in the product have led to issues

Test Date

Software tester

Conversion or port testing

This tests the success of port and new platform to ensure that the program works in the new platform

Test Date

Software tester

Bug regression testing

This testing focuses on doing more tests on a bug which has been said to have been fixed.

Test Date

Software tester

operation

The software testers have to check and ensure that after fixing a bug or any problem in the code, the process does not affect the operation of other modules or the same module which was affected by the bug before its fixing.

Test Date

Software tester

Build verification testing

This testing is done to check whether there are parts which are broken be

Test Date

Software tester

Localization testing

This test is done on different modifications on the user interface. The language modification may bring some problems which need testing to ensure that the performance is good.

Test Date

Software tester

Configuration testing

Testing the program to ensure that it can work in different operating systems

Test Date

Software tester

Test Approach(s)

Regression testing is a very important part of system development. It is good in the detection of issues which have not been detected before. There are different test approaches which will be used during the test of this program. Some of the test approaches include the ones outlined below:

Corrective Regression Testing

This is useful when the test specifications are not modified and it involves reusing of test cases.

Selective Regression Testing

This is a type of testing which uses part of the existing test cases. A retest on any program is allowed only if there is a change in the entities. Only the changed items are tested.

Progressive Regression Testing

This is done when there are modifications in the specifications which will lead to the designing of new test cases.

Test Regulatory / Mandate Criteria

There are numerous mandates that the system must be tested against. The system will be storing personal information of the system users including the administrator as well as the other users. This requires security and privacy testing on the system. System testing for the accounting module is important to ensure that all the financial functionalities are compliant with the governmental regulations.

Test Pass / Fail Criteria

In this section, the pass or fail criteria which is the most appropriate for the test plan is determined. There are different criteria used for the determination of whether the test was successful or not. These include:

Unit Test Plan

This checks whether all the test plans were completed. Also, the automated test tool can be useful in checking whether all code lines have been covered well.

Master Test Plan

All allowed test plan levels should be completed and this criteria looks at the levels of the tests.

For any test plan to be successful, it should indicate whether or not the project stage can proceed or not.

Test Entry / Exit Criteria

Entry criteria

This is a section which deals with the process of starting tests and ending tests. There are some requirements which must be met for any tests to commence. They include the successful installation of the test hardware platform, configuration and their proper functionality. Also, there is the need of proper documentation of the system including its design and requirements which will enable the tester to carry out the tests easily. Before commencing the tests, it is also very important for the testers and any person involved in the process of testing to be trained before the testing process can begin. Installation of all the software tools to be used in the process of testing should be in place. Also, the test data which is useful for the testing process should be available to the testers. The other thing which is very important and must be considered is the test environment. It should be ready before testing begins.

Exit Criteria

There are numerous things to be considered when completing a test process. Some of the considerations include checking whether all the tests and the test plans have been successfully completed. Also it is important to ensure that an acceptable level of testing has been done. Before exiting, all the severe bugs in the software should be dealt with. Also, the most risky areas should be dealt with before exiting the test. It is also extremely important to consider the budget of testing. If the budget has been spent, exiting will be considered. Lastly, if the schedule is completed, then it is important for the testers to exit.

Test Deliverables

Some of the test deliverables which will result from the process of testing include a test case document, test results or reports, defect results, test summary report, test trace-ability matrix and release notes.

The test case document is used by testers to check whether various features in the system are working well. This is an important deliverable because it shows whether the system is working as needed or not. Stakeholders read the test case document to know whether the testing process was the right quality.

The test results or report shows the success of the implementation of the system. These reports are useful deliverables as they show whether or not the system has successfully been implemented.

Defect results are found in a document showing the number of defects in the system. With the defect results, one is able to know whether the system is working as expected or not.

Test summary report is another deliverable which is useful in the process of testing software. This is a document which will be useful to the stakeholders in ensuring that they identify all the defects which are outlined in the summary.

Test traceability matrix is a table which will correlate documents requiring many-to-many relationship in the determination of the completeness of the relationship.

Test Suspension / Resumption Criteria

The test suspension criteria are useful in showing the criteria to be used during the process of suspending part or the whole test process. Some of the considerations to be made include the introduction of defects which cannot allow the testing process to go on, external dependent systems which might not be available, missing out on a critical path deadline during the process of development or testing as well as a holiday which may interfere with the schedule of development and testing.

On the other hand, the circumstances under which the system testing can be resumed include the availability of the external dependent systems, when a bug has been successfully fixed or any other problem has been successfully implemented and the testing team has been notified to continue with the testing process. Also, after a renegotiation with the clients for the testing team to continue with the process as well as the end of a holiday, the testing process can resume.

Test Environmental / Staffing / Training Needs

For the testing process to be carried out, there are some very important things which must be addressed. Some of them include the test environment which can be in the form of a lab, hardware or software. The environment should be fully functional and ready for the testing process.

The staff members should be trained on how to use the environment and the test needs for the system.

The staff members should be trained all the areas which need to be tested and the requirements. The staff should also be able to interact well with the tools used in the testing process.

Test Planning Approach

TBD

Outline of The Test Plan

TBD

Appendix A

3

4

RTM

Req ID

Description

Requirement

Category

Component (HW or SW)

Test Case

Test Procedure

REQ0001

Registration Status View Test

Customer User shall be able to view their registration status with each interaction.

Functional

Software

TC001

TP001

REQ0002

Registration Page Access Test

The system shall only allow unregistered users to access the registration page.

Interface

Software

TC002

TP002

REQ0003

User Input Test

The system shall allow the Customer User to input their name, address, billing information, and preferred method of payment

external interface

Software

TC003

TP003

REQ0004

Account Creation Test

The Customer User shall be able to login to the account once it is created.

Interface

Software

TC004

TP004

REQ0005

Membership Test

The Customer User shall be able to determine their membership type.

Interface

Software

TC005

TP005

REQ0006

Web Page Navigation Test

The system shall direct the Customer User to the to correct web page according to the selection identified in the main menu

User Interface

Software

TC006

TP006

REQ0007

Load Performance Test

The system shall be able to support a minimum of 20 simultaneous users during peak hours.

Performance

Software

TC007

TP007

REQ0008

Software updates Test

The application will support auto updates without user input.

Performance

Software

TC008

TP008

REQ0009

Browser Load Time Test

The load time of the web pages shall take no more than five seconds on a standard DSL speed or higher internet connection.

Performance

Software

TC009

TP009

REQ0010

System maintenance test

The system will allow the Administrator Account to install patches and security updates on a live system without shutting the system down.

Security

Software

TC010

TP010

REQ0011

Membership Fees Test

The Administrator Account shall be able to determine the total sum of membership fees per month.

Functional

Software

TC011

TP011

REQ0012

Utilized Benefits Test

The Administrator Account shall be able to determine the benefits utilized for each individual member.

Functional

Software

TC012

TP012

REQ0013

Membership Cost Test

The Administrator Account shall be able to determine the cost of membership for each individual member.

Functional

Software

TC013

TP013

REQ0014

Membership Type Test

The Administrator Account shall be able to determine the membership type associated with each individual user.

Functional

Software

TC014

TP014

REQ0015

Database Communications Test

The application shall only allow a connection to the SQL database defined within the program.

Security

Software

TC015

TP015

REQ0016

Operating System Compatibility Test

The application shall be compatible with Windows 7 through Windows 8.1 Operating Systems

Performance

Software

TC016

TP016

REQ0017

CRUD Administrator Account Test

The Administrator Account shall be able to read, update, and delete member accounts when desired.

Functional

Software

TC017

TP017

REQ0018

Login Lockout Test

The system shall lockout the Customer User after 5 failed attempts to login.

Security

Software

TC018

TP018

REQ0019

Login Lockout Duration Test

A Customer User which has been locked out shall remain locked out for a period of 24 hours

Security

Software

TC019

TP019

REQ0020

Unique Identifier Test

The system shall require a unique identifier account along with a password to access the application.

Security

Software

TC020

TP020

Legend/Instructions:

Req ID

A unique ID number used to identify the traceability item in the requirements traceability matrix.

Description

This column contains the requirement title or description.

Requirement

 This column contains a description of the requirement.

Category

 This columns contains the requirement type.

Component (HW or SW)

This column is populated with a description of the hardware and software design components.

Test Script or Procedure

This column is populated with the identification of the procedure, script, or test case used.

Test Case Number

This column is populated with the test case number linked to the functional requirement.

Req ID

A unique ID number used to identify the traceability item in the requirements traceability matrix.

Description

This column contains the requirement title or description.

User Document

This column is populated with a description of the procedural document linked to the functional requirement verification method.

***NOTE: Traceability Matrix adapted from CDC_UP_Requirements_Traceability_Matrix_Template.xls by Daniel Vitek MBA, PMP - Consultant to CDC NCPHI, retrieved from http://www.cdc.gov/cdcup/

References:

ISQTB (2016). What is the purpose and importance of test plans in software testing? Retrieved

From http://istqbexamcertification.com/what-is-the-purpose-and-importance-of-test-plans/

Onestoptesting.com. (2016). Test Plan - Suspension criteria & resumption requirements. Retrieved from http://www.onestoptesting.com/test-plan/resumption- requirements.asp

Perry, W. (2015). Effective methods for Software Testing. Wiley Publishing Inc.

Pandhi, D (2006). How to Create the Best User Experience for Your Application. Retrieved

From https://msdn.microsoft.com/en-us/library/aa468595.aspx

System Usability Scale (SUS). (n.d.). Retrieved from

http://www.usability.gov/how-to-and-tools/methods/system-usability-scale.html

Testingeducation.org. (2016). Examples of Regression Testing. Retrieved from http://www.testingeducation.org/k04/RegressionExamples.htm