现代软件工程讲义 0 课程概述

这门课的教学方案在这里. 根据学生和学校的具体情况, 可以进行调整。 

师生关系

首先要明确的是, 在这门课中的师生关系是什么样的.  大学目前的师生关系是怎样, 什么样才是理想的师生关系?  我们先看一些例子:

Retailer / customer (餐馆/食客)?

一些学生说, 我既然交了学费来上学, 就像交了钱去自助餐厅一样, 想吃多少, 想吃什么, 都是我决定.  如果不喜欢, 就去下一个餐厅好了。 上课能这样么?  在饮食行业, 顾客拍拍屁股就可以离开一个餐馆.  在一些学校里, 是有不同的老师上类似的课程, 同学们可以根据老师的介绍和师兄师姐的提醒选择适合自己的老师。 但是在学校里,  学生必须要在一定时间内作出选择 (必修课), 老师掌握着最后给学生多少分, 学校掌握着毕业证。  所以不能把餐馆/食客的关系照搬过来。 学生们非但不能成为有主动权的顾客, 反而会被人以分数/学位/毕业证相要挟, 成为下一种关系中的弱者:

Boss / employee (老板 / 雇员)?

在学校里, 很多学生把自己的指导老师叫做 ”老板”, 学生变成打工仔或打工妹。 不光有大老板, 还有小老板,  因为大老板太忙, 平时都是小老板在管理。 在一些学校, 博士生要延期一年才能毕业成为了众多潜规则之一. 学生虽然是"雇员", 但是并没有雇员的权利。

Baby-sitter / babies (保姆 / 幼儿) ?

还有一种情况,  老师像保姆一样, 为学生操办一切, 把课程内容煮成婴儿食品, 一勺一勺地喂给同学.  同学们有什么问题, 都去找老师搞定。 学生把老师反复咀嚼过的东西再咀嚼一遍, 这种模式也许可以叫做 Learning by re-chewing.  这个模式和这门课的 “做中学” (Learning By Doing) 有很大的区别。

Buddies / Buddies (哥们 / 哥们) ?

还有一种情况是, 老师和学生心照不宣一起混,  “你对我好, 我就对你好". 这里有一条新闻:

http://edu.163.com/10/1106/10/6KQ4JC8800293L7F.html  

部分大学课堂师生心照不宣一起混

“老师与学生一起应付”,这并非大学生们学习之余的调侃之语,而是不少大学课堂的真实写照。

Stranger / Stranger (路人甲 / 路人乙)?

很多学校有巨大的新校区,  老师对着百人左右的课堂宣讲幻灯片, 下课后就开车回老校区或市区的家里. 老师不认识学生, 也未必有精力了解具体学生的情况.  双方形同陌路。

Prison Guard / Prisoner (狱警 / 犯人)?

还有一种情况是老师想方设法让学生来上课,  点名, 突然考试, 指纹打卡, 等等.  学生则想方设法逃课。 学生视上课为坐牢, 巴不得早一点解放。对于一些同学来说,  老师就是学生和 “自由” 之间的一道障碍。  

说了这么多,  我心目中理想的师生关系是什么?  是“健身教练 / 健身学员” 的关系。

image

大家可以从各种各样的健身馆中看到这样的关系,  像健身,减肥,瑜珈等等。 在这种关系中, 是谁想提高自己水平?  是那些学员, 这些学员的想法得足够强烈, 他/她才会花钱去参加这样的健身活动。 在健身活动中, 谁要做各种运动, 流汗呢?  是学员。 谁在这个活动中对别人指指点点, 鼓励别人更加努力? 是教练。

那为什么教练可以这样做?  因为教练有下面的资源:

  1. 教练的资质, 教练本身应该在所教的项目中是很有经验的身体力行者。 如果我光看了很多瑜珈的书籍和录像, 或者得到某老师的PPT (如果瑜珈老师用PPT 的话), 我然后就照本宣科去教瑜珈, 虽然我讲的话和一个资深瑜珈教练的话没什么区别 – “现在开始练习冥想, 要尽量让自己内心安静下来,要保持呼吸均匀, 把精神集中在体内 …” 可以肯定留在我这个班里的学生不会很多。
  2. 教练有一套训练计划和各种练习方法, 教练(场馆) 有仪器, 工具, 设备,  不是每一个人都打算在家里放一套各种重量的哑铃和杠铃。
  3. 教练可以随时指出学员锻炼的进步和不足。
  4. 教练(场馆) 能召集到有一群相似基础的队友, 这在有些类型的锻炼是很重要的。

