软件测试人员成长必备知识篇

软件质量篇

软件质量包括两个相关但截然不同的概念

  功能性质量(Functional Quality):反映软件是否按照设计实现并满足相应的功能性需求。
  结构性质量(Structural Quality):反映软件是否满足相关的非功能性需求。

评价软件的功能性质量和结构性质量,有一系列衡量指标,有了衡量指标之后,另一个重要的问题就是如何获得这些指标的量化数值。软件测试是验证这些指标的有效方法。

测试的通过指标是根据质量的需求来定义的,系统通过了测试,可以从量化的角度说明它符合需求。

正确性(Correctness):反映了实现的功能达到设计规范并满足用户需求的程度,这是功能性质量的基本指标,通过功能测试验证。

可靠性(Reliability):衡量在规定的时间和条件下,系统维持其性能水准的程度,这是结构性需求的重要指标,通过可靠性获取。

易用性(Usability):反映用户掌握软件操作及理解软件事务所需付出的时间及努力程度,UI,Online Help等。

可移植性(Portability):衡量系统从一个平台转移到另一个平台的容易程度,高可移植性系统应该是容易安装和更新的,对多国语言的支持程度也是可移植性的一个衡量指标。

可迁移性(Migratability):衡量系统版本升级的容易程度。

效率(Efficiency):衡量系统执行某功能所需的计算机资源和时间有效程度,包括功能性能优化,内存泄漏等问题。

可维护性、可扩展性(Maintainability, Scalability):反映当环境改变或出现错误时,执行修改或修复的难易程度。

健壮性(Robustness):衡量系统的容错能力及其是否返回正确提示信息且不影响正确运作的指标。

安全性(Security):衡量系统对攻击性或不当访问的抵御能力。

有效的测试时软件质量的重要保证。

软件测试篇

软件测试的一个原则是尽早地发现问题。作为测试专家,应该考虑的问题也是如何更早地发现缺陷以及有效地解决缺陷。

有没有办法让问题“提前”暴露呢?

发现问题的可行方法:

  分析方法:也可归类为静态测试,主要使用逻辑分析推理的方法发现缺陷和评估问题的严重性,并根据所处的阶段得到解决的方法。由于缺陷没有经过测试证实,而是通过分析的方法推导认定的,这里称其为“潜在的”缺陷,但由于理据充分,本质上这个缺陷和测试发现的缺陷是一样的。在提出了解决方法之后,对设计分析时认为有问题的场景进行模拟,如果在这种场景下没有出现此前认为会出现的问题,那么这个缺陷解决方案就被认为是可以接受的。分析方法不需要等待缺陷目标的开发完成并使用测试进行验证,这种方法对分析人员技能要求较高,他们在需求分析和设计方面的经验必须比较丰富,才能准确定位问题所在。
  测试方法:设计出有针对性的场景,并在测试环境上模拟该场景。如果测试的输出和预期输出有差异,则证实问题存在。使用此方法前提是测试的场景能够在测试环境中正常工作。

无论使用分析方法还是测试方法发现的问题,都通过创建缺陷来跟踪。

Bug:一般指系统存在的问题或者需要加强的细节。

如何更早地、有效地发现问题,是测试专家的一项非常有技术含量的工作,而测试专家的另一项由技术含量的工作,就是发现问题后的问题分析。

问题分析常用的系统方法有两种

  自顶向下(Top-Down): 其着眼处在于整体。使用该方法,首先应该认同的一个观点是,系统整体的问题时系统某个部分的原因引起的,而这个局部的问题放大后悔在系统的宏观级别上表现出来。
  自底向上(Buttom-Up): 对分析者的能力要求较高,前提是,承认缺陷的全部或部分是由于系统局部细节的问题引起的。分析时,根据系统表面看到的蛛丝马迹,直接判断出现问题的根源,并验证这个判断是否正确。作为分析人员,首先应该对系统的这些细节及其在整体中的作用比较熟悉,其次要拥有直达问题根源的“直觉”。

在分析错综复杂的问题,如系统级别的结构问题或性能问题时,这两种方法能够有效地定位问题,而它们的本质也正是准确地重现和定位问题。只要问题得以有效重现和定位,离找到解决的办法也就不远了。

发现、定位和解决问题的方法,是测试人员的核心技能。作为测试专家,核心的能力其实还是思考能力。五花八门的测试方法和技术,得通过自己的实践、总结和思考,转化为系统的测试方法论。当一套属于你自己的测试方法论已经形成的时候,意味着你已经从专家成长为高手了。

像外行一样思考——追求一种新的方法或者角度,仅仅考虑某个问题是否可能存在或者某种方法是否能解决问题,不考虑方法是否有理论依据,也避免过多地考虑可行性。

执行测试消耗了很大一部分时间,而常规项目(不含自动化任务)的任务把可用时间的90%都占用了,也就是说,分析解决问题的时间很有限,那么测试工程师通过什么方法更有效地完成测试任务呢?

  提高测试效率。对于同一个测试人员,效率的提高有两种外在的表现:一是使用相同时间完成更多的测试用例执行,二是对于同一个或同一组测试用例,耗费时间减少。即,提高技能的熟练程度,能够提高效率。

  进一步提高效率考虑的方向应该是减少对测试的人工干预,让测试自动完成,即自动化测试。自动化水平的高低,在很大程度上衡量了一个测试团队的水平。

时间: 2024-11-09 05:05:55

软件测试人员成长必备知识篇的相关文章

软件测试工程师成长之路:掌握软件测试九大技术主题

