SE 3800 Final Exam Review
Fall, 2022
Review Questions
- See the review questions for exam 1
- Note 5: Beyond functional testing
- Reliability, linear vs. non-linear systems
- Regression set minimalization
- Qualities of good tests
- System vs. acceptance vs. functional testing
- What is TDD? What is BDD? How do they differ?
- Which would be the basis for acceptance tests, TDD or BDD?
- Why write automated tests
- Acceptance tests in Cucumber: Given/And/When/Then, step
definitions
- FIRST criteria for unit tests
- What is the benefit of Cucumber?
- What is the danger of Cucumber?
- What language is used for step definitions in Cucumber?
- Why is the bottom of the test pyramid larger than the top?
- Regular Expressions
- know: ab, a|b, [ab-e], [^0-9], *, +, \w, \d, \s, ^, $
- Give regular expressions for
- room numbers at MSOE (with
building identifier, like L331, L-331, and L 331)
- strings over 0s and 1s with any number of
1s but an even number of 0s
- Java-style strings
- Explain how regular expressions are used in Cucumber and why
they are important.
- Note 6
- Technique for GUI testing in Java
- Note 6b
- Ch. 2: ScrumMasters, Rock Stars, Scrum Teams
- Describe a way in which a ScrumMaster should be a servant-leader.
- What are rock stars on a development team, and what is a better
model?
- If every team is to have a ScrumMaster, how does team maturity
affect the relationship between teams and ScrumMasters?
- Discuss the elements of building effective teams
- Note 8: Alternative Processes
- Limitations of Scrum
- Core requirements for process: communication, planning,
modeling, construction, deployment
- Waterfall model (including advantages, disadvantages)
- Iterative model (including advantages, disadvantages)
- Rational Unified Process (basic structure)
- Agile manifesto
- XP, FDD, Kanban
- Scaled Agile (SAFe)
- Model-based development: goals, advantages, disadvantages,
limitations
- Note 12: Eithics, Software Quality
- Issues at Volkswagen, Chrysler
- Primary, secondary principles as discussed in class; example:
- Primary: Software engineers shall act consistently with the
public interest
- Secondary: Accept full responsibility for work, moderate
interests of employer against public, approve software only if
it's safe and has been tested, disclose potential harms to the public
- Know the basic topics of the 7 primary principles
- Of the secondary principles I covered in class, be able to
explain them (to the extent explained in class) and be able to
associate them with the primary principles
- Project failures, root cause analysis
- DO 178C, traceability, software levels
- CMMI levels
- if covered: Proving system correctness: goals, method,
advantages, limitations
- Reports: be able to give a primary point from your book/chapter and
a book presented by another group
Like the midterm, expect a mix of MC (including other select-the-box
question types), fill-in-the-blank, and short essay.
On essay questions (which usually expect you to write 2-4 sentences), I
do not grade for grammar, but when answers are too vague and have a lot of
grammatical mistakes then it can be very difficult for me to determine
what you were saying. It can be a good idea to write complete sentences to
keep that from happening. It is also good to use key terminology from the
class such as "verification" and "quality assurance". A common mistake is
to just repeat the words of the question in your answer; that's fine, but
be sure you provide additional information to show me what you have learned.