#学习笔记3#测试基础—软件测试原则

作为一个小白,很有必要定期去巩固基础知识,以下的原理内容是直接参考《软件测试的艺术》一书,结合自己近期的工作加了一些感想,理论结合实际才能走得更远呀。
一、软件测试的原则
1.测试用例中一个必需部分是对预期输出或结果进行定义
如果没有对预期结果进行定义,那么可能会把错误的相似的结果当成正确的输出。举个例子:在进行3个有包含关系的接口查询时,在jmeter中的IP和端口是一样的,然后调用接口查询得出结果,正确的结果应该是下图1这样的,
图1:接口查询结果内容关系
在测试的时候如果没有理清楚关系,很容易把这三个接口的功能弄混,没有达到测试的目的。

2.程序员应当避免测试自己编写的程序
在软件测试中,一般单元测试是交给开发人员自己完成的,在集成测试的时候交由测试人员进行。俗话说,看自己的孩子总是很满意的,自己表达出来的自己理解当然是OK的,所以需要别人去理解,看是不是已经表达清楚了。最近测试的项目,前端界面上有两个挨着的按钮“重计费”和“重新计费”,两个按钮的功能和逻辑是不一样的,但是这个一看就很晕,用户肯定看着也很晕,开发自己知道不一样没用啊,所以最后是合并了,终于不别扭了(希望开发不要看到。。。)

3.编写软件的组织不应当测试自己编写的软件
这个原则我还不是很理解,书上的原话如下:从很多方面来讲,一个软件项目或者编程组织是一个有机的机构,具有与个体程序员相似的心理问题。而且在大多数情况下,主要是根据其在给定时间、特定成本范围内开发软件的能力来衡量编程组织或项目经理。其中一个原因是,度量时间和成本目标比较容易,而定量地衡量软件的可靠性则及其困难。即便是合理规划和实施的测试过程,也可能被认为降低了完成进度和成本目标的可能性。因此,编程组织难以客观地测量自己的软件。
可能思想达不到那个高度,我觉得是不同的人就可以了,这个估计要问问导师。

4.应当彻底检查每个测试的执行结果
“在后续测试中发现的错误,往往是前面测试遗漏掉的”,好像确实会有这种情况。一般开始一个测试任务,我是对照测试用例去一个个测试的,但是有时候测试用例可能并不是那么详尽。比如之前测试excel的导出,可以正常导出,excel的字段也是完整的,但是在后面发现有一个字段一直是空的前面没有做校验。不过个人觉得还是跟经验有关,实践多了之后就能够尽量避免这种情况的出现。

5.测试用例的编写不仅应当根据有效和预期的输入情况,而且也应当根据无效的和为预料到的输入情况
这种在简单的查询或注册功能中就可以体现。比如是否允许输入空参数,输入无效字符,是否允许密码为空,密码为字符,密码有特殊符号等等情况。虽然程序在上线正常运行过程中,大多数情况都是有效和预期的输入,但就是这些特殊情况反而更能够体现程序的强健。不知道是不是有点职业习惯,最近注册一些网站什么的都会特意去输入一些非正常的字符,看下是否会有提示,目前还没有发现人家的bug~~~

6.检查程序是否“未做其应该做的”仅是测试的一半,测试的另一半是检查程序是否“做了其不该做的”
“这条原则是上条原则的必然结果”,希望程序对于不需要做的事情可以避开,暂时没有其他的感想和体验(有想法的小伙伴可以评论区分享哦)

7.应避免测试用例用后则弃,除非软件本身就是一个一次性的软件
这里主要是考虑到回归测试,一个项目可能会有1.1,1.2设置更多版本的升级优化,每一次修改代码都需要对之前的功能进行一个重新的测试,这个时候如果重新设计测试用例浪费人力,因为大多数的用例跟之前是一样的。比如在原来的功能上增加一个导出的功能,不可能因为这个将整个项目的用例重新设计,也不能不测试之前的功能,所以需要保存并设计好的用例。除此之外,重新设计用例还会导致忽略之前可以执行的用例,bug被隐藏。

8.计划测试工作不应默许假定不会出现错误
就是不要想着可能这次测试不会有bug,bug是一定会有的(哈哈哈)。其实找到bug就说明程序还有改进的机会,作为测试人员,每次找到bug还是很有成就感的(可能还太嫩了)。不过看到一个自己执行完测试用例找不到bug的程序又是很高兴的,说明我们的开发小伙伴水平不错嘛

9.程序某部分存在更多错误的可能性,与该部分已发现错误的数量成正比
找到较多错误的地方往往存在着更多的错误。有点绕,举个栗子,两个模块A和B,在相同的测试力度下,如果A找出了3个bug,B找出了5个bug,那么B可能存在更多错误。这个目前没有专业的解释,可能bug喜欢群居==
在测试项目的时候,好像真的是有些项目会记录下5条bug,有些会只有1条bug,这时候我会对bug多的模块多测几遍,发现真的问题不少,不能解释的“秘密”,大家懂就好了。

10.软件测试是一项极富创造力、极具智力挑战性的工作
貌似很多行业都会这样说(为专业的测试人员打call),创造力是指我们需要不断思考怎么找到更多的bug,挑战性是指需要不断学习新知识,包括测试的自动化,IT行业各种工具的学习,各种语言的升级。。。?总之应该真正能做好是很牛逼的,我导师就很牛逼,真的

软件测试知识的学习任重而道远,加油

猜你喜欢

转载自blog.csdn.net/qq_36404042/article/details/80546787
今日推荐