Test and validation of Code


Programming & Embedded Systems

Skill owner: Dr Stephen Pennock /Dr Jonathan Graham-Harper-Cater

Purpose: Validating that code works as originally intended is critical in ensuring that products and projects are safe and effective. The ability to design a set of test criteria and validate that code meets said criteria is a critical skill for any software developer. It is important that misunderstandings, or misalignment of intent are identified as soon as possible - when it will be cheapest and easiest to correct.

Requirements: To claim this skill, you must:

  1. Provide a brief, clear outline of the code’s purpose and functionality in 50-100 words. This should describe the problem the code solves and the expected behaviour in a real-world scenario.
  2. Provide a code test specification, with a table of tests forming the rows, and columns that include:
    1. Test Case Identifier: Each test case must have a unique identifier or name (e.g., A1, BoundaryCheck_01). Ensure the naming convention is consistent across all test cases.
    2. Test Case Purpose: Provide a short description (20-50 words) of the purpose of the test, explaining why it is important and what aspect of the code it verifies (e.g., functionality, boundary conditions, edge cases, error handling).
    3. Test Steps: Outline the precise steps required to perform the test. Steps should be clear enough that another developer can follow them without ambiguity. If manual steps are required (e.g., input via a GUI), they must be specified.
    4. Input Data /Conditions: Specify any input data, files, or conditions that are required to perform the test. This includes sample data, configurations, and any setup needed for the test environment.
    5. Expected Results: Describe the expected output or behaviour from the test. Where possible, provide absolute or quantifiable results (e.g., specific return values, data structures, or error messages).
    6. Pass /Fail Criteria, Include a column for the test outcome. If it fails, detail what went wrong and, if possible, suggest why it failed.
  3. Demonstrate Comprehensive Testing: Ensure that you cover a range of test cases, including boundary, edge cases, exceptional scenarios (e.g., inputs that are out of range, incorrect file formats, or network errors), and normal operation.

Skills Framework Levels

The purpose of this Skills Framework is to evidence your acquisition of important engineering skills. Thus, it combines a combination of technical and transferable skills in eleven broad categories. It is designed so that the final portfolio can be used as a showcase of your skills attainment.

To reflect the differing levels of skills attainment, each of the skills in this framework can be demonstrated at three different levels:
Knowledge: Achieved when you follow instructions to demonstrate the skill.
Application: Achieved when you demonstrate the skill at request without instructions, and you have reflected on the skill's success. A critical reflection demonstrates your understanding of the skill by highlighting what went well and what could be improved (50-100 words).
Synthesis: Achieved when you have demonstrated the skill without guidance or instruction for a specific project, justifying your choice of using the skill and you have reflected on the skill's success (see above). Your justification should include an explanation of why you have used the skill to contribute towards a defined objective for a whole system / project. The choice of the skill must be supported by evidence showing that it is the best solution compared to other options. This allows you to demonstrate your understanding of when this skill is appropriate and how it fits within a wider context (50-100 words). There is also an expectation that you are demonstrating this skill effectively to achieve synthesis.

Each skill will have specific requirements for the skill to be satisfactorily endorsed. In addition, there are overarching requirements for all pages of your ePortfolio. If any page does not satisfy these requirements, the page will not be considered in any further detail.

  1. The page comprises an introduction that summarises all the digital artefacts on the page.
  2. Every digital artefact (e.g. photos, figures, videos and other non-text items) must clearly show the username of everyone contributing to the work in such a way as to authenticate the intellectual ownership of the artefact.
  3. All the skills being claimed are arranged below a 'Skills Mapping' block at the bottom of the page, as per the template.
  4. n
  5. Within the annotation block you have clearly specified what skill level you are claiming and why.</li>
  6. The page is of sufficient quality to present to people external to the University.
  7. The page has fewer than 5 errors such as spelling mistakes or other typographical errors.
  8. Any evidence in audio format must be recorded in a quiet, stable environment, with clear speech at a moderate pace, to ensure clarity and comprehensibility.
  9. </ol> # Labs Demonstrating This Skill