Contact.java | ||
ContactService.java | ||
ContactServiceTest.java | ||
ContactTest.java | ||
README.md | ||
Summary and Reflections Report.docx |
CS-320: Software Testing and Quality Assurance Portfolio
Overview
This repository contains selected files from my projects in the CS-320 course at Southern New Hampshire University, focusing on software testing, automation, and quality assurance. Included are key components from Project One and Project Two which demonstrate my ability to create unit tests, analyze various software testing approaches based on requirements, and apply appropriate testing strategies.
Contents
- Project One:
Contact.java
ContactService.java
ContactTest.java
ContactServiceTest.java
- Project Two:
Summary and Reflections Report.docx
Reflections
Ensuring Functional and Secure Software
Functional and secure software is the cornerstone of reliable and trustworthy technology solutions. To ensure this, I emphasize comprehensive unit testing, which involves meticulously checking each component for expected behavior under various scenarios. Additionally, I prioritize security from the design phase, incorporating best practices such as input validation, error handling, and adhering to the principle of least privilege. Regular code reviews and staying updated with security trends are also part of my strategy to maintain and enhance software security.
Interpreting and Incorporating User Needs
Understanding user needs is crucial for successful software development. My approach involves active communication with stakeholders, gathering detailed requirements, and empathetically considering the user perspective. I can employ methods like user stories and use cases to clearly define and prioritize functionalities. Iterative development, coupled with regular user feedback, ensures that the final product aligns well with the users' expectations and solves their problems effectively.
Approach to Designing Software
Designing software is a balance between functionality, usability, performance, and maintainability. I begin with a clear understanding of the requirements and objectives. This is followed by creating a high-level design, outlining the software architecture and technologies to be used. I advocate for a modular approach, ensuring each component is designed to perform a specific function. This not only simplifies development and testing but also enhances the scalability and maintainability of the software. Regular refactoring and adherence to coding standards are integral to my design process, ensuring the software remains robust and adaptable to future changes.