自学软件测试时做了一点点小笔记。
一、软件测试的定义
1、软件缺陷:软件产品中存在的问题。表现为用户所需功能没实现,不能满足或全部满足用户的需求。
1.主要现象:功能、特性没有实现或部分实现,设计不合理,实际结果和预期不一样等
2.bug指软件缺陷,愿意为臭虫或虫子。
3.debug发现bug并加以纠正的过程,意为抓虫子或杀虫子。
2、软件测试:在规定条件下对程序进行操作,发现错误,并对软件质量进行评估。
1.测试以评价一个程序或者系统属性为目标的活动
2.正向思维:验证软件正常工作。
逆向思维:假定软件有错误。
3、软件质量:满足规定或者潜在用户需求的能力。包括内部质量、外部质量和使用质量。
1.软件生命周期的活动:软件需求分析、软件设计、软件编码、软件测试、部署、运维。
2.软件过程的优劣决定了软件质量的高低。
3.错误由来:(1)错误可能出现在最初需求分析阶段,设计目标可能是错误或描述不完整。
(2)开发人员之间的交流不够,交流上有误解或者根本不交流。
4、软件测试和软件质量的关系
1.软件测试是有效提高软件质量的技术手段。但软件质量并不是靠软件测试来保证的。
2.软件质量要靠不断提高技术水平和改进软件开发过程来保证。
3.软件测试试图找出软件缺陷,确保软件产品满足需求。
4.软件测试不是质量保证,两者并不等同。
5、软件质量保证:监督测试流程,向管理层提供正确的可行信息,促进和辅助流程的改进。
6、软件测试和软件质量保证不同之处:
1.软件质量保证侧重对软件开发流程中的各个部分进行管理与控制,杜绝软件缺陷的产生。
2.软件测试则是对已产生的软件缺陷进行查找。
7、测试最终目的:确保软件的质量。保证客户拿到高质量的产品
1.不仅仅是找出错误,还要通过分析错误产生的原因和错误的分布特征。
2.从而帮助项目管理者发现当前所采用的软件过程的缺陷,以便改进。
8、测试的目标和职责:
1.发现潜在错误,并尽可能地为修正错误提供更多的信息。
2.理想的目标:用相对少的测试尽可能多地找到程序中的缺陷。
3.测试解决方案的所有元素。
9、软件测试的原则(测试是为了找出软件的错误和缺陷,评估与提高软件质量)
1.所有的软件测试都应该追溯到软件需求
2.应当把“尽早地不断地进行软件测试”作为座右铭
3.完全测试是不可能的,测试需要终止
4.测试无法显示潜在的缺陷
5.充分注意测试中的集群现象
6.程序员应避免检查自己的程序
7.尽量避免测试的随意性
10、软件测试的对象和分类
1.软件测试的对象:包括软件从需求、设计到编码的各个阶段的内容
2.分类:按开发阶段分:单元测试、集成测试、确认测试、系统测试和验收测试
1)单元测试又称模块测试,是针对软件设计的最小单位--程序模块进行正确性检验的测试工
作。其目的在于检查每个程序单元能否正确实现详细设计说明中的模块功能、性能、接口
和设计约束等要求,发现各模块内部可能存在的各种错误
2)集成测试也叫组装测试,通常在单元测试的基础上,将所有的程序模块进行有序的、递增
的测试。集成测试是检验程序单元或部件的接口关系,逐步集成为符合概要设计要求的程
序部件或整个系统
3)确认测试是通过检验和提供客观证据,证实软件是否满足特定预期用途的需求。确认测试
是检测与证实软件是否满足软件需求说明书中规定的要求
4) 系统测试是为验证和确认系统是否达到其原始目标,而对集成的硬件和软件系统进行的测
试。系统测试是在真实或者模拟系统运行的环境下,检查完整的程序系统能否和系统(包
括硬件、外设、网络和系统软件、支撑平台等)正确配置、连接,并满足用户需求
5)验收测试是按照项目任务书或者合同、供需双方约定的验收依据文档进行的对整个系统的
测试,决定是否接受或者拒收系统