The midterm exam is on Monday, October 10, in class. You get 50 minutes to answer all the questions and get 50 points. This is a closed book, closed notes exam. No cheat-sheet, computers, or any other electronic devices are allowed. Use the following study guide to prepare for the exam.
DISCLAIMER:It is possible that something is missing in the description below, but that should not prevent you from answering questions on a topic that was discussed in class.
Material covered until and including October 5 (Wednesday's lecture) is included in the exam. Refer to the following materials:
Practice answering the questions that you attempted in Canvas, and also the paper quiz you took in class. Use the quizzes and the JUnit assignment as a rough guideline for what type of questions to expect. You will be tested on your knowledge of concepts and how you use them.
What is software, what is software engineering, nature of software, types of software, stakeholders, software quality attributes, qualities of interest to various stakeholders, tradeoffs between quality attributes, projects, risks, complexity issues.
Key ideas and characteristics of each life cycle model, limitations, teams, characteristics of agile techniques, especially Scrum
What it is, why it is done, when it is done, different ways of doing it, roles in inspection teams, using checklists
General concepts, definitions of fault, error, failure, black-box and white-box testing, levels (unit, integration, system, acceptance), test case, test input, test oracle, fault categories, test driven development
In black-box testing: input domains, equivalence class partitioning, boundary value analysis
In white-box testing: control flow graphs, node/edges, coverage of statements (nodes) and branches (edges), paths, measuring coverage for a test input, adding new test cases to cover remaining elements
JUnit: write JUnit test methods
Domain analysis, starting points for software projects, problem definition and scope, Types of requirements (functional, and non-functional with three categories), verifiable/testable, consistent, and unambiguous requirements
User story template with three parts, acceptance criteria, size estimation, definition of done.
This is a non-exhaustive list of the types of questions that you may get on the exam. It is possible that not all types are eventually included.