如何做好系统测试

 

目录

1       目的... 2

2       目标读者... 2

3       说明... 2

4       Part1 项目各阶段工作... 2

4.1        需求调研阶段... 2

4.2        项目启动阶段... 2

4.3        项目开发阶段... 3

4.4        集成和系统测试阶段... 3

4.5        项目上线... 4

4.6        运维阶段... 4

5       自我提升... 5

5.1        总结学习... 5

5.2        保持好奇心... 5

6       bug预防工作... 6

7       需要开发人员配合的工作... 6

7.1        数据库更新要求... 6

7.2        代码提交问题... 6

7.3      bug做解释... 7

1           目的

本文旨在分享自己的测试心得,探讨如何作出高质量的系统测试工作,为测试员提供工作指导。对项目管理者来说,可以参考本文档评估测试工作量,检查测试员的工作质量。

2           目标读者

初、中级测试工程师。项目管理者。

3           说明

提高产品质量,是涉及全员、全流程的管理,在实际操作中困难重重。而本文此次只探讨四个方面,以后再陆续跟大家探讨其他流程。

  1. 项目各个阶段的测试任务,任务指导
  2. 自身素质
  3. bug预防
  4. 需要开发人员配合的工作

4           项目各阶段工作

为便于给读者建立和巩固测试技能体系,便于依据本文开展测试工作,本文按照项目发展阶段进行论述。

4.1          需求调研阶段

该阶段项目经理会跟客户进行需求调研,中间会开会讨论客户的需求,并进行评审。此时测试人员就需要进行参会讨论。这个阶段,测试人员工作主要是:

u  理解需求,特别是思维导图和业务流程图VISIO;

u  理解项目背景,这有助于制定测试计划,安排测试重点;

u  理解公司的业务,这点很重要,如果能从客户业务层面提出问题,会得到客户深深的认可;

u  找类似产品和行业背景参考。

4.2          项目启动阶段

制定测试计划

在项目启动会为止,项目经理已经需求调研完毕,且完成了开发任务排期。这时测试经理或者主管即需制定测试计划。。。公司现在的项目来看,测试时间是没法由测试自己选择的,所以,只能配合项目在既定的时间内提高测试质量吧。测试计划中的重点:

u  划分各个阶段的时间安排(单元测试阶段、集成阶段、系统测试阶段、回归阶段等)

u  测试工作安排(测试的内容,如功能测试、性能测试、兼容性测试、数据完整性测试、排他性测试等安排)

加深业务理解

         加深业务的理解,根据需求说明书绘制系统测试visio图。要点:根据数据流向,绘制完整数据流,注意限制条件。

设计测试用例

         根据《需求规格说明书》和Axure原型图进行测试设计。工作要点:

u  根据《测试工作指南》、《测试框架》和《测试用例库》编写功能测试用例;

u  根据《web安全测试规范》裁剪安全测试用例;

u  根据《APP测试用例大纲》裁剪APP测试用例;

u  准备测试数据

4.3          项目开发阶段

该阶段开发人员按照WBS进行开发,测试人员按照开发计划进行测试(功能测试阶段)。测试工作要点:

u  整理测试过程中遇到的系统疑问,记录到《XX系统业务疑问与解答》中;

u  填写《每日测试记录》并汇报;

u  重点检查需求实现的一致性,其次检查《GUI测试指南》;

u  整理并提交《每日测试报告》;

测试原则:遵循优先保证系统逻辑走通的原则。但测试过程中发现的bug,无论大小都提交到禅道中。

4.4          集成和系统测试阶段

集成测试和系统测试的区别:

集成测试重点关注各个功能模块的数据联动、传输是否正确。系统测试在此基础上,还需要关注软件的安全性、稳定性、兼容性、性能等。

实际工作中,限于项目周期,一般会将两者结合测试。

为提高测试的质量和效率,将测试工作分为四轮执行,每轮测试工作的重点如下:

第一轮测试:

u  关注流程是否走通?主要关注正常流程和场景,即需求中定义的流程和场景。

第二轮测试:

u  存在性测试;

u  排他性测试

u  连续点击测试;

u  数据完整性测试;

u  安全性测试;

u  兼容性测试;

第三轮测试:

u  存在性测试(深度排查);

u  探索式测试;

u  安全性测试(深度排查);

u  兼容性测试(深度排查);

u  性能测试

第四轮测试:

u  对外接口测试

u  需求变动测试(系统测试阶段末期,一般客户会查看系统并提出部分修改意见,此时重点关注新需求)

测试汇报工作:

 

u  在该阶段需每周提交《阶段性测试工作汇报》,汇报该阶段中系统发现的问题、bug发现趋势、bug状态等。

u  在系统测试结束后提交《系统测试报告》,评价系统是否具备上线资格。

4.5          项目上线

配合项目组,准备系统验收资料,如《UAT测试报告》。

4.6          运维阶段

bug是测不完的,特别是急于上线的项目,可能漏测得bug更多。所以运维阶段需要注意收集项目上线后反馈的问题,建立《系统运维问题跟踪表》 。对运维阶段发现的bug总结分析原因,在下个项目中重点关注。

