Assignment
Scenario
You are a software engineer for Grand Strand Systems, a software engineering company that focuses on developing and testing back-end services. You recently completed an assignment in which you developed a mobile application for a customer and delivered the contact, task, and appointment services (Project One).
You will now construct a summary and reflections report to be submitted to your supervisor that summarizes your unit testing approach, your experience writing the JUnit tests, and the overall quality of your JUnit tests. This report will also highlight testing techniques and the mindset you adopted while working on this project.
Directions
Summary and Reflections Report
Your supervisor has asked that you submit a follow-up summary and reflections report to explain how you analyzed various approaches to software testing based on requirements and applied appropriate testing strategies to meet requirements while developing the mobile application for the customer. This report should be based on your experience completing Project One. You must complete the following:
A. Summary
a. Describe your unit testing approach for each of the three features.
i. To what extent was your approach aligned to the software requirements? Support your claims with specific evidence.
ii. Defend the overall quality of your JUnit tests. In other words, how do you know your JUnit tests were effective based on the coverage percentage?
b. Describe your experience writing the JUnit tests.
i. How did you ensure that your code was technically sound? Cite specific lines of code from your tests to illustrate.
ii. How did you ensure that your code was efficient? Cite specific lines of code from your tests to illustrate.
B. Reflection
a. Testing Techniques
i. What were the software testing techniques that you employed in this project? Describe their characteristics using specific details.
ii. What are the other software testing techniques that you did not use for this project? Describe their characteristics using specific details.
iii. For each of the techniques you discussed, explain the practical uses and implications for different software development projects and situations.
b. Mindset
i. Assess the mindset that you adopted working on this project. In acting as a software tester, to what extent did you employ caution? Why was it important to appreciate the complexity and interrelationships of the code you were testing? Provide specific examples to illustrate your claims.
ii. Assess the ways you tried to limit bias in your review of the code. On the software developer side, can you imagine that bias would be a concern if you were responsible for testing your own code? Provide specific examples to illustrate your claims.
iii. Finally, evaluate the importance of being disciplined in your commitment to quality as a software engineering professional. Why is it important not to cut corners when it comes to writing or testing code? How do you plan to avoid technical debt as a practitioner in the field? Provide specific examples to illustrate your claims.