软件测试工程师成长之路:掌握软件测试九大技术主题 王顺 等 编著   ISBN 978-7-121-23996-0 2014年9月出版 定价:85.00元 432页 16开 内容提要 <软件测试工程师成长之路:掌握软件测试九大技术主题>以实际项目为原型.以关键理论与丰富实践为指导,贯彻了先进的项目管理理念与全程质量管理思想. <软件测试工程师成长之路:掌握软件测试九大技术主题>前9 章为软件测试九大技术主题分享,是众多资深软件工程师在软件测试领域的经验总结.知识升华与提高,展现众多

移动端webapp开发必备知识

移动端webapp开发必备知识 移动设备的用户越来越多,每天android手机的激活量都已经超过130万台,所以我们面向移动终端的WebAPP也开始跟进了.本文主要介绍webapp的开发与调试的相关知识和经验,以及给出几种可选的解决方案. 一.基本概念 (1) CSS pixels与device pixels CSS pixels: 浏览器使用的抽象单位, 主要用来在网页上绘制内容. device pixels: 显示屏幕的的最小物理单位,每个dp包含自己的颜色.亮度. 等值的 CSS pixe

软件测试人员应该知道的

软件测试人员应该居安思危 每当经济不好,公司业绩不好的时候,公司都可能进行裁员. 首先裁的就是测试人员. 因为测试人员的技术水平相对来说比较低,容易被替代,招起来也比较容易.,公司往往先拿测试人员开刀.身为测试人员,虽然我们平常的工作大部分都比较安逸. 但是千万不能温水煮青蛙. 应该自强不息, 要像开发人员一样, 不断学习,提高自己的编程水平.这样就算被裁也能很快找到新的工作. 测试人员应该比开发人员更熟悉业务需求 测试人员的水平主要体现在测试用例的设计上. 要设计出全面,覆盖广的测试用例,需要

要想成为高级软件测试人员,需要做全才吗?

在回答要不要做全才之前,我们应该先弄清楚一个问题,作为一个全才应该需要哪些能力? 我认为作为一个测试人员,应该具备四方面知识:测试基础,行业业务储备,测试工具和技术,测试管理能力和经验. 以上四方面也是测试人员晋升的参考,当然测试基础咱们都有就看储备了多少,其他三方面是咱们努力的方向. 测试基础是所有测试人员应该具备的,其他三项精于一项可以一招鲜,精于两项可以称之为高手,精于三项的话?我的天啦 行业业务知识,基本上可以说能够称为行业的,基本上其业务知识就不是一年两年可以弄清楚的,比如金融,ERP

[转]译文:五个测试人员必须具有的优点(软件测试人员需要转换视角)

出处:CHJ's BLOG 原文:Top 5 Things a Tester Must Have to Excel (And the Software Tester’s Shifting Perspectives) 作者:Ratha Jegatheson 在软件测试领域工作10年中,我曾有幸直接见证这个领域在相对短时间内跨越性的改变.在我刚进入这个领域的时候,除去软件开发周期里面所说的,大家刚开始真正意识到软件测试的重要性和把它从“应该做”提升到“必须做”. 在过去,由于会产生额外的成本,软件测

测试架构师修炼之道:3软件测试架构师的知识能力模型(一)

测试架构师修炼之道:3软件测试架构师的知识能力模型(一) 2016-08-15 测试架构师从事的并不是一项纯测试技术的工作,而是一门需要结合产品.沟通协调.书面表达等综合性的艺术,如图1所示. 图1 软件测试架构师需具备的能力 从测试技术来说,软件测试架构师需具备的测试技术能力: 软件产品质量模型 测试类型 测试方法 探索式测试 自动化测试 目录 1 软件产品质量六属性  1.1 功能性  1.2 可靠性  1.3 可移植性2 测试类型3 测试方法  3.1 产品测试车轮图  3.2 功能测试方

软件测试人员到底需不需要通过培训来提升技术能力

这二天在为要不要给小朋友报培训班而发愁,身边朋友大多都早早地为小朋友报了好几个培训班,大多都是美术兴趣班,英文班,珠心算,跳舞等. 王豆豆一直想给小朋友报,但却一直没报,基于二点:第一个是小朋友年龄还小,到底是应该去学还是去玩,第二个是现在这些培训班收费都不便宜啊,基于这些所以迟迟没报班. 大多父母都是舍得为孩子付出,就算是自己吃得差一点,穿得土一点都要给孩子报一个学费非常贵的兴趣班,为孩子花起钱来眼都眨一下,但经常又有“鸡汤”文说一定不要忘记爱自己,投资最好的人就是自己,那到底我们应该怎么做才

ES6常用必备知识

ES6必备知识 1.变量声明const和let 在ES6之前,我们都是用var关键字声明变量.无论声明在何处,都会被视为声明在函数的最顶部(不在函数内即在全局作用域的最顶部).这就是函数变量提升例如: function aa() { if(bool) { var test = 'hello man' } else { console.log(test) } } 以上的代码实际上是: function aa() { var test // 变量提升 if(bool) { test = 'hello

软件测试 - 软件测试人员的实用技巧

以下是软件测试人员和QA专业人员参与测试应用程序时的指南和技巧列表.这些软件测试技巧来自于在敏捷环境中测试Web应用程序的多年经验.如果要共享测试提示,请将其添加到注释字段中. 测试故事/错误时的QA指南 ----不要留下任何未回答的问题.验收标准必须完整,以确保您完全了解功能/故事想要实现的目标.----确保您知道如何测试功能/故事.----在考虑测试用例时,请考虑完整的端到端流程.----考虑所有相关的错误情况,例如Web服务连接断开,输入无效等.----考虑不同的浏览器 - 根据支持的浏览