测试工程师的一些思考

为什么要在一个团队中开展软件测试工作?
因为没有经过测试的软件很难在发布之前知道该软件的质量,就好比ISO质量认证一样,软件同样也需要质量的保证,这个时候就需要在团队中开展软件测试的工作。在测试的过程发现软件中存在的问题,及时让开发人员得知并修改问题,在即将发布时,从测试报告中得出软件的质量情况。

软件测试的目的?
测试的目的是以最少人力、物力和时间找出软件中潜在各种错误和缺陷,通过修正种错误和缺陷提高软件质量,回避软件发布后由于潜在的软件缺陷和错误造成的隐患带来的商业风险。

软件的分类?

做好测试计划工作的关键是什么?

1. 明确测试的目标,增强测试计划的实用性
编写软件测试计划得重要目的就是使测试过程能够发现更多的软件缺陷,因此软件测试
计划的价值取决于它对帮助管理测试项目,并且找出软件潜在的缺陷。因此,软件测试计划
中的测试范围必须高度覆盖功能需求,测试方法必须切实可行,测试工具并且具有较高的实
用性,便于使用,生成的测试结果直观、准确
2.坚持“5W”规则,明确内容与过程
“5W”规则指的是“What(做什么)”、“Why(为什么做)”、“When(何时做)”、“Where
(在哪里)”、“How(如何做)”。利用“5W”规则创建软件测试计划,可以帮助测试团队理
解测试的目的(Why),明确测试的范围和内容(What),确定测试的开始和结束日期(When),
指出测试的方法和工具(How),给出测试文档和软件的存放位置(Where)。
3.采用评审和更新机制,保证测试计划满足实际需求
测试计划写作完成后,如果没有经过评审,直接发送给测试团队,测试计划内容的可能不准
确或遗漏测试内容,或者软件需求变更引起测试范围的增减,而测试计划的内容没有及时更
新,误导测试执行人员。
4. 分别创建测试计划与测试详细规格、测试用例
应把详细的测试技术指标包含到独立创建的测试详细规格文档,把用于指导测试小组执
行测试过程的测试用例放到独立创建的测试用例文档或测试用例管理数据库中。测试计划和
测试详细规格、测试用例之间是战略和战术的关系,测试计划主要从宏观上规划测试活动的
范围、方法和资源配置,而测试详细规格、测试用例是完成测试任务的具体战术。

做好测试用例设计工作的关键是什么?

白盒测试用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果
黑盒法用例设计的关键同样也是以较少的用例覆盖模块

测试用例常见的设计方法有?

等价类划分法、边界值分析法、错误推测法、判定表法、正交实验法

测试计划工作的目的是什么?测试计划工作的内容都包括什么?其中哪些是最重要的?

软件测试计划是指导测试过程的纲领性文件,对测试工作的计划和安排包含了产品概述、测试策略、测试方法、测试区域、测试配置、测试周期、测试资源、测试交流、风险分析等内容。

借助软件测试计划,参与测试的项目成员,尤其是测试管理人员,可以明确测试任务和测试方法,保持测试实施过程的顺畅沟通,跟踪和控制测试进度,应对测试过程中的各种变更。
测试计划和测试详细规格、测试用例之间是战略和战术的关系,测试计划主要从宏观上规划测试活动的范围、方法和资源配置,而测试详细规格、测试用例是完成测试任务的具体战术。

所以其中最重要的是测试测试策略和测试方法(最好是能先评审)

软件测试过程中较常见的困难是什么?如何有效克服这些困难? 

①Bug的重现问题:有些Bug只是偶尔出现的,根本就不知道具体需要什么条件才能重现Bug.
解决方法:将不能重现的Bug,利用截图的方式记录下来。并说明一系列的操作步骤
②Bug的更新:旧的Bug修改好之后,很多时候会引发更多Bug的出现。
解决方法:对更新的功能模块重点的测试之后,再重新测试和更新的功能密切的模块,会不会产生新的Bug.
③与开发人员的沟通和对业务流程理解的分歧,经常缺少需求文档
解决方法:根据需求说明书和Bug情况,多多和开发人员进行交流

web测试和手机测试有什么区别?

相同点:

①都需要经历测试计划方案,用例设计,测试执行,缺陷管理,测试报告等相关活动。

②都需要进行功能测试、性能测试、安全性测试、GUI测试等测试类型。

区别:

①性能测试,在WEB测试只需要测试响应时间这个要素,在App测试中还需要考虑流量测试和耗电量测试。

兼容性测试:在WEB端是兼容浏览器,在App端兼容的是手机设备。而且相对应的兼容性测试工具也不相同,WEB因为是测试兼容浏览器,所以需要使用不同的浏览器进行兼容性测试(常见的是兼容IE6,IE8,chrome,firefox)如果是手机端,那么就需要兼容不同品牌,不同分辨率,不同android版本甚至不同操作系统的兼容。(常见的兼容方式是兼容市场占用率前N位的手机即可),有时候也可以使用到兼容性测试工具,但WEB兼容性工具多用IETester等工具,而App兼容性测试会使用Testin这样的商业工具也可以做测试。

