Written test for applicants for verification/QC role. Tests effective use of Python and CocoTB Framework
This test requires an understanding of
- Python3
- cocotb framework https://docs.cocotb.org/
- Testing methodologies and lifecycle https://en.wikipedia.org/wiki/Test-driven_development ,https://www.guru99.com/software-testing-life-cycle.html, https://en.wikipedia.org/wiki/Software_testing
For the design specification in design_spec.pdf :
- Write a test specification.
- Using cocotb framework implement any 2 testcases from the specification, atleast one test should be a datapath (in to out) test.
Note A sample design Implementation is available at https://github.com/dyumnin/NCGPythonCocotb/blob/main/rtl/sumofN.v You can use this to verify your test environment.
- Clone this repository.
- Create your testspecification and and testcase list and upload it to the doc folder
- Setup cocotb environment and implement the testcases in the tb folder.
- Create a pull request with the changes above.
- Correctness and completeness of the testplan.
- Error free Python code.
- Correctness of the testcase implementation.
The coding portion of this test takes less than an hour for a practitioner in the field. A fresher in the field will require additional time to understand the concepts. You are expected to complete the test within 2 weeks from the date you were invited to take the test. In case you need extra time send a message.
In case of any doubts/issues please raise a ticket at https://github.com/dyumnin/NCGPythonCocotb/issues
Answer to some of the frequently asked question can be found in FAQ.md
- Information related to cocotb docs.cocotb.org/
- Starting point for learning about software testing. https://en.wikipedia.org/wiki/Software_testing
- https://www.softwaretestinghelp.com/how-to-write-effective-test-cases-test-cases-procedures-and-definitions/