2024~2025秋冬 软件质量保证与测试课程经验与总结

这门课挂名在ZJU的万zy老师名下,但实际是浙大网新来的赵xq老师授课。上课15节,最后1节随堂期末考。

上课体验

这门课的讲解是“总-分”的结构,先介绍软测概念,软测的一些基础名词、一些概念对(比如“软件测试”和“质量保证”的手段——目的概念对),再展开详述各部分。然后第二部分自动化测试与非功能测试不考,但大作业要用,第一三部分会考。
zxq讲的比较抽象,平时的课很难听进去,主要还是靠自己理解吧。问他问题答的普遍很傲慢,相处并不愉快的一位老师。
这课也是ZJU软工三连之一,总之软工学子命途多舛啊。

【出分后update】91/100,给分倒是还不错,暂时不骂了(笑)。

期末考

课程无期中考、小测,仅期末(最后一周的课)随堂考试。

回忆卷

2024-2025秋冬期末考,2024.12.27随堂,开卷,可以携带打印资料,用英语作答

Question 1[30 marks]

Please explain the following concepts. [5 marks each].

1.McCall’s Quality Model

2.Exit Criteria

3.Cyclomatic Complexity

4.Burn Down Chart

5.Full-Function Commit Team

6.Beta Testing

Question 2[30 marks]

Short answer question[5 marks each].(只记得题干大意)

1.In the Requirements Analysis phase, the main tasks of the QA team are to answer two key questions. What are these questions?

2.Unlike the definition of Testability in the Quality Model, as a software quality factor the concept of Testability has a more precise definition in software measurement. What is this definition?

3.第一句话讲了Degradation是什么. To ensure that the existing software functionalities have not been impacted by the new code changes, a special testing is required. What is this special testing? And which types of software modifications can be ensured by this special testing?

4.What’s the main difference between the Alpha Testing and Beta Testing?

5.第一句话讲了PSPI 是Scrum里的什么什么概念. Among the various characteristics of PSPI, being FULLY TESTED is one of the most critical. What does it mean to be FULLY TESTED?

6.How to understand that unit testing can lower the testing threshold as possible?

Question 3 [10 marks]

Please analysis the reason why the Daily Defect Discovery Follows a Rayleigh Distribution? And for quantifying testing progress, what role does Rayleigh Distribution in defect discovery play?

Question 4 [10 marks]

There are many best practices in Agile software development process (Agile SDP). In these best practices, TDD (Test-Driven Development) and Pair programming (introduced by XP) are two that directly related to unit testing. Please introduce the definitions of these two best practices, provide explanations for each definition, and analyze the differences in the application patterns of unit testing practice. (只记得题干大意)

Question 5 [10 marks]

Test Case design

Scenario:
Given a day in the format of day-month-year, you need to find the next date for the given date. Perform boundary value analysis and equivalence-class testing for this.

Question 6 [10 marks]

Test Case design

Scenario:
Given the following Python-like code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
def complex_process_data(a, b):
result = 0
if a > 0 and b > 0:
if a % 2 == 0:
result = a + b
else:
result = (a + b) * 2
elif a < 0 and b < 0:
if abs(a) > abs(b):
result = a * b
else:
result = a + b
else:
if a == 0:
result = b ** 2
elif b == 0:
result = a ** 2
else:
result = a - b
return result

Task:
Please design a solution with a set of test cases to meet branch coverage.

复习建议

听第一节课、最后两节课智云。尤其是最后一节智云,会划重点。
ppt一定要打印全,记得打印注释!(zxq原话:不然考场上中翻英)
其实他智云倒数第二节课提醒了,但笔者差点忘记打印了,考前最后半小时补打了注释。
考试前检查资料是否齐全,笔者装订的太厚有几页ppt掉了导致有道题只能自己凭印象乱写。
考试自由落座,不要坐最后一排或过道,zxq会站在你边上盯着你的卷子看,简直就是噩梦。然后手速快点吧,差点抄不完。
附一个学长推荐的QA学习网站,个人感觉对考试帮助不大(一定程度上可以串起一些概念),但真想学测试可以参考这个路径:https://roadmap.sh/qa

大作业

大作业是按老师发的要求,对自己在其他课程中写的系统进行测试。组队后写测试计划、测试样例、维护buglist、测试报告ppt。老师会给模板,其他的去github上搜索前辈资料参考。我们组是考完计网之后才开始写,一天半速通的。