软件测试的艺术(总结)
以下部分为软件测试艺术的总结
本书主要分为以下几个部分:1.测试经济和心理学及测试原则;2.代码评审;3.测试基础部分;4.开发中的调试和测试思想;5.软件测试最新应用;
1、测试经济和心理学及测试原则
软件测试虽然是一种技术性工作,不可否认,他也同人类的心理息息相关。如果你在认知上确定:软件测试是为了发现错误而执行程序的过程。那么,首先你在设计测试用例时,会有意识的去设计一些能够发现问题的测试用例;然后,在执行测试计划时,也会将发现错误当做自己测试的方向和目标;当然,你也会将发现软件问题,提升软件质量作为自己测试程序的价值体现。
软件测试永远都不可能发现所有的问题,为了使用最小的资源和成本发现尽可能多的问题,就需要建立某些策略应对经济学挑战。包括黑盒测试、白盒测试、各种高级别的测试方法。
因为软件测试中大多数都是心理学的问题,所以作者总结了软件测试的十个指导原则,用于知道软件开发和软件测试工作。这些原则在工作中都应该牢记于心,不论是做开发还是做测试,根据这些原则不仅可以指导自己更好的测试,同时也可以在开发上给出启示。
详细可参考:《软件测试的艺术(读书笔记1)》(https://www.cnblogs.com/chengabc/p/11215552.html)
2、代码评审
代码评审包括:代码检查、代码走查、桌面检查和同行评审。工作中用到最多的还是代码检查,一般将代码检查等同为代码评审。通过同书中方法对比,发现公司在对代码进行检查并不是很正规。不正规现象如下。
(1)对于代码检查
代码检查定义是组成一个小组来阅读和检查程序。有以下几个问题,
1.成员参与感不强
评审过程大部分的改进建议都是由领导指出,当然领导的经验也很丰富。这就导致其他成员的参与感不强,没有体现其他成员的价值,如果所有建议都是领导提出,我是不是可以潜意识的认为,其他成员的工作没有做好。
2.缺乏错误列表
评审过程没有一份检查错误的列表,都是凭借成员的经验。如果有一份检查错误的列表,会提高代码检查的效率,同时也能让各个成员从列表的对比中获得成长。
3.版本修改较多
程序下发版本较多,且人员不够情况下,只能通过领导或负责人一一进行审查,也就是桌面检查。一个比较好的建议是,在软件版本提交测试之后,测试人员在测试之前可以对照一份错误列表,对程序修改点进行审查。
(2)对于代码走查
代码走查定义为:以小组为单位进行代码审查,不同点是小组成员对测试用例在程序中的运行进行推演。问题就是,目前并未使用过此类评审。
详细可参考:《软件测试的艺术(读书笔记5)》(https://www.cnblogs.com/chengabc/p/11331771.html)
3、测试基础部分
测试基础包括:测试用例设计方法、单元测试方法和高级别测试方法。
(1)测试用例设计方法
测试用例设计方法包括:黑盒和白盒测试方法。
黑盒测试方法常用有:等价类划分方法、边界值分析方法和错误推测法。
白盒测试方法有:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、多重条件覆盖。
方法其实很简单,但是如果在工作中使用这些方法对程序设计合理的测试用例,是一件非常有挑战性的工作。
详细可参考:《软件测试的艺术(读书笔记2)》(https://www.cnblogs.com/chengabc/p/11254877.html)
(2)单元测试方法
单个模块测试
1.在模块源码基础上分析模块的逻辑结构;
2.根据白盒测试方法设计测试用例;
3.接着查看模块的规格说明书;
4.使用黑盒测试方法补充测试用例。
多个模块测试
1.使用增量式测试
2.选择自顶向下或自底向上的测试方法
3.使用自动化工具对多个模块进行测试
详细可参考:《软件测试的艺术(读书笔记3)》(https://www.cnblogs.com/chengabc/p/11260916.html)
(3)高级别测试方法
更高级别测试是为了降低从需求端到代码段之间信息转换不一致,所导致的各类型软件错误。更高级别测试包括:模块测试、功能测试、系统测试、验收测试、可用性测试等。其中系统测试比较多,需要重点考虑。
详细可参考:《软件测试的艺术(读书笔记4)》(https://www.cnblogs.com/chengabc/p/11297967.html)
4、开发中的调试和测试思想
(1)调试思想
1.暴力调试方法:看内存信息、打印日志、添加断点Debug。
2.归纳法调试:通过获取的正确和不正确的数据,研究数据之间联系,找出产生错误的原因,进而解决问题。
3.演绎法调试:根据搜集到的数据,列举出可能的根原因,根据数据之间关系排除不能的原因,进而解决问题。
4.回溯法调试:在出现错误的位置,逆向执行程序找到程序逻辑出错的位置。
调试过程分为两个步骤:定位错误和修改错误。错误修改后,我们应该对错误进行分析,试图获得一些改进编码和设计的启示。
详细可参考:《软件测试的艺术(读书笔记6)》(https://www.cnblogs.com/chengabc/p/11335893.html)
(2)敏捷开发和测试思想
为了应对日益增长的软件需求,一些开发人员提出敏捷开发的思想,敏捷开发的主要特征:客户参与,迭代开发,测试驱动。相应的也需要敏捷测试提升软件测试的效率,敏捷测试的特征:客户参与,自动化测试,项目跟进。
在小型的项目中,通过使用极限编程方法和极限测试方法可以加快开发进程,并保证产品的质量。
详细可参考:《软件测试的艺术(读书笔记7)》(https://www.cnblogs.com/chengabc/p/11351334.html)
5、软件测试最新应用
本书的第10章讲解web测试,本书第11章讲解移动设备测试,目前在工作中均为接触到,以后用到可以再看。