教练和学员的关系如果确定,  就很好办了。 每一个来学习的学生,  都是想学好软件工程这门技术才来的。  各人的先天条件不同, 目标也未必相同。  有些同学想成为世界一流的程序员,  那老师就会以世界一流的标准来要求学生。

谁要在这门课中写代码, 做实验, 找需求, 修bug?

是学生, 不是老师。

谁要看各种与软件工程相关的书籍, 博客, 并定期汇报? 

是学生。 

谁给各个学生设计练习, 回答疑问? 

老师。

如果学生的努力低于他自己目标的要求,  谁会批评这个学生? 

老师会。

有些学生说 - 老师, 你讲的特别好, 我特别想提高, 但是我太忙了, 所以没时间写程序, 我就是来听听。。。

这种情况放在健身学员的类比中会是这样:

    教练, 你讲的特别好, 我特别想减肥健美,  但我太忙了, 没时间练, 所以我办了卡, 就是来听听。。。

[这种学员还真的有,  据说健身场馆的很大一部分利润是来自于那些办了年卡但是很少来的人]

教学方法

那么软件工程课一般是怎么教的呢?  我在这一篇文章里也提到:

软件学院的小慧老师对阿超抱怨,软件工程这门课看似容易,实际太难教。

小慧说:我是按照经典的瀑布模型来讲课的,本来以为会是高屋建瓴,一泻千里,但是实际情况是这样的:

  1. 需求分析:学生们都不懂企业的需求是什么,上课睡觉。
  2. 设计阶段:学生们画了许多 UML 图,用设计工具画了不少矩形框,菱形框,如此而已
  3. 实现阶段:学生们开始讨论非常细节的问题,UML 图早已经扔到一边。
  4. 稳定阶段:学生们中十分之一的人开始写代码,其他人不知道在干什么.代码大部分情况下都不能工作,所有设计好的种种黑箱和白箱测试都无从开始。
  5. 发布阶段:这个只有一天时间,就是最后检查的那一天,同时还有人在调试程序.
  6. 维护阶段:课程结束了,同学们对自己的产品没有任何维护,放假了!

最后大部分同学们都说这门课特别没用,自己根本没学到什么本事,然后下个学期,新的一批学生进来重复这一过程。。。

我在文章中建议, 软件工程的教学应该考虑让学生一直能保持有具体的事情做, 而且做了之后能看到效果。  不要在学生刚上课的时候就要求写一个需求分析, 学生上哪里分析去?  如何看到效果?  

所以在《现代软件工程》 这门课中, 我安排了个人项目, 两个结对项目, 让大家充分有时间把个人技术和一对一的合作技术做好, 然后再开始团队项目。 一个理想的流程应该是这样:

  1. 开始维护以前同学开发出来的程序,理解程序。
  2. 找bug,改bug,重构小部分代码,以满足用户的需求。
  3. 一部分同学可以开发测试用例
  4. 在现有版本的基础上做增量开发
    1. 理解需求 (这个时候理解了客户需求是什么)
    2. 设计
    3. 开发
    4. 回归测试 (用到上面开发的测试用例)

 

负担问题

很多学生一听说我给他们安排的学习计划, 第一个反应往往是 - 负担太重了!  让我们回到健身馆,  如果一个体质正常的青年想健美, 教练安排他举杠铃, 他会说什么呢 – “杠铃太重, 我走了!” 

负担是相对的, 这要看大家要跟谁比了。 我在清华大学上课的时候, 也有学生反映“负担太重”, 我只好和他们一起回忆清华大学校长及各级领导提出来的目标 – “建设世界一流大学" .  如果要建设世界一流大学, 那要跟世界一流大学比。  在软件和软件工程方面世界一流的大学是哪一家呢? 我想唯有跟卡内基·梅隆大学 (CMU) 相比,  才能不辱没清华大学的名声。

CMU 有一门本科生的课 - Build Virtual World,   是由已故的Randy Pausch 教授讲授的, 我们可以比较一下。

