To: Dr. Erika Paterson
From: Matthew De Rose
Date: June 19, 2020
Subject: Proposal for Determining the Feasibility of Introducing Unit Testing to the Existing Testing Practice for DAB Software Development Team
Introduction
The process of creating software requires a rigorous testing protocol to identify and assess risk of a variety of issues (also known as bugs) that can arise during development. As software becomes more complex the development team becomes increasingly dependent on running automated testing protocols to redirect effort and time required to run tests manually on existing code into developing new features and resolving older issues. Testing strategies often are classified into two broad categories: black box testing and white box testing. Black box testing involves providing a set of inputs into a system and observing if the outputs are expected. White box testing involves testing the smaller internal components of the system to validate that each component is functioning as designed.
The decision of which automated testing protocols should be integrated into the team’s regular workflow is often made to incorporate minimal amount of time required to create the automated tests and maximize the breadth of functionality validation the tests will provide. Often teams will decide on the appropriate combination of testing protocols that will optimize these key parameters but usually it will not be feasible to include all forms of testing protocols to achieve this goal.
Statement of Problem
In the development team to develop the DAB regulatory compliance software currently only tests t our Application Program Interfaces (API)and our end to end (E2E) processes. The API testing allows validation of the communication of the front user interface to the server to validate that data is retrieved, changed, created or deleted successfully, while E2E testing allows validation of the user’s interaction with the graphical user interface. Both testing strategies do not allow for components within the user interface, service and data layers of the code to be tested automatically thus resulting in time consuming debugging and manual testing.
Proposed Solution
One form of white box testing that allows automation in validating functionality of smaller components within each of the layers is called unit testing. Unit tests are the smallest scale of testing that can occur within an application often involves providing a small component of code with a few data inputs and expect a singular output to evaluate. Tests are also able to be performed faster since they are not dependent on multiple other systems to be performed.
By running unit tests in tandem with API and E2E testing development team have greater understanding of how and where a bug has arisen thus reducing the time needed to fix it.
Scope
To assess the feasibility of integrating unit testing into the DAB Development Team’s regular testing protocol, I plan to purse the following areas of inquiry:
- What are the benefits and challenges with adopting unity testing into regular testing practice?
- What has prevented unit testing from being adopted in the regular testing protocol in the past?
- What are some viable unit testing strategies that can be used for our software?
- How willing is the team to apply the unit testing strategies?
Methods
The primary data sources will include an initial interview conducted with the Quality Assurance Analyst and a survey sent out to the entire DAB Development team (including the manager, and full-stack developers). The interview will involve asking questions about what he believes are the benefits and challenges with incorporating unit testing into the teams regular testing protocols, in addition to what possible technologies are available to use with our existing software. Then I will provide an anonymous survey to the remainder of the DAB development team (manager and full-stack developers) to ascertain what unit testing strategies mentioned in the interview with the Quality Assurance Analyst they would be willing to adopt into the regular testing protocols (if any). While social distancing methods are in place with the COVID-19 pandemic, the interview will be performed on our work online chatroom and the surveys will be distributed electronically through the online work chat.
My Qualification
I have volunteered with the DAB Software development team since January, 2019 . I am familiar with the development team’s current workflow for developing and validating functionality of the DAB software. In addition to this I am familiar with the current technologies used to develop this software and the process of allotting designated effort for each development task. My academic background studying Computer Science at the University of British Columbia has often incorporated unit testing in a wide variety of courses that I have taken which provides me a foundational knowledge to assess the feasibility of incorporating unit testing into the current testing protocols used by the DAB software development team.
Conclusion
The testing protocols currently adopted by the DAB software development team lack vital information regarding the small components that make up the larger subsystems necessary for the software to operate as expected. From this investigation I will be able to explore the feasibility of adopting unit testing into the team’s standard testing procedures to improve how the quality assurance for this software is being performed.
Hello Mathew,
Thank you for posting your proposal, this looks interesting and well organized, I look forward to reading your progress report. Erika