This project repository is used to showcase and demonstrate proficency earned while taking the CS320: Software Test, Automation QA course at SNHU. For this project, I was tasked with developing the Contact Service features for a mobile application, followed by developing unit tests to ensure all code met the clients requirements. I was also asked to create documentation with a Summary and Reflection of the development process I underwent for this project.
To ensure my software is functional, I write comprehensive unit tests using JUnit to validate expected behaviors and catch regressions. I test both valid and invalid inputs, edge cases, and error handling to confirm the system behaves correctly under various conditions. To ensure security, I enforce input validation (For example, length checks and null checks) and avoid exposing internal logic unnecessarily. This prevents common issues such as null pointer exceptions and malformed data being stored or processed.
I start by analyzing the requirements documentation and identifying the key features users expect. I translate these needs into specific functionality, such as limiting field lengths or enabling updates to contact information. I pay attention to constraints and expectations, then design code that respects those boundaries. I also use feedback to ensure the program aligns with practical use cases.
My approach to software design begins with breaking down the problem into modular components. I define clear responsibilities for each class or method and prioritize simplicity and reusability. I typically write out class structures and plan test coverage before coding. This helps reduce complexity and ensures each piece of the application is testable and maintainable. I also follow object-oriented principles to structure the code logically and consistently.