CMU – Build Virtual World现代软件工程

5 projects/semester

2 week/project, done by 4 person team

Rotate team member in each project

4 project/semester:
     1 Idividual Proj.
     2 Pair Proj.
     1 Team Proj.
 
team project has 6 people.
rotate team member in each project.

他们一个学期要做 5 个项目, 我们只做 4 个。谁的负担重?

所以, 不是我要为难大家, 而是校领导的意思, 同学们可以找校领导说 – 我们不想成为世界一流大学, 成为五道口一带的二流大学就可以了。 如果领导同意了, 我当然可以降低负担, 而且我还可以把师生关系调整为 “哥们/哥们”, 要混还不容易吗?!

我们可以看看古代的历史,  为古罗马帝国开拓疆土的士兵, 他们是如何培训的呢?  请选择:

a) 他们不经过培训, 直接上战场

b) 他们只学理论, 没有实战

c) 他们用比实战更轻的武器训练

d) 他们用和实战一样重的武器训练

e) 他们用比实战重一倍的武器训练

先别说成为世界级的士兵或将军, 如果大家想在战场上活得比别人长, 你会选哪一项呢?   

image

这个道理对IT 行业的学生也是一样的, 在人潮汹涌的招聘市场, 我们可以问一下那些学生 -

你平时在学校里是如何为将来的职业准备的?

a) 不经过准备, 直接上

b) 只学理论, 没有实战

c) 用比实际工作要求更低的水平训练

d) 用和实际工作一样的要求训练

e) 用比实际工作高一倍的要求训练

在这片神奇的土地上, 我们或许还可以听到 f) 的回答:

f) 我不用准备, 我爹叫阿刚。 

image

负担通常会带来痛苦, 但是和将来的后悔相比, 哪个更痛一些? 这个问题也写在 NBA 凯尔特人队的训练馆里:

 

  

如何判分

“分, 分, 学生的命根。 ”

我在刚开始教这门课的时候, 我看到助教给同学们的作业判分是这样的模式:

最好的作业10分, 次好的9.5, 然后依次平滑下降, 有些学生交作业很迟, 有些学生写的程序都不能编译, 这些学生都得到6分左右。

这样的分数体系看起来非常和谐, 但这不是软件业的实际情况.  我们任选一种软件类型,  例如字处理软件, 最好的软件在市场上有多少份额? 第二名占有多少?  第三名呢? 第四名? 谁知道字处理软件市场的第四名是谁? 搜索引擎呢?  第一名的占有率是多少? 第二, 第三, 第四呢?  第四名的软件也是由优秀的软件人员开发的, 他们也许加班更多,  那为什么只有那么少的份额? 这公平么?

由于软件市场有 ”赢者通吃” 的规律 (第一名会占据 50% 以上的份额),  我们在训练中也要体现这一规律. 所以我规定:

如果大家做同样类型的作业, 则采用以下规则:

完成质量在第一档次的同学(一个或多个), 得满分。

完成质量在第二档次的同学, 得 1/2 的分。

在第三档次的同学, 得1/3 的分数。

以此类推…

在很多作业中,  我或TA会写一个比较平庸的解法 (例如用冒泡排序或线性查找)参加作业评比。 这个平庸的作业会得0分, 那比这个还差的作业, 就会得负分,  从-1, –2, –3 类推下去.  下面是两个评分体系的比较:

image

这样公平么?  很多人会问。  如果一个同学写了没有任何bug 的程序, 得到10分, 另外的同学程序有 1 个bug, 得到9.5 分, 程序编译都不过的同学, 也得6分, 那你觉得这样对写了全对程序的同学公平么?  如果一个同学的程序连普通的冒泡排序都比不过, 老师和TA在花时间陪他玩,  他欠我们分数, 这样的人不得负分得什么?

做中学

上《现代软件工程》 的同学, 都是大三到研一的同学,  应该具备基本的学习能力和开发能力,  软件工程和其他类的工程 (如航天工程, 化学工程) 不一样, 我们每天都可以用到软件工程的产物 (软件),  搭建, 学习一个软件开发平台比航天化工要容易很多 (注: 在自家后院放二踢脚不是航天工程), 相关的学习资料也是非常容易获得。 在这个情况下,  学生们可以在“做”的过程中学习, 这也叫”做中学”.  做了, 有疑问, 再问老师, 问专家, 这样学习的效果会好很多。 我为这门课准备了三本课本, 一本指定的阅读教材, 二十本参考书 (对, 20 本), 同学们平时可以多看书。