②安装测试:WEB测试基本上没有客户端层面的安装测试,但是App测试是存在客户端层面的安装测试,那么就具备相关的测试点。

③App测试基于手机设备,还有一些手机设备的专项测试。如交叉事件测试,操作类型测试,网络测试(弱网测试,网络切换)

交叉事件测试:就是在操作某个软件的时候,来电话、来短信,电量不足提示等外部事件。

操作类型测试:如横屏测试,手势测试

网络测试:包含弱网和网络切换测试。需要测试弱网所造成的用户体验,重点要考虑回退和刷新是否会造成二次提交。弱网络的模拟,据说可以用360wifi实现设置。

④从系统架构的层面,WEB测试只要更新了服务器端,客户端就会同步会更新。而且客户端是可以保证每一个用户的客户端完全一致的。但是APP端是不能够保证完全一致的,除非用户更新客户端。如果是APP下修改了服务器端,意味着客户端用户所使用的核心版本都需要进行回归测试一遍。

⑤升级测试:升级测试的提醒机制,升级取消是否会影响原有功能的使用,升级后用户数据是否被清除了。

 

陈述一个缺陷的生命周期(你们是怎么管理bug的?)

 

注:深绿色状态为测试经理设置

  浅绿色状态为测试员设置

  浅蓝色状态为开发人员设置

缺陷各个不同的状态如下:

1.New        新建
2. Open       打开 
3. Assign     指派
4. Test        测试
5. Verified     确认
6. Deferred    延期
7. Reopened    重新打开
8. Duplicate   重复
9. Rejected    拒绝
10. Closed     关闭

 

怎样保证负责的模块通过了测试?
首先是了解用户的需求,设计好的测试用例,严格的进行用例的评审,认真的执行测试用例,对自己提交的Bug进行详细的描述。
反复测试,增强测试的准确性,通过冒烟回归随机测试挖掘缺陷提高测试工作质量,把各个模块整体运行发现未曾出现的错误,完善测试用例

性能测试工作的目的是什么?做好性能测试工作的关键是什么?
性能测试工作的目的是检查系统是否满足在需求说明书中规定的性能,性能测试常常需要和强度测试结合起来,并常常要求同时进行软件和硬件的检测。性能测试主要的关注对象是响应时间,吞吐量,占用内存大小(辅助存储区),处理精度等。
 
功能测试和性能测试的区别是什么?
①测试目的:
功能测试:检查实际软件的功能是否符合用户的需求,测功能是不是全部实现,某个实现是不是有BUG。
主要为了发现以下几类错误:
A、是否有不正确或遗漏的功能?
B、功能实现是否满足用户需求和系统设计的隐藏需求?
C、能否正确接收输入?能否正确输出结果?
性能测试:验证软件质量的三个质量特性,可靠性,正确性和效率。主要是测试产品的健壮性
②测试方式:
功能测试:按照系统需求说明书和测试用例,对产品的功能一步步进行测试。找出产品功能是否全部实现
性能测试:一般都使用性能工具对产品的健壮性进行评估。通过创建场景和虚拟用户来模拟真是环境,进行压力测试和负载测试。
 
给一个网站,如何开展测试?
 
1.查找需求说明、网站设计等相关文档,分析测试需求。
2.制定测试计划,确定测试范围和测试策略,一般包括以下几个部分:功能性测试、界面测试、性能测试、数据库测试、安全性测试、兼容性测试。
3.设计测试用例:
功能性测试:1链接测试。链接是否正确跳转,是否存在空页面和无效页面,是否有不正确的出错信息返回等。2提交功能的测试。3多媒体元素是否可以正确加载和显示。4多语言支持是否能够正确显示选择的语言等。
界面测试:1页面是否风格统一,美观  2页面布局是否合理,重点内容和热点内容是否突出   3控件是否正常使用   4对于必须但为安装的空间,是否提供自动下载并安装的功能  5文字检查
性能测试:压力测试、负载测试、强度测试
数据库测试:要具体决定是否需要开展。数据库一般需要考虑连结性,对数据的存取操作,数据内容的验证等方面。
安全性测试:1基本的登录功能的检查2是否存在溢出错误,导致系统崩溃或者权限泄露3相关开发语言的常见安全性问题检查,例如SQL注入等。4如果需要高级的安全性测试,确定获得专业安全公司的帮助,外包测试,或者获取支持
兼容性测试:根据需求说明的内容,确定支持的平台组合。1浏览器的兼容性2操作系统的兼容性3软件平台的兼容性4数据库的兼容性
4.开展测试,并记录缺陷。合理的安排调整测试进度,提前获取测试所需的资源,建立管理体系(例如,需求变更、风险、配置、测试文档、缺陷报告、人力资源等内容)。
5.定期评审,对测试进行评估和总结,调整测试的内容。
posted @ 2020-03-19 15:29  keena_jiao  阅读(608)  评论(0编辑  收藏  举报