测试执行
基本概念
当测试用例编写完成,并通过审核后,就进入到软件测试最主要的测试执行阶段(也就是执行测试用例、提交问题单、测试评估等活动 ),进行软件测试。
执行测试用例,就是根据已有的测试用例,按照里面的操作步骤一步一步的执行,并查看预期结果与实际结果是否一致。执行测试用例不等于是测试执行
注意事项
搭建测试环境事项
注意前提条件和特殊说明
测试用例要全部执行
不要忽视任何偶然现象
加强测试过程记录
详细预期与实际的不一致提交缺陷时与开发的关系处理
提交一份优秀的问题报告单
及时更新维护测试用例
常见软件基础运行环境
Linux + Tomcat + MySQL + JAVA
Linux + Apache + MySQL + PHP
Windows + IIS + MySQL + ASP/.NET
环境搭建注意事项
测试用例执行之前,成功搭建测试环境是第一步。一般来说软件产品提交测试后,开发人员应该提交一份被测试软件产品的详细安装指导书。
如果开发人员未提供相关的安装指导书,搭建过程中如遇到问题,测试人员可以要求开发人员协助,这时候,一定要把开发人员解决问题的方法记录下来,避免同样的问题再次请教开发人员,这样会招致开发人员的反感,也降低了开发人员对测试人员的认可程度。
注意测试用例中的前提条件和特殊规程说明
有些测试软件是有顺序性的,那么它的测试用例就会有一些执行前提或特殊说明。
比如要测试某个软件的登陆功能,那么测试前必须创建用户,并为用户分配一定的权限等。如果前提条件和特殊说明没有注意,会导致测试用例的无法执行
测试用例要全部执行,每条用例至少要执行一遍
因为编写测试用例时,它考虑了测试覆盖率的问题,每条测试用例都对应一个功能点,如果少执行一条,就会有一个功能点没有测试到。
我们执行测试前要认为待测试软件的每条功能点都是未实现的,每个功能点我们都要测试一遍,才能保证待测试软件能正确满足用户需求
不要忽视任何偶然现象
我们在执行某条用例时,软件会出错,但是当再次执行时这个错误就不再重现。这种情况,一般大家就会认为是偶然现象,就会忽略过去。其实,这种错误才是隐藏最深的,最难发现的错误
遇到这种情况时,要仔细分析这种情况,不要忽视任何小的细节,多测试几次,尽可能准确的找出问题的原因
加强测试过程记录
测试执行过程中,一定要加强测试过程记录。执行过的用例做好对应标记,发现了缺陷应及时提交确认。
一般软件产品提供了日志功能,比如有软件运行日志、用户操作日志。如果发现比较复杂难定位的问题,一定要在测试用例执行后记录相关的日志文件,作为测试过程记录,这样开发人员可以通过这 些测试记录方便的定位问题。而不用测试人员重新搭建测试环境,为开发人员重现问题。
详细记录预期与实际的不一致
如果不一致,要从多个角度多测试几次,尽量详细的定位软件出错的位置和原因,并测试出因为这个错误会不会导致更严重的错误出现,最后把详细的输入和实际的输出,以及对问题的描述写到测试报告中
因为在一个项目组中,项目的开发时间是有限的,如果我们测试时能把问题描述的详细一些,那么开发人员就会很容易的重现这个问题,也就能更快的解决问题,节省项目时间
提交缺陷时与开发的关系处理
测试执行过程中,当你提交了问题报告单,可能被开发人员无情驳回,拒绝修改。这时候,只能对开发人员晓之以理,做到有理、有据有说服力。
提交一份优秀的问题报告单
测试提交的问题报告单和测试日报一样,都是测试人员的工作输出及绩效的集中体现。因此,提交一份优秀的问题报告单是很重要的
及时更新维护测试用例
测试执行过程中,应该注意及时更新维护测试用例:往往在测试执行过程中,才发现遗漏了一些测试用例,这时候应该及时的补充;
有些测试用例在具体 的执行过程中根本无法操作,这时候应该删除这部分用例;
若干个元余的测试用例完全可以由某一个测试用例替代,那么删除元余的测试用例。
总之,测试执行的过程中及时地更新测试用例是很好的习惯.不要打算在测试执行结束后,统一更新测试用例,如果这样,往往会遗漏很多本应该更新的测试用例。
软件缺陷
缺陷基础
理论缺陷的生命周期
缺陷的流程
缺陷的状态
缺陷的等级
缺陷实例与练习
缺陷的概念
软件缺陷:计算机系统或者程序中存在的任何一种破坏正常运行能力的问题、错误,或者隐藏的功能缺陷、瑕疵。缺陷又名为 BUG ( 臭虫 )
缺陷的主要类型:
功能、特性没有实现或部分实现
设计不合理,存在缺陷:
实际结果和预期结果不一致
运行出错,包括运行中断、系统崩溃、界面混乱
数据结果不正确、精度不够 ;
用户不能接受的其他问题,如存取时间过长、界面不美观
缺陷的原因
缺陷的修复成本
缺陷的分布特征
集结( 二八定理 )
缺陷往往喜欢扎堆,一个模块已经发现的缺陷比别的模块多,通常不是代表这个模块已经把缺陷暴露完了,而是意味着这个模块还存在有同样多的缺陷尚未被发现。这就是著名的二八定理 :80% 的缺陷出现在 20% 的模块
另外,在系统分析、系统设计、系统实现阶段的复审,测试工作中能够发现和避免 80% 的软件缺陷,此后的系统测试能够帮助我们找出剩余缺陷中的 80%,最后的 5% 的软件缺陷可能只有在系统交付使用后用户经过大范围、长时间使用后才会曝露出来。因为软件测试只能够保证尽可能多地发现软件缺陷,却无法保证能够发现所有的软件缺陷。
缺陷的抗药性
测试进行得越多,新缺陷就越难被发现
因为之前一直使用同样的测试思路,同样的一套测试用例,没有新的突破。
某些缺陷天然地只有在很特殊或者很极端的情况下才会被触发
并非所有缺陷都要修改
有一些原因,使得有些缺陷我们不修复:
没有足够的时间
不算真正的软件缺陷
修复的风险太大
不值得修复
软件缺陷生命周期
当一个缺陷被发现了之后
测试工程师填写《缺陷跟踪单》,提交测试经理审核
测试经理作出初步判断,将问题单转项目
经理审核项目经理确认问题单,转给开发人员定位问题
开发人员定位错误后修复缺陷转给 项目经理确认
项目经理确认完转给测试经理确认并组织测试
测试人员对该修复进行验证,确认是否正确修复,确认是否有引发新问题,是否影响了原有正常的功能
缺陷的状态
缺陷的等级
提交BUG附带上所有有价值的信息
一个好的缺陷单,是你提交之后就再也没人联系你,然后过了一段时间已经被完美地修复,转回到你手上进行验证测试这样的一个单子
要做到这样,你应该提供足够的信息,使得开发人员既能够明确如何重现故障现象,又有足够的信息定位到问题的根源
口 除了书写良好的重现步聚,你还可以考虑附上打印日志,抓图,网络抓包,等等。