以上是作为一个测试员的基本工作,如果想真正做好系统测试工作,还有更重要的工作要补充。

5           自身素质

5.1          总结学习

正所谓温故而知新,平时把《黑盒测试框架》多看看。

5.2          保持好奇心和质疑精神

好奇心就是多问问为什么,质疑精神就是要敢于质疑系统设计不合理,举一个较典型的例子。

这是一个分销系统的页面,图一是店铺管理中的上架商品列表,图二是下架商品列表页面,图三是选择商品的页面。实现的逻辑是,在选货页面(图三)选择商品上架,之后选择的商品会显示到上架商品列表(图一),可以对上架商品进行下架和删除的操作。 商品下架后显示到下架商品列表里。而把商品从上架或下架列表中删除后, 商品回归到选货页面。

测试这个页面时,习惯性的问自己,这个页面显示什么数据,为什么这么显示?然后就找到了一个有争议的地方:即选货页面(图三)是不显示下架商品的。为什么觉得有争议呢? 因为假设我是一个用户,我把商品下架后,可能以后我都不会再主动关注已下架的商品,而在这个时间已下架的商品若有特殊的变动,我也难易得知(因为我更多的会去看选货页面)。 这样一来,日日顺商城做的一些推广可能就传到不到分销商那里。毕竟,商品数据还是不少的。

不过反过来说基于该分销平台的特点,可能会让用户 不会做下架的操作---预测大多数用户都会把全部商品选择上架,所以选货页面不加载下架的商品对应用影响并不大。

这个地方的争议,无论怎么实现,可以说是公说公有理婆说婆有理,不一定哪一种是最好的。

不过拿这个例子来讲,就是要为了说明如果测试过程中不多做思考,不多问一些为什么,不敢质疑系统的话,很多bug就会被漏测!

6           bug预防工作

多数测试员做的质量保障方面的工作都是事后的补救工作(检测),bug预防是让测试员充分发挥事前和事中的的质量控制作用。

bug预防的必要性显而易见,bug越到后期发现,修改的成本越高,所以防患于未然肯定要优于亡羊补牢。

bug预防的方法主要是通过制定开发规范和测试规范。开发规范方面有《UI规范》、《编码规范》、《数据库规范》,其他包括《安全性开发规范》、《性能调优指导》、《兼容性开发规范》,并完善技术复用库(设计、组件、类库、代码)。 测试规范方面有《功能界面的检查指南》、《BUG管理规范》、《测试工作流程规范》、《安全性测试规范》,涵盖BS架构和APP,后续需要完善的是性能和自动化(自动化能解决的问题)方面的测试技术。

除了上面说的这些规范,每个项目测试过程中发现bug之后,也会通过分析找到具体原因和解决方案,做一些总结归纳,尝试建立该类问题的预防方法,补充到流程规范中,贯彻到全公司,最后监督执行。(世界级大公司对待bug的态度,谷歌的绩效考核,考核该类bug在本项目中出现的比率是不是比上一个项目小了,考核测试员在bug预防方面做得工作)

软件测试体系:

二、测试流程

版本发布控制制度。

三、测试规范

测试员工作的依据(检查标准),包括了bug分级标准,界面设计规范和web安全测试规范。

四、测试框架

工作指南(测试要点,或者说一个功能要做哪些测试)

五、开发框架

输入验证的完善等。

7           需要开发人员配合的工作

每次项目启动会,我都会对 项目团队的成员要求以下三点:

7.1          数据库更新要求

开发后期,数据库改动较少。这个时候对数据库结构的改动都用脚本执行。并在发版时一并发送测试员。---曾经多次遇到因为数据库改动不规范,导致测试时间增加,项目拖期的项目事故。

7.2          代码提交问题

在bug预防中提过,代码集成要慎重。建议由条件的时候做一下code review,避免出现功能倒退等严重项目事故。同时发版和禅道上的bug要对应,因为测试人员会检查发版时间之前的bug。

7.3       bug做解释

bug解决后,在禅道可以做个解释。如此一来测试人员可以积累定位bug根源的经验,在之后的项目中,遇到类似的项目可以直指根源,给开发人员提供检查思路,缩短开发人间排查问题的时间。

我在文章里留了很多文件,这里保存不上。有想要的我给你word版。

时间: 2024-12-05 08:02:48

如何做好系统测试的相关文章

软件质量浅谈

几年前的文章,里面有些点还是有点用的. ------------------------------------------------------------------------------- 议题:什么是质量? 目的:希望通过探索质量,探求质量提升之道. 目标读者:项目经理.测试员.程序员 今天就"质量"一词,再来谈谈这个老生常谈的话题.当然,都是个人的一些观点和总结,不同意可以拍砖或者来探讨. "质量"这个词用得太普遍以至于混乱,有时候它表示质量这个指标,

软件质量的浅谈

