"Despite the exam boards' efforts, we think this year's non-exam assessment in GCSE computer science will be compromised.
"We think there is a real - and significant - risk that, left unchecked, results in next summer's computer science GCSEs will not provide a fair reflection of every student's knowledge, skills and understanding.
"We also think that the likely extent of malpractice may well compromise exam boards' ability to set grade boundaries and issue results on time. Similar problems are likely to arise in future years."
Due to the ease with which students are able to cheat online, the regulator believes that it may no longer be possible to include coursework marks in a student’s final grade.
Instead, students would be asked to continue completing the assessments, but would not receive any credit for it.
Simon Peyton Jones, of the British Computing Society, said: “[We have] raised with Ofqual some serious concerns about the non-examined assessment regime for GCSE Computer Science, and are pleased to see the focused attention on the problem that has resulted.
Before performing a test, you need to decide what data you are going to include in your test case. It is not normally possible to perform tests with every single possible piece of data. So, instead the developers will choose from a limited range of data such as:
- valid - the most obvious or common data that should work
- valid extreme - unusual, extreme or unexpected data, eg the highest and lowest (data that tests the limits but that should work)
- invalid - data that should definitely fail
- invalid extreme - data that is at the edge of failure and is nearly acceptable
- erroneous - data that is the wrong data type
Tests should find that the program works as expected. Obvious input data should confirm that the software works as expected. Extreme test data will be chosen to test what breaks the system.
For example, if you were developing a number-guessing game, you might have a unit of code that asks the user to choose a number in a specific range, eg "Choose a number between 1 and 10". To test this unit, you could try a whole range of inputs to see what happens:
3, 4.5, three, -99, 10.00001