COMP 4004 Lecture Notes - Lecture 3: Software Quality Assurance, Software Development Process, Symbolic Execution
Document Summary
Use cases are not equal, the customer prioritizes them: three general principles of qa, 1. Know what you are doing: understand what is being built, how it is being built and what it currently does, follow a software development process with, management structure (milestones, scheduling, reporting policies, tracking, 2. Incomplete, but practical: about formal correctness approaches, risks, assumes hypothetical environment/model that generally does not match real environment. It is impossible to test a program completely. Large state space: group similar states as there is too many to test. Large number of possible execution paths: subjectivity of specifications. Test inside and outside of each end of the interval and then one value in the middle. Large number of possible execution paths: for (int i = 0; i < n; i++) { if (a. get(i) == b. get(i)) { // do something else: number of potential execution paths is 2n.