QA测试的主要环节
QA即Quality Assurance,其中文的意思是“质量保证”,它所关注的是对质量的检测,还有通过改进细节来提高软件的质量,从而指导软件的发布,保证产品上线。QA所关注的是产品生命周期的管理以及验证软件是否满足已确定的质量标准和用户协议。QA的职责不是对软件产品进行剖析以出问题,而是要验证软件在既定的条件下工作的可行性。
一、QA测试与软件测试的区别
软件测试是对软件产品的质量本身进行测试,是从技术方面出发测试软件。
QA测试偏重于质量管理体系的建立和维护,客户和认证机构质量体系审核工作,质量培训工作等。
为了更形象地表述两者区别,必须引入软件的开发人员进行详细说明。
软件产品是由开发人员做出来的,产品能否实现其所有功能,能否成功投入市场,归根结底还是取决于产品的前期开发。
软件产品开发出来之后,需要测试人员对其进行测试。程序测试员需要学什么软件测试是验证软件是否能达到期望功能的惟一有效的方法。软件测试员根据测试计划和测试方案进行软件测试;能够针对软件需求开发测试模型,制定测试方案,安排测试计划,并对测试项目进行管理。
QA测试与软件测试本质上的区别就在于QA测试不涉及具体的技术,QA测试的过程是改进控制的过程,是对整个过程的监督和改进,保证所有的标准和程序都被遵守,并且能够从中发现和处理相关问题。QA的工作涉及公司的全局,各个相关职能,覆盖面比较广,是保证生产过程受控或保证产品合格,着重于维护。
二、QA测试员应该具备的素质
QA测试是一项技术性强,对从业人员能力要求非常高的职业,要求QA测试员具备眼睛的逻辑思维、人际沟通能力、谦虚的工作态度,同时还要具备统计分析能力和实际开发的经验。
1.严谨的逻辑思维
严谨的逻辑思维是在长期工作中慢慢积累而来的,作为QA测试员必须具备严谨的逻辑思维。以往的经验与知识体系固然很重要,但作为QA测试员还要具备分清楚问题之间千丝万
缕的联系的能力,有理有据、省时省力地去解决问题,这就需要有严谨的逻辑思维,能够理性地对问题进行推理与分析。
2.人际沟通能力
作为过程改进的执行者与推动者,QA测试员是维系整个改进过程的纽带,需要跟开发人员不断进行沟通,将意见准确及时反馈给开发人员,这就需要QA测试人员拥有良好的人际沟通能力。
3.谦虚的工作态度
做QA测试需要有谦虚的工作态度。软件的开发往往会以应用为基础,在应用技术上的一点之差就可能造成几万、十几万、乃至无法估量的损失。如果QA测试员在工作中不能保持谦虚的工作态度,软件正式上线投入市场之后,不仅会对客户,对开发企业也会造成巨大的损失,前期投入的大量的人力、物力、财力就可能造成完全浪费。因此对于QA测试工作要时刻保持谦虚谨慎的工作态度,不能有抱有“差不多”的心理。
4.基础的开发经验
如果想成为一名优秀的QA测试员,就必须要具备基本的开发经验,懂得开发的一些基本的知识,会使工作事半功倍。如果没有开发实践经验,只会纸上谈兵,这样说可能有些言重,但这的确也是事实,没有实际的开发经验,不能真正理解整个开发过程,更谈不上对质量进行审核评估。
5.统计分析能力
作为QA测试员,基本的工作就是对数据进行统计和分析,如果连数据都看不懂,更谈不上用数据说话了。因而,需要具备一定的分析数据、统计数据的能力。
三、QA测试环节
软件开发工作大体上可以划分为下面几个阶段进行(如下图):
1.立项阶段:接到客户的应用需求,开始立项准备工作。
2.需求分析阶段:相关系统分析员向用户初步了解需求,开始撰写立项建议书。
3.设计阶段(概要设计和详细设计)
首先,开发者需要对软件系统进行概要设计,即系统设计。概要设计需要对软件系统的设计进行考虑,包括系统的基本处理流程、系统的组织结构、模块划分、功能分配、接口设计、运行设计、数据结构设计和出错处理设计等,为软件的详细设计提供基础。
在概要设计的基础上,开发者需要进行软件系统的详细设计。在详细设计中,描述实现具体模块所涉及到的主要算法、数据结构、类的层次结构及调用关系,需要说明软件系统各个层次中的每一个程序(每个模块或子程序)的设计考虑,以便进行编码和测试。应当保证软件的需求完全分配给整个软件。详细设计应当足够详细,能够根据详细设计报告进行编码。
4.编码阶段
在软件编码阶段,开发者根据《软件系统详细设计报告》中对数据结构、算法分析和模块实现等方面的设计要求,开始具体的编写程序工作,分别实现各模块的功能,从而实现对目标系统的功能、性能、接口、界面等方面的设计要求。
5.测试阶段
软件测试有很多种:按照测试执行方,可以分为内部测试和外部测试;按照测试范围,可以
分为模块测试和整体联调;按照测试条件,可以分为正常操作情况测试和异常情况测试;按照测试的输入范围,可以分为全覆盖测试和抽样测试。
6.申请结项(软件交付)
在软件测试结束后,产品已经实现客户要求的功能便可以向用户提交开发的目标安装程序、数据库的数据字典、《用户安装手册》、《用户使用指南》、需求报告、设计报告、测试报告等双方合同约定的产物。这一阶段还需要指导用户如何安装、使用软件。
(图片来源网络)
QA测试工作穿插在整个软件开发的过程中,具体的工作环节包括下面几个方面:
1.质量发布标准
质量发布标准是评判产品能否成功上线的重要依据,在项目初期由QA拟稿,并和所有角成员确认共同制定。软件通用质量发布标准包括硬件指标、功能指标、性能稳定性指标、兼容性指标,每项指标的具体细节根据不同产品做相应的细化。
2.安全测试
软件产品上线前的安全测试是必不可少的一个环节,需要对基础的用户名、密码进行检查,同时还需要检查是否存在安全漏洞。尤其是如果这个软件产品应用到高度机密的条件下,更应该与网络专家和安全专家合作,确保产品没有安全漏洞,并且在检查过程中尽可能多地做好安全防控。
3.压力测试
一个软件产品在上线前需要经过最大负载的压力测试,模拟软件产品在使用过程中需要提供
的支持,这样就可以验证该产品能否应对负载压力。当软件在互联网上运行时,压力测试的边界也应该从执行的地方扩展到全球的互联网节点。甚至在不同的地区,互联网的带宽或者服务也是有限的。当软件在压力测试中出现故障,可能意味着必须为这个软件分配更多的处理能力或者存储空间——或者必须开放交替的互联网通道,以实现能够支持特定地理区域所需的带宽和服务水平。通过在压力测试场景下与网络专家和应用开发者的配合,可以识别这些潜在的检查点,这样就可以在部署应用之前解决这些问题。
4.稳定性测试
稳定性测试是QA测试的难点,稳定性问题通常不会在短时间内就暴露的,需要长时间或遇到异常情况才会爆发,而且通常不能稳定复现,导致问题定位追查非常困难。因此,在QA测试过程中,需要提供较为苛刻的条件,使问题尽早暴露出来,防患于未然,方便开发人员提早摒除产品出现的不稳定因素,同时通过性能监控、日志分析等等的方式来协助稳定性问题的追查。
5.用户测试
即使一个软件能够正常执行已经设定好的功能,但是如果用户无法理解或者无法使用的话,这个软
件基本上就没什么用处。这就意味着在测试环节中应该与最终用户配合以确保该软件能够方便用户使用。如果不这么做,那么之前所做的所有努力都是白费的。
6.多界面部署
如果软件要部署在多种终端上的话,该软件的用户界面外观和大小应该针对不同的终端进行调整。在正式上线之前应该检查这些不同界面在各种设备上的可使用性,并检查加载时间等因素。
7.文档检查
这里所说的文档检查,主要是指文档内容是否完整,这也是经常容易被忽略的一个环节。对于新上线的产品来说,可能这个环节不是很重要,但是到了后期对软件产品进行维护、升级的时候,就显得十分重要。如果文档不够完整,后续的工程师就需要浪费大量的时间,来读懂开发者编写的代码和执行所有的功能上。
8.用户支持
在软件部署的同时,技术支持部门应该对用户做一个系统的培训,指导用户如何安装、使用该软件,同时对使用过程中出现的问题及时给予技术支持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论