what is defensive design
a method of designing a program so that it functions properly and doesn’t crash
what ways do programmers try to protect their programs through defensive design
anticipate how users might misuse their program
ensure their code is well maintained
reduce the number of errors in code through testing
what is input validation
checking if data meets certain criteria before passing it into the program
what is range check
checks the data is within a specified range
what is presence check
checks the data has actually been entered
what is a format check
checks the data has the correct format
what is a look-up table
checks the data against a table of acceptable values
what is length check
checks the data is the correct length
what is authentication
a process for checking the identity of the user
what is a syntax error
an grammatical error in code for the programming language
what is a logic error
an error made by the programmer where the program will still run but will output an unexpected result
what are the 2 main types of testing
iterative testing
terminal testing
what is iterative testing
repeated testing of a program during the development process
what is terminal testing
testing the whole program at the end of the development process
what are the categories your test data should fall into
normal data
boundary data
invalid data
errroneous data
what is normal data
things that a user is likely to input into the program
what is boundary data
values that limit of what the program should be able to handle
what is invalid data
test data with a correct data type that a program should reject
what is erroneous data
inputs with an incorrect data type that should be rejected by the program
what is a high level programming language
a programming language that is easy for humans to understand
what is a low level programming language
a programming language that are trickier for humans to read but closer to what a CPU would actually use
why are high level programming languages useful
they can work for many different machines and processors
code is easy to understand, read and modify
what are some downsides of high level programming language
must be translated before a computer is able to understand it
don’t have much control over what the CPU actually does so programs will be less memory efficient and slower
what is a downside of low level programming language
usually only work for one type of machine
code is difficult to read, understand and modify
what is a positive of low level programming languages
does not need to be translated
can control exactly what the CPU doese and how it used memory so programs will be more memory efficient and faster
what are the two types of translator
compliers and interpreters
what is a compiler
a programming tool to translate all source code directly into machine code and creates one executable file
what is an interpreter
a translator used to run high level source code line by line without needing to create an executable file
what does IDE stand for
integrated development environment
what is an IDE
a piece of software that provides features to help a programmer to develop their program
what are some common features of an IDE
a translator
auto-documentation to help with the maintenance of programs
a graphical user interface builder
what do graphical user interface builders do
help the programmer to design a user interface by building it up graphically rather than having to design it using source code