真实的项目

在这门课中, 我鼓励学生做自己决定的项目, 但是要求他们要做”真实的项目” – 有真正用户的软件。  那些 “经典” 的项目, 例如图书馆管理系统, 学生学籍管理系统等, 是不符合我的要求的。  项目要有活的用户, 只有活的用户才有活的需求, 才有活的场景, 活的测试用例。 只有活的用户才决定同学们写的软件是否值得使用, 有些团队写的小软件很好用,  在合适的用户群中引起共鸣, 短短时间内, 就会有几千到几万个用户 (像北航团队开发的魔方程序), 也有的团队费了老鼻子劲, 写出来的东西用户量小于10, 自己团队成员包括在内。 这些不同的用户数量会迫使项目团队反思当初在需求分析, 设计上的问题。 另外这门课并不是算法竞赛, 或者代码集中营, 大家比的不是如何快速敲打出某个算法, 而是如何在有限的时间内交付有价值的软件给特定的用户。 “真实”这一条件也促使大家做 “现实”的项目和项目管理。 很多学生有宏大的梦想,  但是在短短的 8 周团队项目时间内, 甚至短短的 16 周课程时间内, 他们发现宏大的构想被自己程序的bug 搞得千疮百孔, 轰然倒地。 

 

学生的收获

在这门课里, 有付出, 就会有收获, 收获体现在下列方面:

  1. 写出一个可用的, 有实际用户的软件。 这对大多数人来说, 是第一次。
  2. 完整体验软件生命周期, 对于生命周期的各个阶段有实际的了解。对于软件设计有实际的掌握。 对敏捷软件开发的具体技术有实践能力。
  3. 了解软件团队的各个角色, 和各个角色的互动.  对于其中一个角色有实际的深入体验。
  4. 学习如何与不同的角色打交道, 培养团队精神, 学会解决冲突的几种方法

这个课程不讲什么?  这个课程不具体讲某一个程序设计语言, 也不讲 UML, 设计模式。 这些内容都应该属于其它课程。

但是从课后的自我反馈来看, 学生往往在某一门“程序设计语言”很有收获, 为什么呢?  第一是因为这门课的个人项目和结对项目让他们有充分的机会学习和巩固关于某一语言的知识;  另外, 他们第一次把某一门语言用到了一个有分量的实际项目中去, 从而深入地了解这个语言的特性。这可以说是<现代软件工程> 的一个好的副作用。

任何一门课都不会一帆风顺地讲下来, 所有人皆大欢喜。 老师学生需要时间来适应,交流,  才能逐步提高。 吹了这么多, 到底学生反映如何? 下面是清华大学的学生对这门课的不记名评价。

评分内容

2007

2008

2009

热情、认真、投入、严谨,教书育人

95.45±3.80

95.00±3.42

98.90±2.21

讲课思路清晰,重点、难点突出

94.55±4.04

89.29±5.77

98.90±2.21

讲解生动、有吸引力,能激发学生的求知欲

92.73±5.15

90.71±5.37

98.91±2.21

师生互动,鼓励学生质疑,并给予思路的引导

94.55±4.04

93.57±3.69

98.91±2.21

提供或推荐的教学资料有助于学生学习

93.64±4.23

86.43±8.19

99.00±2.21

作业等课程训练有利于课程内容的学习

94.55±4.04

90.00±4.95

99.00±2.21

考核及评价方式能激励学生主动学习与钻研

92.73±5.15

87.86±4.88

97.89±3.04

注重学生创新意识和独立思考能力的培养

92.73±4.37

91.43±4.44

98.91±2.21

对学生课外学习给予指导、建议

92.73±4.37

91.43±4.92

99.00±2.21

学习本门课程后有收获

92.73±4.37

90.00±5.38

97.91±3.04

上好课很难, 老师, 学生都不容易, 这个博客讲了一些。

一些学生清澈的, 充满求知欲的眼神告诉我, 他们最关心的是 -

                怎么用最小的代价, 让我过了这门课!

上了这门课就知道代价了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/500460.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

