Reference no: EM132725582
1 Introduction
The purpose of this document is to make clear how you will be examined, and what is required of you in the course. This course essentially consists of four components:
1. A series of flipped lectures on aspects of software testing;
2. A TDD exercise that should be done in week 46. Instead of having a lab session the lab assistants will be available online that week to help with the lab.
3. work on test design;
The exam is graded U,3,4,5. The group work and the project is pass or fail.
If you only learn one thing about testing during this course, then you will fail, but if you learn the following idea "You should have a reason for each test. For each test you should be able to explain what you are trying to test for." then you will at least understand why we study testing. When we examine you, and when you produce tests, we expect you to be able to explain the reasons behind your tests.
Assignment Work
The idea of the assignment is to pick some python library, and write some test cases for it. You will have to write both black-box and white-box tests and tests that provide coverage of selected parts of the code. The final deliverable is the written report.
Using your chosen library, your tasks are as follows:
1. Black box testing of the API. You are to produce test cases that cover the API.
2. White box testing. In agreement with your lab assistant you are to pick some areas of code in your library to cover. Together with the python library you are to produce test cases that not only provide statement coverage but some sort of path coverage.
3. For at least one function or method of the library you should construct a control flow graph and apply the coverage criteria (including prime paths) that have been covered in the course to the code.
4. You need to document and motivate your design of the test cases in a written report.
Schedule for the project
In week 46 you will meet virtually your assigned lab assistant; before the meeting you should pick a python library. You must agree with your lab assistant that you can work on that library. We have to decide if the library is too trivial or too complicated. If you are having trouble finding a good library to test then you should discuss with your lab assistant.
In week 48 you should have a brief meeting with your assigned lab assistant to discuss progress and show a draft report.
In week 50 or in the new year, you again meet with your lab assistant to discuss your draft of your report. You must submit a draft of your report to your assistant before your meeting.
This should be submitted on portal.
What should your report contain
1. Description of the python library with examples of use. This should be written (in English) for somebody who has not read the documentation.
2. Outline of your testing strategy, describing which parts of the library you have performed black box and white box testing on.
3. A control flow graph for at least one function, with a description of how your tests for this function are related to the graph.
4. Documentation of all test cases. When documenting your test cases you have to document what your tests are designed to do. This can be done in comments in your code, for each test case or group of test cases.
Tasks to be done:
1. Write the testcases for these functions 18 testcases for each function.
2. Whereas these 18 testcases should be divided into 2 parts as black box testing and white box testing.
3. Black box testing should cover the API
4. White box testing should be done along with the coverage level for branch/line etc.
5. Overall we should have total number of testcases between 30-50 minimum.
6. Testcases should contains as following:
a. The test cases have to be put in 2 directories as black box testcases and other one is white box testcases.
b. It is best if files have descriptive names as per the testcases name
c. We should try to standardize what we have in a file, test suites, tests for individual functions etc.
7. Documentations should be done after this which suppose to have the following details in report:
a. Description of the python library with examples of use. This should be written (in English) for somebody who has not read the documentation.
b. Outline of your testing strategy, describing which parts of the library you have performed black box and white box testing on.
c. A control flow graph for at least one function, with a description of how your tests for this function are related to the graph.
d. Documentation of all test cases. When documenting your test cases you have to document what your tests are designed to do. This can be done in comments in your code, for each test case or group of test cases.
e. Mail image attached for the clear idea about the task.
Attachment:- requirements instructions.rar