软件质量的浅谈 议题:什么是质量? 目的:希望通过探索质量,探求质量提升之道. 目标读者:项目经理.测试员.程序员 图片不显示,想要的联系我[email protected] 今天就“质量”一词,再来谈谈这个老生常谈的话题.当然,都是个人的一些观点和总结,不同意可以拍砖或者来探讨. “质量”这个词用得太普遍以至于混乱,有时候它表示质量这个指标,有时候它隐含质量好的意思.而且不可避免的,好的质量常常和它的反面联系在一起,就好像<中国质量万里行>,或者<央视3.15晚会>,列出的都是质

我读《2017软件测试行业调查报告》

该报告由51Testing 发布,他们会在每年年中发布会一份测试行业调查报告,今年是在6月份发布的,相信有同学已经看过了,不过,我这里会挑自己感兴趣的统计结果和大家分享. 说明:该报告收集问卷两千余份,来自全国不同的城市.首先,这个统计量相比全国测试人员来说并不大(其实,我也不知道中国到底有多少测试从业人员,但肯定远远大于两千人).其次,全国不同的城市薪资和技能要求会有一定的差距,大家合理看待. 系统测试依然是主要测试手段,虽然,测试行业经历了这么多年的发展,各种自动化测试工具层出不穷,但依然无

如何做好单元测试

前言 单元测试是对软件基本组成单元进行的测试,是属于白盒测试的范畴,它主要通过对代码的逻辑结构进行分析来设计测试用例.在动态测试手段中,单元测试是一种非常高效的测试方法,并且是软件测试周期中第一个进行的测试.从成本角度考虑,缺陷发现越早越好,加强单元测试力度有利于降低缺陷定位和修复难度,从而降低缺陷解决成本,同时加强单元测试也减轻了后续集成测试和系统测试的负担.根据业界的统计,一个 BUG 在单元测试阶段发现花费是 1 的话,到集成测试就变为 10 ,到系统测试就高达 100 ,到实际推向市场量

软件测试基本方法(六)之集成测试和系统测试

在软件开发中,经常会遇到这样的情况,单元测试时确认每个模块都能单独工作,但这些模块集成在一起之后会出现有些模块不能正常工作.例如,在chrome环境下用js写了一个实时捕捉video中特定区域的模块,正常工作:利用worker线程进行webgl场景渲染,也正常:可是当两个运算合并时,出现一个模块不能正常运行,原因在于两个模块不适合在worker线程中结合,基于worker本身的局限性,只能有一个模块正常工作.所以,很有必要进行集成测试. (1)集成测试定义: 集成测试是将软件集成起来,对模块之间

避免沙堆建楼 做好软件安全测试

近来,在我负责的公司某软件产品的最后测试工作,常常被问到这样一个问题:在做测试过程中,我们的软件产品在安全性方面考虑了多少?应该如何测评一个软件到底有多安全? 这个软件因为涉及客户商业上重要的信息资料,因此用户关心的核心问题始终围绕“这个软件安全吗”.一个由于设计导致的安全漏洞和一个由于实现导致的安全漏洞,对用户的最终影响都是巨大的.我的任务就是确保这个软件在安全性方面能满足客户期望. 什么是软件安全性测试 (1)什么是软件安全 软件安全属于软件领域里一个重要的子领域.在以前的单机时代,安全问题

软件测试基本方法_之集成测试和系统测试

转:https://blog.csdn.net/BlueCloudMatrix/article/details/31821203 (建议打开链接看) 在软件开发中,经常会遇到这样的情况,单元测试时确认每个模块都能单独工作,但这些模块集成在一起之后会出现有些模块不能正常工作.例如,在chrome环境下用js写了一个实时捕捉video中特定区域的模块,正常工作:利用worker线程进行webgl场景渲染,也正常:可是当两个运算合并时,出现一个模块不能正常运行,原因在于两个模块不适合在worker线程

如何做好网络运营?

今天的文章将以网络运营的三大目标作为主线,将运营每天要做的事情做一个梳理,帮助对运营没有概念的同学,有一个基本的了解:运营到底目标是什么,大概怎么做. 提示:本篇内容相对基础,运营老司机请绕道. 运营的三大目标 运营的事情看起来非常多,有可能在一边找图,一边回复用户,过一会还要开选题会.写策划.推消息.找文章.谈渠道.翻数据等,但其实都是在运营的三大目标里: 拉新 拉新是指拉来新用户,最直接的指标是新增用户数.用户是产品生命的源泉,是产品价值的共同创作者,有了新用户才能带来新的用户价值. 拉新是

只想把技术做好,维持一份可观的收入,就精专一门;有创业想法,就全栈

做全栈开发(前端和后端)好还是全端开发(前端和Android应用开发)好?哪个前景和钱景发现比较好,对以后的发展! 1. 有创业想法,就全栈.只想把技术做好,维持一份可观的收入,就精专一门 2. 全栈对自己的优势不大吗?好多公司都不认同,特别是HR,普遍的观点是,会的多,就很难专精. 3. 大公司是一个靠分工增加工作效率的机构,无论你全栈,还是全端,对公司来说都只用你的一部分技能.但是薪资可是要比一般的人高一些,所以很多HR都忽悠你说全会的就没法专精.先全栈,后全端.别信那些HR忽悠. 4. 有