Developing Testing Plans for Programming Projects Without AI Tools
Example developed based on CLOs from: CS 162 – Introduction to Computer Science II.
Purpose
This assignment challenges students to design and develop comprehensive testing plans for programming projects manually. By requiring detailed documentation, thoughtful test case design, and careful execution, the assignment emphasizes critical thinking and creativity in identifying potential issues and ensuring robust software functionality. Students will also evaluate the relevance and effectiveness of their test plans through reflection and peer feedback, encouraging them to refine their understanding of software testing principles and processes.
This is a human-centric assignment as it leverages students’ ability to analyze, evaluate, and create—higher-order cognitive skills outlined in Bloom’s Taxonomy. By focusing on manual testing, students cultivate attention to detail and develop a deep understanding of the decision-making process involved in selecting and designing test cases. This hands-on approach builds problem-solving confidence and ensures that students can adapt their testing strategies to complex, real-world challenges, fostering skills that go beyond what AI tools can provide.
Learning Outcomes
- Develop comprehensive testing plans for programming projects.
- Create test data sets covering different functionalities and edge cases.
- Reflect on the challenges and importance of thorough testing in software development.
Instructions
Format (Final Deliverable)
- Testing Plan Development
- Define a collection of integration tests to evaluate interactions between different components or modules.
- Document each test case manually, including:
- Test description
- Expected input and output
- Testing method (manual or automated).
- Include annotations explaining why specific testing methods were chosen, emphasizing human reasoning and problem-solving.
- Test Data Generation
- Create test data sets for various input types, including boundary tests, user acceptance tests, and invalid inputs.
- Write a short explanation for each data set describing its relevance and how it covers potential edge cases.
- Implementation and Results
- Execute the test cases and document the results, noting any failed tests and potential issues.
- Include screenshots of your test runs and code logs as evidence of manual testing.
- Reflect on areas for improvement and propose adjustments to enhance the testing plan.
- Reflection
- Write a 300-word reflection addressing:
- The challenges faced in developing and executing the testing plan without AI tools.
- Insights gained about the importance of comprehensive testing.
- The value of manual testing in understanding software behavior.
- Write a 300-word reflection addressing:
- Academic Integrity Statement
- Submit a signed written statement affirming that no AI tools were used to complete the assignment.
- If collaboration occurred, include details of the contributions made by each group member.
- Peer Review
- Participate in a peer review session to evaluate a classmate’s testing plan.
- Provide constructive feedback on their test cases, test data sets, and implementation results.
- Document how you incorporated peer feedback into your final submission.
Grading Criteria
- Completeness and relevance of the testing plan (40%)
- Accuracy and coverage of test data sets (25%)
- Documentation and analysis of testing results, with supporting evidence (20%)
- Reflection on learning and peer feedback integration (10%)
- Inclusion of the academic integrity statement (5%)
Resources
- Writing Center consultations for organizing and refining testing plans.
- Instructor-provided examples of test cases and testing methods.
- Programming resources, such as GeeksforGeeks Testing Guide, for additional reference.