《构建之法》--阅读(第13章-第17章)
第13章 软件测试
1.名词解释
Bug :软件的缺陷
Test Case :测试用例。测试用例描述了一个完整的测试过程,包括测试环境、输入、期望的结果等
Test Suite :测试用例集。即一组相关的测试用例
2.Bug解释与实例
<1>、Bug可以分解为:症状(Symptom)、程序错误(Fault)、根本原因(Root Cause)
症状:即从用户的角度看,软件出了什么问题
程序错误:即从代码的角度看,代码的什么错误导致了软件的问题
根本原因:错误根源,即导致代码错误的根本原因
<2>、Bug例子
症状:用户报告,一个windows应用程序有时会有在启动时报错,继而不能运行
程序错误:有时候一个子窗口的handle有空,导致程序访问了非法内存地址,此为代码错误
根本原因:代码并没有确保创建子窗口,因此子窗口的handle变量有时会在访问时处于未赋值状态(为空),导致出现代码错误
3.测试方法
<1>、黑箱:指的是设计测试的过程中,把软件系统当做一个“黑箱”,无法了解或使用系统的内部结构及知识。一个更准确的说法是行为测试设计,即从软件的行为,而不是从内部结构出发来设计测试
<2>、白箱子:指的是在设计测试的过程中,设计者可以“看到”软件系统的内部结构,并使用软件的内部结构及知识来选择测试数据及具体的测试方法。
4.提问:我们软件测试,是为了用户使用时,少出先问题,但一些情况,自己在测试软件时,有些问题是自己没考虑到也没测试出问题的,当用户使用时,这时才不经意发现了这个错误,这种情况我相信是存在的,如何才能尽量避免这种错误呢?
第14章 质量保障
1.软件质量
软件 = 程序 + 软件工程
软件(质量) = 程序(质量) + 软件工程(质量)
2.软件质量的保障与软件的测试
软件测试:运用一定的流程和工具,验证软件能实现预先设计的功能和特性,工作的流程和结果通常是可量化的
软件质量的保障工作:软件团队为了让软件达到事先定义的质量标准而进行的所有活动,包括测试工作
3.提问:软件测试没问题,那软件的质量保障不也就没问题了么??
第15章 稳定和发布阶段
1.提问:从代码完成到发布,这是一个漫长的过程,但如果在一定困难下,中途停止了这个项目,并且在没有其他资源的帮助,你会怎么做?
第16章 IT行业的创新
1.创新的源泉(个人感觉)
创新的源泉,来自于生活、实践。比如:阿基米德,在洗浴城里泡澡,发现浮力定律;牛顿,在苹果树下休息发现万有引力理念等等
程序员的世界不是只有代码,程序猿的世界不是只存在电脑和代码,他们同样也需要生活,他们也是普通人,创新的来源,正是他们从生活中获取灵感,转化成他们手中的一把利剑(代码),将之实现出来
2.提问:比如(假设而已),现在我有一个非常好的灵感,认为这是一个非常好的软件,但所能实现出来是非常困难的,非我们学生能力所能做出来的,这时我们怎么办?
第17章 人、绩效和职业道德
1.RASCI模型
R:Responsible,负责把具体事情做好
A:Accountable,对任务负全责,有批准的权利
S:Support,对任务提供支持,辅助任务的完成
C:Consulted,咨询,拥有完成项目所需的信息或能力的角色
I:Informed,知会者,应该事后及时通知结果的角色
2.团队合作的阶段:
<1>、萌芽阶段,就像小苗破土而出,柔弱但充满希望
<2>、磨合阶段,就像一个人的青少年时期,充满了对个人、同伴和团队的疑惑和冲突
<3>、规范阶段,从磨合阶段毕业,进入规范阶段的团队,成员们意识到光争吵时没有用的,大家还是要协同作战
<4>、创造阶段,经历了萌芽、磨合、规范阶段,现在团队终于可以创造一些有意义的东西
3.不管从事哪一个职业,不管你是属于哪个岗位上的,都必须具有职业道德,软件工程师同样也需要