Skip to content

SE Exam 1 Answer Templates ​

软件工程考试答题模板

本课程考试 ≠ 背定义
本课程考试 = 场景分析 + 对比 + 设计方案

👉 看到题目 → 套模板 → 填概念


🧩 TEMPLATE 1 ​

Compare Process Models ​

对比开发模型 ​

❓ 常见问法 ​

  • Compare Waterfall vs Agile
  • When should Spiral be used?
  • Advantages & disadvantages of Agile

✅ 答题结构 ​

1️⃣ Core Idea ​

Waterfall is sequential and rigid. Agile is iterative and adaptive.

瀑布模型顺序执行;敏捷开发迭代适应变化。

2️⃣ Strengths ​

Waterfall works well when requirements are stable.

Agile supports changing requirements and fast feedback.

3️⃣ Weaknesses ​

Waterfall is inflexible and detects defects late.

Agile can reduce predictability and requires customer involvement.

4️⃣ When to use ​

Use Waterfall for regulated systems. Use Agile for evolving products.


⭐ 高分句 ​

Agile embraces uncertainty, while waterfall assumes stability.


❌ 常见失分点 ​

❌ 只写定义
❌ 没写适用场景


🧩 TEMPLATE 2 ​

Risk Question Template ​

风险分析题 ​

❓ 常见问法 ​

  • Identify a risk
  • Describe uncertainty
  • Suggest measurement
  • How to mitigate risk

👉 这几乎是必考题型


✅ 答题结构 ​

1️⃣ Risk ​

A risk is that system performance may degrade under heavy load.

风险:系统在高负载下可能性能下降。

2️⃣ Uncertainty ​

We do not know how many users the system can support.

不确定性:系统最大承载用户数未知。

3️⃣ Measurement ​

Measure response time and throughput under stress testing.

通过压力测试测量响应时间与吞吐量。

4️⃣ Mitigation ​

Optimize database queries and add load balancing.

优化数据库并增加负载均衡。


⭐ 高分句 ​

Measurement reduces uncertainty and enables informed decisions.


❌ 常见失分点 ​

❌ 没写 measurement
❌ 写 solution 但没说明 uncertainty


🧩 TEMPLATE 3 ​

QA vs Testing vs Other Methods ​

QA 与测试区别 ​

❓ 常见问法 ​

  • Difference between QA and testing
  • Why testing alone is insufficient
  • When to use code review

✅ 答题结构 ​

QA ​

QA focuses on preventing defects through process improvement.

QA通过流程改进预防缺陷。

Testing ​

Testing executes the program to detect defects.

测试通过运行程序发现缺陷。

Why testing alone is insufficient ​

Testing cannot evaluate maintainability or detect rare execution bugs.

测试无法评估可维护性,也难以发现罕见路径错误。

Complementary methods ​

Code review and static analysis help detect design flaws.

代码评审与静态分析可发现设计问题。


⭐ 高分句 ​

Testing finds defects; QA prevents them.


❌ 常见失分点 ​

❌ 写成 QA = testing
❌ 忘记说明互补关系


🧩 TEMPLATE 4 ​

Testing Strategy Design ​

测试设计题 ​

❓ 常见问法 ​

  • Design test cases
  • How would you test this system?
  • What inputs should be tested?

✅ 答题结构 ​

1️⃣ Inputs ​

Include normal, boundary, and invalid inputs.

包括正常输入、边界值与非法输入。

Also consider:

  • environment variables
  • network failures
  • concurrency timing

还应考虑环境变量、网络异常与并发调度。

2️⃣ Oracle ​

Use expected output, invariants, or no-crash criteria.

可使用预期输出、不变量或“不崩溃”作为判定标准。

3️⃣ Coverage ​

Ensure branch coverage for decision logic.

确保分支覆盖。

4️⃣ Special Cases ​

Test high-risk scenarios and common user behavior.

测试高风险场景与常见用户行为。


⭐ 高分句 ​

Testing is sampling the input space, so high-risk inputs deserve priority.


❌ 常见失分点 ​

❌ 只写正常输入
❌ 没写 oracle


🧩 TEMPLATE 5 ​

Coverage & Mutation Testing ​

覆盖率与变异测试 ​

❓ 常见问法 ​

  • Why is 100% coverage insufficient?
  • Difference between line and branch coverage
  • What is mutation testing?

✅ 答题结构 ​

Coverage meaning ​

Coverage measures how much code is executed.

覆盖率衡量测试执行范围。

Limitations ​

100% coverage does not guarantee correctness.

100%覆盖率不保证正确性。

Branch vs Line ​

Branch coverage ensures both true and false paths execute.

分支覆盖要求真假路径均执行。

Mutation testing ​

Mutation testing evaluates test effectiveness by inserting faults.

变异测试通过引入缺陷评估测试质量。


⭐ 高分句 ​

Coverage increases confidence but does not ensure correctness.


❌ 常见失分点 ​

❌ 写覆盖率=正确
❌ 忘记branch coverage更强


🧩 TEMPLATE 6 ​

Static vs Dynamic Analysis ​

静态分析 vs 动态分析 ​

❓ 常见问法 ​

  • Compare static and dynamic analysis
  • When is static analysis needed?

✅ 答题结构 ​

Static Analysis ​

Analyzes code without execution and reasons about all possible paths.

静态分析不运行程序,推理所有可能路径。

Dynamic Analysis ​

Runs instrumented program to observe runtime behavior.

动态分析运行程序观察运行时行为。

Strengths ​

Static analysis finds hidden vulnerabilities and rare path bugs.

静态分析可发现罕见路径漏洞。

Dynamic analysis reveals performance and runtime issues.

动态分析发现性能与运行时问题。

Limitations ​

Static → false positives
Dynamic → incomplete coverage

静态可能误报;动态覆盖不完整。


⭐ 高分句 ​

Static analysis reasons about all executions; dynamic analysis observes actual executions.


❌ 常见失分点 ​

❌ 写成 static = compile time only
❌ 忘记优缺点对比


🧩 TEMPLATE 7 ​

Code Review Benefits ​

代码评审作用 ​

❓ 常见问法 ​

  • Why code review is important?
  • Benefits beyond bug detection

✅ 答题结构 ​

Benefits ​

  • detect defects early
  • improve readability & design
  • knowledge sharing
  • increase transparency

Why beyond testing ​

Testing cannot evaluate design quality.

测试无法评估设计质量。


⭐ 高分句 ​

A second pair of eyes improves both code quality and team knowledge.


❌ 常见失分点 ​

❌ 只写找bug
❌ 忘记知识共享


⭐ FINAL EXAM STRATEGY ​

看到题目先判断:

✔ 对比题
✔ 风险题
✔ 测试设计
✔ QA/Testing区别
✔ 覆盖率 & metrics
✔ 静态 vs 动态

👉 套模板 → 加关键词 → 得分