现代软件工程讲义 1 软件工程概论

几乎所有程序员都知道“数据结构&#xff0b;算法 程序 ” 这句名言。但是在实际的学习和工作中&#xff0c;也有不少人产生了疑问。例如&#xff1a; 1. 我写了二叉树的周游算法实现&#xff0c;在这里&#xff0c;二叉树是数据结构&#xff0c;周游的实现细节是算法。…

qq修改群名服务器失败,如何解决qq群名片改不了的问题

我们在进入一个qq群的时候&#xff0c;一般都会修改自己的群名片&#xff0c;但是有时我们会发现改不了的问题&#xff0c;这时我们应该怎么办呢?下面就让学习啦小编告诉你如何解决qq群名片改不了的问题的方法&#xff0c;希望对大家有所帮助。解决qq群名片改不了的方法电脑登…

软件工程 项目管理的目标和细节

项目管理的最高目标并不是要保证让 “ideal” 和 “actual” 的线吻合, 因为项目中出现意外和需求的变化是很正常的事。 项目管理的目标是处理这些意外和变化, 让软件能如期发布, 尽量满足客户的要求。 例如: http://www.cnblogs.com/takeitandgo/archive/2011/05/26/2059363…

现代软件工程 学生自我评价表

每年上完 <现代软件工程课>, 我都要收集同学们对自己上课前/后的评价。这样可以看到同学们到底在什么地方得到提高, 提高了多少. 这样可以分析课程设计各个环节的效果, 以便跟踪和改进。 下面是我使用的自我评价表: 匿名调查&#xff0c;整个学期, 你在这门课平均每周花…

IT 行业的创新 - 创新的迷思 (1-4)

[这是和北大同学交流的讲稿, 暑期课程-职业规划与领导力发展 课程的一部分] Myths of innovation 创新, 创新型人才, 创新型企业, 创新型国家, 这些都是最近时髦的词汇, 我在微软亚洲研究院创新工程组工作, 看过创新的猪跑, 也吃过创新的猪肉, 在这里和同学们分享一下我的…

IT 行业的创新 - 创新的迷思 (5-6)

[这是和北大同学交流的讲稿, 暑期课程-职业规划与领导力发展 课程的一部分] Myths of innovation 创新, 创新型人才, 创新型企业, 创新型国家, 这些都是最近时髦的词汇, 我在微软亚洲研究院创新工程组工作, 看过创新的猪跑, 也吃过创新的猪肉, 在这里和同学们分享一下我的体会…

IT 行业的创新 - 创新的迷思 (7-8)

[这是和北大同学交流的讲稿, 暑期课程-职业规划与领导力发展 课程的一部分] Myths of innovation 创新, 创新型人才, 创新型企业, 创新型国家, 这些都是最近时髦的词汇, 我在微软亚洲研究院创新工程组工作, 看过创新的猪跑, 也吃过创新的猪肉, 在这里和同学们分享一下我的体会…

创新 - 王屋村的魔方们

最近我和一些同学们讨论了一些有关 “创新” 的问题。 我不由得想起王屋村发生的一个故事。 王屋村原来没有人玩过魔方. 有一年开学, 一个叫果冻的同学从爪哇国带了这个新奇玩意到学校。 他口里念念有词, 转来转去, 居然能把魔方从凌乱的颜色组合还原成整齐的六面。 哇, 太神奇…

技能的反面 - 魔方和模仿

魔方的故事 大概是在我小学五年级的时候, 大家开始玩魔方&#xff0c;我们家也买了一个。 我和几个小孩折腾了一会, 没搞出什么名堂。我哥摆弄了好一会, 嘿! 弄出一面一样的颜色。后来我也琢磨出来怎么把一面颜色拼出来。 再后来我才知道魔方有一些模式和一些口诀&#xff0c…

软件工程讲义 3 两人合作(2) 要会做汉堡包

