软件测试概念:
一、什么是软件测试?
1、软件测试是指使用人工或者自动手段,来运行或测试某个系统的过程。其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。
二、一般的软件测试的应用场景有:
APP、代码、WEB和小程序。
三、软件测试的发展历程:
软件测试从开始到现在,已经经历了三个阶段的发展,到现在正式第三阶段到第四阶段的过渡期;
第一阶段:定义的软件测试,是去证明软件是正确的。在这种情况下,导致了很多异常的情况根本无法被发现,软件的质量都比较差,不稳定,很容易出问题;
第二阶段:软件测试是去证明软件是错误的。软件测试就是去找软件存在的问题,虽然现在软件测试已经发展到第三阶段很久了,但是好多做测试的还是在以这个思路去测试软件。
第三阶段:实现了一个跨越式的变化,把软件测试和软件的质量关联了起来。软件测试再也不是单纯的去找BUG,还要起到一 个预防BUG的作用,也就是说,做测试不能单纯的去找BUG,而要去知道BUG产生的原因是什么,怎么才能避免产生更多的BUG。
第四阶段:软件测试从本质和定义上没有什么变化,但是随着国内的软件行业的快速发展,对软件测试的要求,越来越偏向于技术。后期应注重自我技能的提升,不断学习,避免被淘汰;
四、软件测试的分类:
按照测试方向分:功能测试、性能测试、安全测试
功能测试:是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能;其实就是现在常见的点点点。
性能测试:是对产品的各功能的性能指标进行测试,通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试;
安全测试:常规是指对产品的数据安全性进行测试,模拟黑客攻击我们的系统,发现安全漏洞,即时修复。常见的安全测试手段有SQL注入,漏洞扫描,暴力破解,跨站攻击等等。
静态测试:是指不运行被测试产品本身,通过分析源程序代码检查产品的正确性; 动态测试:是指把产品运行起来进行测试产品的运行结果与预期结果的差异,并分析其性能指标。
按测试方法进行分类:黑盒测试、白盒测试、灰盒测试;
黑盒:着重与程序的外部结构,不考虑内部逻辑;
白盒:考虑内部逻辑结构,对外部结构透明;
灰盒:介于黑白盒之间,既考虑输入输出的正确性,也考虑程序内部结构;
按软件类型分类:APP测试,WEB测试,小程序测试等
按测试阶段分类:单元测试、集成测试、系统测试、验收测试
单元测试:项目还在写方法(函数)的时候,就是整个软件还没有成型的时候就进行测试了。测试内容只要是对开发写的代码进行测试,目前国内这个阶段一般由开发自己完成;
集成测试:是指测试模块与模块之间的接口,主要是对接口的测试;
系统测试:是指对整个项目做一个完整的测试**。包括了UI测试、功能测试、兼容性测试、性能测试,等等;
验收测试也称上线测试:是在整个软件已经开发完毕,上线发布这个软件前会做一个上线前测试,没有明显的BUG了,达到了可以给用户使用的标准了。
冒烟测试:二八原则,杀虫剂悖论 检查开发提交的产品是否具备测试的条件。随意的测试一下整个产品。例如:在系统测试中,挑选几个比较重要的接口,发现一半的接口都在报错,即为冒烟测试不通过,转给开发重新完成开发。
五、测试用例的设计方法
1、等价类
等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试,因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件就可以用少量代表性的测试数据取得较好的测试结果。等价类划分可有两种不同的情况:有效等价类和无效等价类。
1)有效等价类
是指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。
2)无效等价类
与有效等价类的定义恰巧相反。无效等价类指对程序的规格说明是不合理的或无意义的输入数据所构成的集合。对于具体的问题,无效等价类至少应有一个,也可能有多个。
设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接收合理的数据,也要能经受意外的考验,这样的测试才能确保软件具有更高的可靠性。
2、边界值
边界值分析法:就是对输入或输出的边界值进行测试的一种黑盒测试方法。长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。
比如:某输入条件规定了值得范围是:0-50,那么作为测试输入数据的取值是;0,-1,50,51
3、场景法
场景法:就是把自己想像成用户,去想用户面对这个功能会做些什么操作,把所有用户能够做的任何操作,都想象一遍。
4、猜错法
猜错法:指的是在测试程序时,测试人员可以根据经验或直觉推测程序中可能存在的各种错误,进而有针对性地编写检查这些错误的测试用例的方法。例如, 在单元测试时曾列出的许多在模块中常见的错误. 以前产品测试中曾经发现的错误等, 这些就是经验的总结。还有, 输入数据和输出数据为0的情况。输入表格为空格或输入表格只有一行. 这些都是容易发生错误的情况。可选择这些情况下的例子作为测试用例.总之,就是进行错误的操作。