目录
软件测试定义、原则
全程质量保证
软件测试流程
软件测试启动和结束准则
软件测试沟通技巧
软件测试定义
- 软件测试的目标应该服从于软件项目的目标。软件测试通过使用更高效的方法和工具,提升软件开发效率及软件开发质量。
- 在规定条件下对软件系统进行审核、运行和评估,验证软件系统是都满足需求。
- 预防、发现、跟踪软件的缺陷,提高产品质量。
- 软件测试通过技术手段,更早、更快、更多的发现缺陷,从而降低这些缺陷可能带来的风险。
软件测试原则--思维
- 发现尽可能多的缺陷,不是为了说明软件中没有缺陷。
- 成功的测试在于发现了迄今为止未发现的缺陷。----追求
- 测试绝不能证明软件100%正确,即使经过了最严格的测试之后,仍然可能还有没被发现的错误潜藏在软件中。
- 评审-->头脑风暴-->交叉测试 例如:5个人,10个人
- 测试越早,发现问题后解决问题的成本越小。
软件测试原则
- 测试工作是有计划的,应尽早开展测试工作。--测试计划
- 尽量避免测试自己开发的程序。
- 测试只能证明缺陷存在,不能证明缺陷不存在。
- “彻底地测试”难以成为现实,要考虑时间、费用等限制,不允许无休止地测试。
- 测试都应追溯到用户追求。
- 测试设计和测试执行应该进行分离。
- 软件缺陷具有免疫性,应尽早可能采用多种方法和数据对软件进行测试。
(标准意义上测试应从需求评审开始)
推荐书籍:《人人都是产品经理》前三章
全程软件质量保证
- 决定软件质量的关键因素由需求分析、设计和实现等,测试是贯穿于上述过程的一种检查手段;
- 测试是提高软件质量最直接的手段,但不是全部,软件开发生命周期中的各个环节都会影响到软件的质量;
- 测试能提高软件的质量,但是提高软件质量不能完全依赖测试。
如何进行高效的测试
- 测试工程师可以尝试通过一些持续集成的手段,尽早地开展测试活动,还可以加入自动化技术,通过不断、反复地测试来发现更多的缺陷。
- 以下两个方面都是有效提高软件质量的重要手段:
- 测试可以做到对缺陷的预防。
- 测试需要对缺陷进行检查。
- 一个高质量的软件系统是设计和开发出来的,并不是测试出来的。
软件测试与软件缺陷
- 软件缺陷被测试工程师和开发工程师们称作Bug。
- 软件缺陷会导致软件不能正常运行,它的存在会在一定程序上导致软件不能满足用户的需求,甚至有可能破坏或泄露用户的重要数据。
- 虽然软件测试为了消灭软件缺陷,但是迄今为止,还没有一种有效的软件缺陷检测机制可以完全达到这个目标。
为什么软件缺陷无法完全消除
- 软件运行的环境多种多样;
- 逻辑关系复杂;
- 多种多样的数据结构等因素;
- 都决定着软件测试活动不可能通过遍历所有的功能和使用场景来发现软件系统中所有的缺陷。
- 在软件开发的每个环节都可能把软件缺陷引入系统中,通过测试只能发布部分缺陷,并不能检测到系统中的所有缺陷。
80-20原则
- 80%的缺陷聚集在20%的模块中,经常出错的模块改错后还会经常出错。
软件测试流程图
如何进行测试执行或开展的?
撰写测试报告改为 撰写测试缺陷报告
软件测试流程图详解
软件测试规范流程细化
敏捷测试流程图
每一轮都要发布一个可使用的产品。对测试人员技能要求高,其他方面(原理)一样。
测试启动准则
- 同时满足以下条件,允许开始测试:
- 测试计划已经制定并且通过了审批;
- 测试用例已经设计并且并且通过了审批;
- 被测对象已经开发完毕并等待测试。
测试何时结束
- 基于测试用例的规则:8000个用例;
- 基于“测试期缺陷密度”的规则:5天总bug数小于多少个,没有严重的bug;
- 基于“运行期缺陷密度”的规则
测试完成准则
- 对于非严格系统可以采用“基于测试用例”的准则。同时满足以下条件允许结束测试:
(1)功能性测试用例通过率达到100%;
(2)非功能性测试用例通过率达到90%时。
- 对于严格系统,应当补充“基于测试期缺陷密度”的规则:
(3)n天内“测试期缺陷密度”全部低于某个值m。
测试沟通
开发人员的注意事项:
- 不要敌视测试人员。要理解测试的目的就是发现缺陷,是测试人员的工作职责。不要以为测试人员吃饱了没事干,存心找茬。
- 不要轻视测试人员,别说人家技术水平差,不配搞开发只好搞测试。
测试人员的注意事项:
- 发现缺陷是不要嘲笑开发人员,别说他的程序真臭、到处是Bug。
- 在开发人员压力太大时或者心情不好时不要火上浇油,发现缺陷时别大声嚷嚷。
- 另一种极端:如果测试人员与开发人员的关系非常好,可能会导致在测试的时候“手下留情”,这对项目也是一种伤害。
需求、类型、阶段、策略
软件测试需求
软件测试的对象
软件测试阶段
软件测试策略
探索式软件测试
企业软件测试人员组织
软件测试应该从需求开始
软件测试的对象
- 软件是由文档、数据以及程序组成的 。
- 测试应该是对文档、数据以及程序进行的测试。
- 60%以上的软件错误并不是程序错误,而是分析和设计错误。
- 测试概念扩大化,提倡软件全生命周期测试的理念。
软件测试阶段
单元测试、集成测试、系统测试、验收测试是“从小到大”、“由内而外”、“循序渐进”的测试过程,体现了“分而治之”的思想。