ISCG 6413 Testing and Quality Assurance in ICT Semester 1 – 2017 Project Requirement Analysis, System Design, Test Planning and Design Department of Computer Science Submission Due: Monday 05-June-2017 (week 13) Weight: 40% Submission Method: 1. Upload your project to the drop box provided on Moodle by 3.00 pm on Monday 05-June-2017 (week 13). 2. Submit a hard copy of your project to the lecturer in class on Monday 05-June- 2017 (week 13) before 3.30 pm. Assignment Aim The aim of this project is to improve the understanding of students about the importance of testing through different phases of the software development life cycle (SDLC). The project starts from business requirements, then it moves through requirement analysis, system design, then to produce test plan and build different test cases for validation and verification. Instructions This is a group project of 5 students. The team should consists of: - A Project manager: responsible of organizing the activities and distributing the tasks among the team - A Communicator: to communicate with the client (the lecturer will act as a client for this project). The Project manager can play this role as well - The rest of the team: Business analyst(s), Test analyst(s), Designer(s), Developer(s) Background (Business Requirement)The Admin directorate in the department of Computer science would like a software application to monitor and report the academic activities regarding students, the courses, the results and the lecturers. The relationships between these main components are as follows: STUDENT (StudentID, Name, Status) LECTURER (LecturerID, Name, Status) COURSE (CourseID, Name, Status, LecturerID*) RESULT (ResultID, Semester, Year, Result, StudentID*, CourseID*) Any inquiry will be taken from these tables. Business Requirements BR1. Lecturer Component The Lecturer component provides the following functionalities: BR1.1 Create a new lecturer record, with lecturer ID, the lecturer Full Name and the current status of the lecturer (full-time, part-time, contract, on-leave). BR1.2 Search for a particular lecturer according to the ID and prints the lecturer's information and the courses that they are teaching as a report on the screen. Note: You need to design the report that combines information from the lecturers' table and the courses' table, but you do not need to worry about how the information will be extracted from the table (i.e. the SQL instructions). BR1.3 Modify the lecturer’s fields apart from the Lecturer ID. ID field cannot be changed once the lecturer’s record is created. BR2. Course Component The courses are categorized as Active (ongoing courses) or InActive (courses are not been taken this semester). The course component provides the following functionalities: BR2.1 Create a new course record, with course ID and course Name, status of the course (Active, In-Active) and the lecturer ID for this course (which represents the last or current lecturer for this course).BR2.1 Search for a particular course according to the ID or Name, and print the course's information (including the lecturer's name). If the course is active, then it prints a list with the students who are taking this course BR2.1 Modify the course’s fields apart from the Course ID. This cannot be changed once the course’s record is created. BR3. Student Component Students will be taking many courses during their study. The student component provides the following functionalities: BR3.1 Create a new student record, with student ID and student Name, and the status of the student (enrolled: student is still studying, finished: student has graduated, onleave: student suspended his study). BR3.2 Search for a particular student according to the ID or Name, and print the student's information including a list with the student’s courses and results. BR3.3 Modify the student’s fields apart from the Student ID. This cannot be changed once the student’s record is created. BR4. Result Component Although this component depends on the others to work, but this component contains the most activities among the others. It store the students’ results in the courses that they have already taken and are currently taking. It has the following functionalities: BR4.1 Enrol Student into a course: when a student is enrolled to a course, a record is created with the student ID and the course ID (to link the student to the course), the semester and year of enrolment (results and status fields are left blank until the student takes the exam). BR4.2 Update the student results: when a student finishes the exam for a course, the student record for this course will be updated with the exam. BR4.3 Print reports: BR4.3.1 Print a list of a student’s courses and results for a particular student (select a student to print). BR4.3.2 Print a list of students and their results for a particular course in a chosen semester and year (select a course, a year and a semester to print). BR4.3.3 In addition to the results, the report should show also the grade next to each mark according the following table.Tasks to Do 1) Requirement Analysis Develop the requirement analysis for each of the business requirement’s functionalities (what the system does to satisfy each of the business requirements). You may need to contact the client from time to time to make sure you are building the right software that satisfy the user’s needs. Use a proper numbering system in your functional requirements for traceability purposes. 2) Design Diagrams  Provide a High level design for the system and for each component.  Provide only one activity Diagram for one of the functionalities in each component (e.g. for Student component, provide the activity diagram for “Create new student record” or “Search for a student” or “Modify a student record”) It is recommended to draw all the activity diagrams for each component, as it helps in deciding the other testing activities. 3) Use Cases Diagrams Create use cases diagrams that describe the functionalities of each component in the system where the client can use them in the acceptance testing. 4) Data Directory Create the Data Directory for each component. You may use the following template. Hint: Use MS-Access to help Component Name: Students Field Name Data Type Domain (all ranges are inclusive) Minimum Length Primary Key Required Stud_ID Stud_Name . . . 5) Additional Business Rules Relying on the design documentation created above, list the additional Business Rules for the functionalities of each component. 6) User Interfaces Design the User Interfaces (forms) for the system components’ functionalities. 7) Test Conditions Using the testing design techniques, identify the test conditions for each of the component’s functionalities, and prioritize them in a table. Use Tagging system for traceability.8) Test Cases Design the test cases needed to perform component testing for each identified test conditions in the components. Use may the following template. Component Name: Test Scenario Test Case ID Requirement to test Business Requirement No. (Traceability) Test Data Input Expected Outcomes Tag covered Actual Outcomes (leave it blank)  Depending on your design you may group several test conditions in one test case.  Test scenario consists of many test cases. For example: for test scenario “create new course” many test cases (the valid and invalid) will come under this test scenario  If the test case requires to identify the steps on how to perform the test case, then use the following template to create the test case procedures (scripts): Test case step ID Test case(s) ID Steps 9) Test Data: Provide examples to the “loaded test data” for each of the components to be able to execute the test cases Hint: Use MS-Access to fill the tables of each components with the test data 10) Integration Testing After integrating all the components together we need to design test cases to perform integration testing. Identify only 10 test cases suitable for integration testing (Remember that at this stage you have finished the component testing). The following provides an example of integration testing case and you may use this template to create your 10 test cases Test Case ID Requirement to test BR No. Test Data Input Expected Outcomes Steps Actual Outcomes IT-01 Create new lecturer and assign an existing course to the lecturer BR1.1, BR2.1 Create a lecture: - Valid lecturer ID - Valid lecturer name - Valid lecturer status Link a course to lecturer: - Valid lecturer ID used above - Valid course ID A lecturer is created and assigned an existing course 1. Start the lecturer component 2. Goto “Create” option 3. Fill the form with valid input 4. Click “create” 5. Start the course component 6. Goto “Modify” option 7. Select the course 8. choose the lecturer ID/name created above 9. click “Apply” 10. confirm either through the lecturer (leave it blank)information or the course information [You should replace valid lecturer ID, etc, by actual values, which will depend on the design and test data] [These are tentative steps, the actual steps will depend on the design]Marking Schedule Part Available Marks Actual Marks Component design and testing (232) - BR1 58 - BR2 58 - BR3 58 - BR4 58 Requirement Analysis 10 Activity Diagrams 5 Data Dictionary 5 Addition Business Rules 8 User Interfaces 5 Test Conditions 10 Test Cases 10 Test Data 5 High Level Design Diagrams 12 Use Cases Design 20 Proper test cases for integration testing 10 Report Presentation 8 Communication 8 Total: 290 To do your best on this assignment and improve your grades you could; • Clarify doubts with your lecturer • Visit Te Pune Ako or Maia for learning advice and support • Visit the Centre for Pacific Development and Support • Contact the USU Advocate for independent advice • For more information go to www.usu.co.nz