一、测试流程
1.首先是需求分析:参与需求评审会议,阅读需求、理解需求,观察需求是否合理。需求会议之后,
2.制定测试计划,确定测试阶段,测试内容和范围,项目人员分配,项目整体计划:要发布的时间节点等问题。
3.然后是测试设计阶段,编写测试用例,用例编写完成后进行测试用例的评审。等到开发产品编程完毕,
4.开始进入测试执行阶段,先进性预测试,再进入正式的测试。测试过程中发现的bug全部提交到缺陷管理平台,并对bug进行跟踪,
5.进行回归测试,直至满足用户需求。测试结束后,对测试结果进行分析,
6.编写测试报告,之后就是运维发布上线,上线后关注线上产品是否正常运行。
二、测试用例编写方法
1)等价类划分2)边界值3)判定表4)因果图5)正交试验(分析测试需求获取因子和水平,选择合适的正交表,替换因子水平,获取试验次数,根据经验或其他因素补充试验次数,细化输出获得测试用例)6)状态迁移法7)流程分析法(场景设计法)。
获取参与试验影响结果的条件即因子,影响因子的取值或输入成为水平,
三、测试用例评审
测试用例评审:由产品人员、开发人员、测试人员针对测试用例能否用于项目。
(1)用例设计的清晰度与合理性
(3)是否覆盖了需求上的所有测试点
(4)用例是否具有很好的可执行性
(5)用例的冗余处理机制
(6)是否设计了充足的异常测试用例
(7)是否从用户的角度出发来设计用户使用场景和使用流程的测试用例
(8)是否简洁,复用性强
(2)优先级排定是否合理
四、如何判断一个问题是bug?
站在开发的角度,看功能是否符合需求规格说明书。站在用户角度看功能是否满足需求,容易操作。
五、怎么测试一个行李箱
首先找需求规格说明书,没有的话从我自己的认识考虑。
1.功能测试
考虑拉杆箱大小、厚度、容量、各个面(包括拉杆面、脚轮面)承重、拉杆承重是否符合质检标准;超出容量、超出承重会有什么影响;拉杆的伸缩收回是否灵活;箱子的开锁解锁是否方便安全;
2.界面测试
我会考虑箱子的材质、颜色、花纹、形状是否符合要求;箱子吊牌logo是否正确
3.易用性测试
箱子拉杆手把是否易握防滑、箱子开合的拉链是否易拖动、脚轮是否灵活
4.兼容性测试
兼容性方面,箱子脚轮滚动是否支持平底、沙地、泥土地、楼梯使用;还有不同的温度下使用情况。
5.安全性测试
材质是否安全无毒;遇高温、淋雨是否释放有害物质;边角是否光滑无棱角;
6.性能测试
材质是否安全无毒;遇高温、淋雨是否释放有害物质;边角是否光滑无棱角;
六、项目中遇到 的困难,怎么解决?
就是测试的时间总是被开发挤得的很少,之前有沟通要他们早点提测,但效果不明显,这个是工作中我遇到的一个困难。解决这种状况,提议重新规范整个开发测试流程,设定完成任务的时间节点,每个节点任务及时督促完成,避免拖拉。现在提测规范了很多,测试时间也充裕了很多。
但测试过程中回归测试频率很高,所以还是会需要很多的测试时间。
目前在尝试着将这部分用自动化实现回归测试,从而缩减测试周期。
七、项目做了测试相关的?
1.测试计划书,写了测试阶段【单元测试、集成测试、系统测试、验收测试、回归测试】,建立测试的内容和范围(功能测试、界面测试、性能测试、负载测试、兼容性测试、本地测试等)、测试人员分配问题;时间节点分配。
**单元测试:**是对软件中基本组成单位进行的测试,如一个模块,一个过程等。单元测试目的是保证源代码的正确性,主要用白盒测试方法。目的是检测代码的开发是否符合 详细设计的要求。
**集成测试:**集中在证实和程序构成问题上,主要目的是检查软件单元之间的接口是否正确,主要采用黑盒测试,辅之以白盒测试方法。主要目的是检测此前测试过得各个部分是否能完好结合
**系统测试:**是对已经集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能等满足其规约所指定的要求。检测已经集成在一起的产品是否符合系统规格说明书的要求
**验收测试:**旨在向软件的购买者展示改软件系统满足用户的需求,它的测试数据通常是系统测试的测试数据的子集。
回归测试在软件的维护阶段, 对软件进行修改后进行的测试,目的是检验对软件进行的修改是否正确。即测试人员在对程序进行测试时发现bug,然后返还程序员进行修改,程序员进行修改后发布新的软件包给测试人员,测试人员需要对这个程序进行重新测试,从而保证程序在修正以前bug的情况下,正常运行,且不会带来新的错误。一般情况是不需要全面测试的,而是根据修改的情况进行有效的测试。
八、自动化测试和手工测试?
1.测试效率不同
完成同等数目的测试,启动自动化速度更快,手工测试则需要消费更多的时间。但是自动化测试的脚本开发比用例开发耗时长,包括编写脚本、调试脚本、维护脚本,而手工测试虽然也要对测试用例进行撰写、评审、修订,由于用例编写更多为自然语言,时间上会少。
2.资源利用率不同
自动化测试在设备、仪表资源能够7*24小时利用,这点上手工测试没有可比性。
3.执行可靠性不同
在同等时间内,启动自动化测试能够覆盖更多的功能,而手工测试只能覆盖小部分功能。但是自动化测试适合回归测试,开发中的功能不划算。对于开发中功能,需求或者实现的更改,都会导致自动化脚本的变更,开发中的功能更适合手工测试。
自动化测试不能代替手工测试,因为并不是所有的功能自动化测试都可以实现,它的效率也不高,而手工测试能通过人为的逻辑判断效验当前的步骤是否正确,同时用例的执行具有一定步骤跳跃性,能够清楚知道逻辑,细致定位问题。
4.覆盖率不同
在同等时间内,启动自动化测试能够覆盖更多的功能,而手工测试只能覆盖小部分功能。但是自动化测试适合回归测试,开发中的功能不划算。对于开发中功能,需求或者实现的更改,都会导致自动化脚本的变更,开发中的功能更适合手工测试。
自动化测试不能代替手工测试,因为并不是所有的功能自动化测试都可以实现,它的效率也不高,而手工测试能通过人为的逻辑判断效验当前的步骤是否正确,同时用例的执行具有一定步骤跳跃性,能够清楚知道逻辑,细致定位问题。
九、场景法测试
1.首先根据需求规格说明得到正常操作的基本流和非正常情况的备选流。
2.根据基本流和备选流生成场景。
比如场景法测试银行取钱系统
分为基本流和备选流
基本流:插入卡后,输入密码正确,取款操作,取款成功打印凭条后退卡,完成取款流程
备选流:
插入卡后:卡无效或者账号不存在,退卡结束流程
输入密码:密码输入错误不得超过3次,否则给出提示并退卡结束流程
选择取款操作后:ATM已无现金,退卡结束流程
以下三种情况需要给出提示后重新输入取款金额
1.取款金额>账户余额
2.取款金额>ATM 机余额
3.取款金额>取款额度
十、Alpha测试和Beta测试
Alpha测试是一个由用户在开发者的场所进行的受控测试,Alpha测试不能由程序员或测试员完成。Alpha测试发现的错误,可以在测试现场立刻反馈给开发人员,由开发人员及时分析和处理。目的是评价软件产品的功能、可使用性、可靠性、性能和支持。尤其注重产品的界面和特色。Alpha测试可以从软件产品编码结束之后开始,或在模块测试完成后开始,也可以在确认测试过程中产品达到一定的稳定和可靠程度之后再开始。
Beta测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,Beta测试不能由程序员或测试员完成。Beta测试是在开发者无法控制的环境下进行的软件现场应用。在Beta测试中,由用户记录遇到的所有问题,包括真实的以及主管认定你给的,定期向开发者报告,开发者在综合用户的报告后,作出修改,最后将软件产品交付给用户全体使用。Beta测试注重产品的支持性,包括文档、客户培训和支持产品的生产能力。只有当Alpha测试达到一定的可靠程度后,才能开始beta测试。由于beta测试的主要目标是测试可支持性,所以beta测试应该尽可能由主持产品发行的人员来管理。
十一、白盒测试、黑盒测试
白盒测试,又称结构测试或逻辑驱动测试,已知产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都能按照预定要求正常工作,而不顾它的功能,
白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。
白盒测试用例设计方法:基本路径测试、边界值分析、覆盖测试、循环测试、数据流测试、依据是详细设计说明书及其代码结构
白盒法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。是穷举路径测试。
白盒测试工具是对源代码进行的测试,测试的主要内容包括词法分析与语法分析、静态错误分析、动态检测等
白盒测试中的逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定\条件覆盖、条件组合覆盖和路径覆盖。六种覆盖标准发现错误的能力呈由弱到强
1.语句覆盖每条语句至少执行一次
2.判定覆盖每个判定的分支至少执行一次
3.条件覆盖每个判定的条件应取到各种可能的值
4.判定条件覆盖同时满足判定覆盖和条件覆盖
5.条件组合覆盖每个判定中各条件的每一种组合至少出现一次
6.路径覆盖使程序中每一条可能的路径至少执行一次。
白盒测试是想对程序模块作如下检查:
1.对程序模块的所有独立路径至少测试一遍
2.对所有的逻辑判定,取“真”“假”的两种情况至少测试一遍
3.在循环的边界和运行的界限内执行循环体
4.测试内部数据结构的有效性等等
黑盒测试,又称为功能测试或数据驱动测试,已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。黑盒测试要在软件的接口处进行,这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的工嗯呢该是否符合它的功能说明。
黑盒测试主要发现以下几类错误:
1.是否有不正确或遗漏的功能
2.接口上,是否能正确接受输入,能否正确输出结果。
3.是否有数据结构错误或外部信息访问错误
4.性能上是否能够满足要求
5.是否有初始化或终止性错误?
黑盒测试用例设计方法:基于用户需求的测试、功能图分析方法、等价类划分方法、边界值分析方法、因果图方法、判定表驱动分析方法、依据是用户需求规格说明书,详细设计说明书
黑盒测试
1.等价类划分
将系统的输入域分为若干部分,然后从每部分选取少量代表性数据进行测试。等价类可以划分为有效等价类和无效等价类.
2.边界值分析法
是对等价类划分的一种补充,因为大多数错误都在输入输出的边界上,边界值分析就是假定大多数错误出现在输入条件的边界上,如果边界附近取值不会导致程序出错,那么其他取值出错的可能性也很小
3.正交实验法
正交是从大量的试验点中挑选适量的、有代表性的点。正交试验设计是研究多因素水平的一种设计方法,他是一种基于正交表的高效率、快速经济的试验设计方法
4.状态迁移法
是对一个状态在给定的条件内能够产生需要的状态变化,有没有出现不可达的状态和非法的状态,状态迁移法师设计足够的用例达到对系统状态的覆盖、状态、条件组合、状态迁移路径的覆盖
5.流程分析法
主要针对测试场景类型属于流程测试场景的测试项下的测试子项进行设计
6.判定表分析法
判定表是分析和表达多种输入条件下系统执行不同动作的工具,可以把复杂的逻辑关系和多种条件组合的情况表达的具体明确。
7.因果图法
因果图是用于描述一同输入输出之间的因果关系、约束关系。
十二、web测试和APP测试不同点
系统架构方面:
web项目,b/s架构,基于浏览器
app项目,c/s架构,需要有客户端
web测试只要更新了服务器端,客户端会自动同步更新,app项目需要客户端和服务器端都更新
性能方面:
web页面主要关注响应时间
app需要关心流量、电量、CPU、GPU、内存等
服务器端没有区别
兼容方面:
web 基于浏览器,所以更倾向于浏览器和电脑硬件,电脑系统方向的兼容
app测试则要看分辨率、屏幕尺寸、设备系统等
web测试是基于浏览器不用考虑卸载和安装
app需要测试安装、更新、卸载。异常场景:安装时中断、弱网、安装后删除安装文件
app还需要测试网络、适配性等