[上回书说到这里: http://www.cnblogs.com/xinz/archive/2011/08/07/2130332.html ] 很多同学憧憬在大型软件团队中和各式各样的人打交道, 推动项目进展, 但是他们往往连一对一的合作的技巧和经验都很缺乏。 请问, 从小学到高中, 大家有没有练习过 1:1 的合作? 上课? 没有…

现代软件工程讲义 4 团队和流程

Advanced Software Engineering, Team Structure and Development Process 软件团队和开发流程 非团队和团队 在讲团队之前, 我们要讲什么是“非团队”。王屋村里经常发生这样的一幕: 王屋村的大智要把一堆砖头从村头搬到村尾。 他到顶球酒吧前, 看到前面三三两两地蹲着一…

现代软件工程讲义 12 绩效管理

我们前文讲了怎样衡量软件工程师的能力, 工程师如何成长, 如何证明自己的成长, 等等. 这些都是在一个独立的, 不受外界干扰的空间中做出来的判断。 我们假设一个有能力的工程师, 到了另一个团队, 仍然是一个有能力的工程师。 如何衡量个人在团队中的绩效? 如果一个工程师能…

校园招聘 - 比较容易的面试题

又到校园招聘的季节了, 自从和一些同事出版了《编程之美》一书之后, 我经常收到一些关于面试, 编程, 和“题库”的询问。 其实我自己对算法没有什么研究, 有些问题都答不上, 研究院最近搬了一次家&#xff0c; 原来的 “题库”也不知道搬到那一层楼去了。 不过, 常在河边走,…

现代软件工程讲义 2 工程师的能力评估和发展

Advanced Software Engineering 现代软件工程 讲义 软件工程师的能力评估和职业发展 介绍: 个人软件流程, 职业发展&#xff0c; 个人绩效的衡量和提高, 软件开发是科学, 工程, 手艺, 或是艺术? 我们刚讲了软件工程, 它包括了什么呢? 软件工程包括了开发&#xff0c;…

现代软件工程讲义 7 设计阶段 典型用户 - 故事 - 任务 - 具体工作

当我们写一个软件的时候, 都知道要为用户考虑, 但是用户在哪里? 有同学写 “图书馆管理系统” - 说来图书馆的同学都是我的用户, 但是他们有没有区别呢? 有同学写“自动柜员机系统”, 那到底有多少类型的用户来到柜员机前呢? 这些都是团队成员在需求分析和设计阶段要反复…

现代软件工程讲义 7 开发 开发阶段的日常管理

[移山之道 14 章] 14.6 开发阶段的日常管理14.6.1 闭门造车&#xff08;leave me alone&#xff09; 荔荔&#xff1a;我今天真失败&#xff01;在办公室里坐了10个小时&#xff0c;但是真正能花在开发工作上的可能只有3个小时&#xff0c;然后我的工作进展大概只有两个小时…

现代软件工程讲义 7 用户界面和用户体验

说到用户界面 (User Interface)&#xff0c;我们先看一个图: [来源] 有些同学认为UI 设计是充满创意和非常潇洒的工作&#xff0c; 另一些同学 (特别是有一定实际项目经验的) 也许会抱怨, UI 的工作就是在衣服后面夹夹子, 让前面好看一些。 其实&#xff0c;计算机软件的用户…

现代软件工程讲义 5 项目经理 Program Manager

在一个软件团队里, 不同的人有不同的投入, 我们在 猪,鸡和鹦鹉 的故事里已经说明了. 不同的人还要在团队中担负不同的任务, 我们也要讲一下. 开发人员 &#xff08;大部分内容在: 现代软件工程讲义 2 工程师的能力评估和发展&#xff09; 项目经理 ( 这篇博客 ) 测试人员 …

现代软件工程讲义 5.1 软件的质量保证 (QA) 和测试 (Test)

在一个软件团队里, 不同的人有不同程度的投入, 我们在 猪,鸡和鹦鹉 的故事里已经说明了. 不同的人还要在团队中担负不同的任务: 开发人员 &#xff08;大部分内容在: 现代软件工程讲义 2 工程师的能力评估和发展&#xff09; 项目经理 ( 内容在这里) 测试人员 ( 本篇博客 ) 团…

现代软件工程讲义 8 稳定阶段 (测试的计划和执行)

[来自 移山之道 第 13 章] 13.8 测试计划 测试不是在所有的开发工作完成之后才进行&#xff0c;而是与开发几乎同步进行的。一个软件项目的各个功能都可以有自己的测试计划&#xff0c;它们可以在不同的阶段发挥作用。但是针对整个项目的总测试计划&#xff08;又叫测试总纲&a…