软件测试培训-基础篇

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件与使用者的互动缺陷
■新增/修改信息保存提交后系统给出“保存/提交/修改成功 ”提示信息,并自动更新显示 ■ 在用户进行大量的输入后,点击保存按钮,仅仅是因为某 个地方的输入选择不正确,点击确定后发现所有的输入的 内容都全部被清空了,花费很长时间的输入、仅仅是某个 地方的输入不正确,而把该用户的所有输入的其他内容也 清空了,假如你是这个软件的使用者、你肯定感觉挺挺恼 火的(航班信息填写)
一:如何找软件中的Bug
按照作者的观点:凡是不符合用户需求的,或者应用用户使用 的、给用户在使用软件过程中造成不便的,都认为它是软 件缺陷 ------话虽然说的有点极端,但是事实就是如此
------那么我们作为一名软件测试人员,如何去找到软件中的 缺陷Bug 呢?
首先:最重要的是业务
(1)首先我们要迅速熟悉公司的产品业务,比如我们公司做 ERP 软件的,我肯定要迅速熟悉EPR 的业务流程;比如我 们公司是做法院软件的,那么我一定要熟悉ቤተ መጻሕፍቲ ባይዱ院在审判案 件的流程,只有熟悉了产品的业务流程、那么你发现的软 件缺陷才有价值。否则你找到的软件缺陷是纯软件的缺陷 、价值不大
不要让程序开发人员的观点:“比如用户不会 进行这样的操作”而说服自己
不要让程序开发人员的观点:“比如用户不会进行这样的操 作”而说服自己。在这个时候你要坚持你自己正确的想法 ,以后对方会明白你的。比如在一个录入员工基本信息的 系统中,系统中对员工的年龄作为负值、而没有作为判断 、也可以保存到数据库中,此时你不要被程序员的用户不 会进行这样操作的观点说服自己,你要坚持自己正确的观 点
善于怀疑
善于怀疑,世界上没有绝对正确的,总有错误的地方,具有 叛逆心理,别人认为不可能发生的事,测试人员要认为可 能发生。别人认为是对的,我却认为有可能是不对的。如 果你认为某个或者某些程序员水平很高,他写的这个地方 应该没问题吧,这样很容易遗漏软件中的Bug。因为程序 开发人员毕竟是普通的人,只要是人就会犯错误的
我的亲身经历:曾经做过一款销售类型的软件,A 程序员做 订货、B 程序员做入库,他们每个人的程序都能单独运行 ,结果集成到一起就出现了错误,这个问题在测试过程中 居然没有被发现,在用户的实际使用环境中用户发现报表 查询出来的结果不准确,才发现了这个问题
兼容性测试
兼容性检测:测试要在不同的硬件、软件(包括操 作系统、IE 浏览器、网络带宽)下的测试: ■ 有时候软件在配置很高的机器上,有时候会隐瞒 一些错误,比如CPU 过快的时候,很多东西发现 不了特别是对于CS结构的软件
软件测试的流程
■其次,在开发编码的后期,由测试执行人员参考《需求规 格说明书》和《测试用例》来对系统进行测试,这里面包 含单元测试,集成测试和系统测试,这个过程中包含大量 的回归测试验证,主要生成大量的《缺陷报告》
■最后,在项目后期,由测试经理或是测试组长评估一下测 试的过程和结果,为下一阶段或是下一个项目的测试积累 一些经验和教训,一般生成一个《测试总结报告》
------什么叫纯软件的缺陷呢? ------对于不夜城这样的互联网系统,我们所关注的业务重点 在哪里?
其次把自己当成是使用的用 户
从用户使用的角度去测试系统,比如用户在使用这个系统过 程中是这样操作的吗?这样操作方便吗? ■比如在大量信息要求用户输入的软件界面中,有一些用户 喜欢使用Tab 键采用全键盘的输入;此时的接口应该采取 从左到右,从上到下的顺序 ■比如有的用户使用快捷键操作等(易用性测试) ■比如程序激活后,按F1 键会出现软件的帮助页面(易用性 测试) ■比如软件在需要用户输入的信息的时候,必填项一律在后 面用*表示(必填项为空在处理之前要有相关的提示信息) ■下拉框不选值的时候,应该选择默认值;并且要多检查程 序中的多处下拉框,因为很多情况下下拉框取不到值
软件测试的流程
■首先,在项目的初期,需要由测试经理或是测试 组长根据《需求规格说明书》或是界面原形来编 写测试计划(Test Plan),生成《测试计划》文 档(比较规范的公司一般有需求评审这个过程,测 试人员也要参与到其中来)
■然后,在概要设计和详细设计阶段由测试设计人 员根据《需求规格说明书》、《概要设计说明书 》、《详细设计说明书》、界面原形、来进行测 试设计(Test Design),主要编写测试用例( Test Case),生成《测试用例》文档(如果从规 范的角度来说测试用例也需要评审)
■经验2:在多用户并发销售的情况下,会卖成负的 库存
在测试过程中要多看服务器 日志
无论是测试B/S或者C/S结构的软件,无论是在做功 能测试还是做性能测试的时候一定要多看服务器 端的日志文件,举例:
(1)比如查看IIS日志,tomcat日志,在日志当中你 会发现很多东西。(比如中国软件评测中心遗留下 的测试问题的举例) (2)比如在欧莱雅(中国)的service.exe程序的时 候,当时测试人员忽略了看日志文件信息,导致 欧莱雅的服务器平均每隔2-3天重新启动--这是一 个很严重的问题---但是当时测试人员没有发现
----------------谈一下我自己的亲身经历,比如程序员统计报 表的测试---切记!
跟踪一条完整的数据流
在测试的时候要跟踪一条数据的流程,保证数据的正确性这个 真的是太重要了:假如我们在测试一个销售的类型的软件 的时候:我们应该先做订货-入库-盘点-销售-查询,首先我 们要保证这个数据的流向是正确的无误的。假如我们在测 试法院的一款软件的时候,你要先收案子-立案子-发送审 批-排期-审理审判-结案-判决-归档-查询。总之跟踪一条数 据的流程,保证数据的正确性。如果经过我们测试的软件在 用户使用过程中业务流程上都走不通的话,那么这样的软 件你说经过我们的测试,但是在比人看来与没有测试有什 么区别呢? -------------不夜城网站,怎么跟踪完整的数据流(包括前台 和后台如如何跟踪完整的数据流)
在需要输入字母的地方输入数字 在需要用户输入的文本框中拷贝字数很多的整篇文章到这里 测试看看软件是如何做处理的 在需要输入整数的地方输入负数,或者是用鼠标右键或者是 Ctr +V形式粘贴负数
关于接口
如果软件不同部分是由多个程序员共同完成的,那么要在他 们程序接口相关联的地方多检查,因为有时候在接口的地 方,A 程序员认为B 程序员做了处理;B 程序员认为A 程 序员做了处理;但是事实上他们双方都没有做处理
回归测试需要注意的事项
■ 首先测试常见威胁,然后测试罕见威胁。用最有可能出现
的压力和错误情况进行测试
■ 首先测试影响大的问题,然后测试影响小的问题。测试在 失效的情况下会产生大量破坏的产品部件 ■ 首先测试最需要的部分,然后测试没有要求的部分,测试 对团队其他人有重要意义的任何部分的任何问题(你的测 试会影响到其他人其他模块的测试)
回归测试需要注意的事项
■ 首先测试经过变更(修改的功能)的部分,然后测试没有 变化的部分。修改和更新都意味着新的风险 ■ 首先测试核心功能,然后测试辅助功能,测试产品所完成 的关键和常用功能,测试完产品基本任务的功能(比如我 近期测试点法院审判软件,首先一定要保证整个审判的流 程能跑通) ■ 首先测试能力(功能),然后测试可靠。先测试每个功能 是否完全能用,然后在深入检查任何一个功能在很多条件 不同条件下的表现如何 ■ 首先测试常见情况,然后测试少见情况。使用常用的数据 和使用场景(比如一款销售类软件先要测试正常的数据能 否销售,然后在测试异常的数据比如负数销售)
■比如以前最近测试的一款软件在不同的浏览器下 看到的菜单权限不一样,下图中同一个用户再 IE6.0 和IE7.0 下看到的菜单权限不一样(大家可 以看一下在IE7.0 下明显少了很多东西),这肯定 是软件中的一个Bug 了
不同的浏览器的兼容性测试
软件在压力之下容易产生错 误
软件在压力之下容易产生功能上的错误,作为一个 有经验的测试人员,你应该把你的软件在压力之 下长时间运行测试,然后看看软件能否在压力之 下经的住考验 ■经验1:在“提交订单”、“下订单”、“转立案 ”那里经常会在多用户使用的情况下产生性能上 的问题
程序员提交版本后回归测试
程序员提交新的程序版本后,作为测试人员应该立即与程序 员沟通这个修改的功能、并且这个新的修改的功能影响哪 些功能
举个简单的例子来说明一下:比如在一款软件中,程序开发 人员修改了某个会员的某个字段。作为测试人员首先你要 测试会员的功能这个是你首先需要做的。另外你还要和程 序员沟通咨询他们新修改的这个会员的字段,会影响会员 的销售功能吗?会对会员以前的销售记录的查询有影响吗 ?如果对这些功能有影响,那么这些功能都是你在回归测 试的时候重点测试的地方,也是最容易产生Bug 的地方了
软件边界值的测试
软件边界值的测试:软件最容易在边界值上发生问题了。众 所周知软件最容易在边界值上出现问题了,所以作为测试 人员一定要在边界值上多测试,比如测试用户输入框中的 数值的最大数和最小数,以及为空时的情况 软件最容易在边界值上出错误,如果N是一个边界值的话,那么 根据边界值的测试法,至少需要测试下面三种情况:N1,N,N+1
对于一些比较成熟的开源框 架和技术
对于一些比较成熟的框架和性能一般不会考虑其功 能和性能上的问题,比如: Apache Lucene是一个 开放源程序的搜寻器引擎,我们一般不会考虑其 功能和性能上的问题
随机测试
即使测试经过大量的充分的测试,也不能发现软件 中的所有缺陷,所以测试人员在测试的时候可以 做一些随机的测试,比如胡乱的在软件界面上乱 点一通有时候也会发现一些意想不的软件缺陷
软件与使用者的互动缺陷
■ 如填写资料错误应的时候,应该能够提示错误的位置,让 用户知道是这个地方输入数据不对 ■ 删除数据之前给一定要给出是否删除确认提示 ■ 不要在软件中使用中英文混合的提示比如:比如对于用户 某个操作的错误提示,不要一会用“error”、一会用“错 误”;一会用“succeed”另一会用“成功” ■ 另外要对程序员出现错别字进行检查,比如把“登录”写 成“登陆” ■ 另外,在软件中不要对用户使用很专业的术语比如“记录 ”、“字段”等
举例:在一款法院的管理软件中,年龄是判断犯罪嫌疑人是
否承担刑事责任的一个条件,其中16岁就 是一个边界值,那 么我们可以设计测试用例如下:
(1)N-1=15
非法容错性测试
非法容错性测试:比如在需要输入数字的地方输入字母,比如
:软件在突然断电情况下,比如在输入手机号码的位置, 输入汉字,来检验程序的容错性和健壮性
学习别人的知识
最后,作为一名软件测试人员你可以查看公司里的 软件缺陷库(比如Jira、bugzilla 和TD/QC 等)看 看别人报的软件Bug,从别人的报告Bug 思路中你可 以学习这些经验,发散自己的测试思维,然后再 不断的提高自己
相关文档
最新文档