1,软件测试的定义和目的的理解
①为了发现程序的代码错误和逻辑错误②为了交付出更高质量的产品③为了提升用户体验④审核产品是否符合用户的需求
2,软件测试的阶段
①计划阶段:制定测试计划,申请人力,资源设备等。②设计阶段:主要是写测试用例,会参考需求分析,概要设计等文档。③执行阶段:搭建测试环境,执行测试,报bug等④评估阶段:对当前版本给出评估,出总结报告⑤验收阶段:评估过后给客户或者产品经理验收
3,软件测试模型:
①V模型:开发和测试同时进行。左侧是开发的流程,右侧是测试的流程。
需求分析(写作文):明确客户需要的功能(给了个题目,确定文体) 概要设计:架构的实现(要写几段,举什么例子) 详细设计:对概要设计的表述进行分析(确认具体每段要怎么写) 编码:写代码(写作)
单元测试(一般由开发完成)-->集成测试(一般由开发完成)-->系统设置(进行完整的系统测试,根据需求文档和测试用例来进行测试)-->验收测试(用户对软件进行验收)
4,软件测试的种类:
1,单元测试2,集成测试3,系统测试4,验收测试,5,白盒测试(需要对代码有了解)6,功能测试(测试软件功能是否符合要求,通常用黑盒测试,黑盒测试也叫数据驱动测试)7,回归测试(错误被修正或软件功能,环境发生变化后进行重新测试,需要适当扩大范围)8,Alhpa测试 (前期的用户测试,此时系统刚刚研发完成,只能用户参加,研发和测试不能在场)9,Beta测试(一种后期的用户测试,此时系统已经通过内部测试,大部分错误已经改正,预发布)10,压力测试11,负载测试12,性能测试(10-12是性能这块的,不需要具体理解)13,易用性测试(测试软件是否易用,主观性较强,一般用户来做)14,安装与卸载测试(测试软件在全部,部分,升级等状态下的卸载,安装过程)15,安全性测试(测试系统防止非法入侵的能力)16,兼容性测试(测试改系统与其他软硬件兼容的能力)
5,Alpha和Beta的共同点和区别:
共同点:不能由程序员或者测试员完成
区别:Alpha测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试。Beta测试是软件在一个或多个用户的实际使用环境下进行的测试,开发者通常不在测试现场
6,c/s和b/s架构的区别:
c/s:client-server,客户端/服务器,一定要安装一个客户端才能够使用的软件,就叫做c/s。
缺点:必须更新客户端才能用最新服务
b/s:browser-server,浏览器/服务器,只需要一个浏览器,就可以访问服务的,就叫做b/s。
优点:只需要更新服务器就ok,不需要去更新软件,用户主动性高
7,软件测试专有名词
①等价类划分,边界值分析法:等价类划分是指某个输入域的集合,一般分为有效等价类和无效等价类。如分数0-59是不及格,60-100为及格,1-100都是有效等价类,<0和>100是无效等价类。边界值分析是建立在边界值基础上,从等价类的边缘值去寻找。比如说0-59这个集合里面,0,1,58,59,60都是边界值。
②错误推测法:用错误的操作,来检验软件是否给出正确的反应。比如微信发红包,发201元,看看是否会给出无法发送提示。
③因果图法/判定表法(实际测试用的较少,但面试可能会考):因果图法最终生成的就是判定表,适合检查程序输入条件的各种组合情况,一般可以根据因果图画出判定表
判定表
④场景法:也叫业务逻辑测试法,可以根据逻辑来测试不同场景,接近白盒测试,比如一个网站的登陆功能:
8,隐性需求(消费者在头脑中有想法但没有直接提出、不能清楚描述的需求)要怎么办?
①借鉴同类产品②咨询开发或者产品,尽可能挖掘更多信息③三方一起开会讨论(市面上没有同类产品情况下)
9,如何做需求分析?
①知道具体是做什么的②知道业务场景有哪些③功能分析:主要的功能第一阶段测试,次要的功能第二阶段测试,易用性需求(如微信摇一摇易用性比qq的下拉抢红包好),编辑约束(在功能执行时,对项目的一些约束性条件,如限制大小写之类),参数需求,权限需求(管理员权限比普通用户权限高)
10,测试用例写法
用例编号,功能模块,用例名称,前提条件,操作步骤,期望结果,实际结果,备注。