2018-08-10 18:21:12 zjx624bjh 阅读数 145
  • 软件测试2小时入门

    本课程内容系统、全面、简洁、通俗易懂,通过2个多小时的介绍,让大家对软件测试有个系统的理解和认识,具备基本的软件测试理论基础。 主要内容分为5个部分: 1 软件测试概述,了解测试是什么、测试的对象、原则、流程、方法、模型; 2.常用的黑盒测试用例设计方法及示例演示; 3 常用白盒测试用例设计方法及示例演示; 4.自动化测试优缺点、使用范围及示例‘; 5.测试经验谈。

    2096 人正在学习 去看看 曹红杏

关于测试我们会说是发现程序错误(找bug)的过程,同时也是证明软件不存在错误的过程。
像生活中的一场考试,做完一遍题目之后检查一遍,就是在测试。
进一步理解即验证软件功能是否满足用户的需求,为了发现错误而执行程序或者系统的过程。
总之,测试是对软件质量的度量。

首先认识几个关于测试的概念:

bug:凡是实现效果和需求不相符的都可以认为是bug。
软件错误:当程序没有实现其最终用户合理预期的功能要求时,就是软件错误。
软件的生命周期:软件的生命周期是指从软件产品的设想开始到软件不再使用而结束的时间。
用户需求:可以简单理解为甲方提出的需求,若没有就是终端用户使用产品时必须要完成的任务。
软件需求:该需求会详细描述开发人员必须实现的软件功能。

软件测试的目的和原则:

目的:验证软件有或没有问题。
原则:以客户为中心,遵循软件测试的规范,流程,标准和要求。

测试与调试的区别:

目的不同:测试任务是发现程序中的缺陷,调试任务是定位并且解决程序中的问题。
角色不同:调试由开发人员来执行,测试主要是由测试人员和开发人员来执行 ,黑盒测试主要由测试人员完成,单元/集成测试主要由开发人员完成。
执行级阶段不同:测试贯穿软件开发生命周期,调试一般在开发阶段

测试模型:
(1)瀑布模型(线性顺序进行的软件开发模式)
缺点:风险往往迟至后期的测试阶段才显露,因而失去及早纠正的机会。
(2)螺旋模型(渐进式的开发模型)
对于那些规模庞大,复杂度高,风险大的项目尤其适合。
优点:强调严格的全过程风险管理。强调各开发阶段的质量。
缺点:严格的风险分析和控制对人员,资金和时间提出更高的要求。
增量和迭代:
增量是逐块建造的概念,例如一幅人物画,可以先画头部,再画身体,再手脚;而迭代是反复求精的概念,可以先画整体轮廓,再勾勒基本雏形,再细化,着色。

软件测试相关岗位:

(1)软件测试开发工程师
(2)测试工程师
(3)软件开发测试工程师
(4)其它分类:自动化测试工程师,功能测试,性能测试,安全测试。

软件测试和研发的区别:

(1)难易程度:开发广度小,专业度高。 测试广度大,专业度低。
(2)发展前景:自动化测试,安全测试等领域发展前景和研发基本一致。
(3)繁忙程度:一般比研发轻松,产品发布前压力比较大。
(4)技能要求:测试要求更广泛,业务能力,设计和架构分析能力,测试手段和工具使用,用户模型分析和理解,编程能力。

软件测试相关的职业规划方向:
初级:测试定义,测试方法,测试生命周期,测试执行,测试管理工具
中级:编写测试用例,Linux,mysql… jenkins(持续集成工具)
高级:
team leader(介于技术和管理范围之间)
自动化测试(自动化测试框架,app,web,C/S)
性能测试(性能测试框架,loadrunner,jmeter 调优 linux mysql oracle redis缓存管理 http)
安全测试(sql注入,xss,白帽子)
功能测试(兼容性测试,界面测试,易用性测试:使用上是否方便,业务测试,回归测试:验证之前坏的地方是否修好了,探索性测试:针对现在新型模式开发)
管理线条:(1)主管,经理,总监 (2)CMMI :能力成熟度的集合,项目认证(参与体系建设认证,考虑层面更高,站在整个项目角度),ISO:一种质量认证(对其他部门有监督指导工作),敏捷(敏捷教练)

配置管理:
是通过对在软件生命周期的不同时间点上的软件配置进行标识,并对这些被标识的软件配置项的更改进行系统控制,从而达到保证软件产品的完整性和可塑性的过程。
好处:
(1)能够对项目中的文档,代码等的变化进行有效管理。
(2)能够方便的重现某个文件的历史版本,维护更容易。
(3)能够使异地多团队开发,并行开发成为现实

2018-03-04 15:32:47 sxl19960914 阅读数 1353
  • 软件测试2小时入门

    本课程内容系统、全面、简洁、通俗易懂,通过2个多小时的介绍,让大家对软件测试有个系统的理解和认识,具备基本的软件测试理论基础。 主要内容分为5个部分: 1 软件测试概述,了解测试是什么、测试的对象、原则、流程、方法、模型; 2.常用的黑盒测试用例设计方法及示例演示; 3 常用白盒测试用例设计方法及示例演示; 4.自动化测试优缺点、使用范围及示例‘; 5.测试经验谈。

    2096 人正在学习 去看看 曹红杏

    就目前来说,软件测试在软件开发过程中,受到越来越多的重视,它贯穿于整个开发过程中,各种软件互联网公司都在大量招收软件测试有关人员。

     前2天,我看见百度的招聘信息,它主要招收的软件测试开发人员,这就说明了,现在随着社会的进步,科技的发展,以及自动化测试的成为主流的这一种趋势,现在公司所需要的对软件测试人员的要求大幅度提高,它不仅仅要求我们有测试能力,还需要兼备软件的开发能力,这就需要我们提高测试的效率,灵活巧妙的解决测试中的问题。

     在此之前,我之所以想成为软件测试人员,我没有‘开发只能了解到项目的局部,但测试需要了解更多,我期望有更好的大局观‘这种大的理由,就是因为我技术欠缺,我的潜意识告诉我测试的技术含量没有开发高。准确的说,在软件编码方面,测试确实没有软件开发的技术含量高,但是我觉得一个开发人员需要知道一些相关的测试知识,比如:一个编码的人员知识要进行单元测试以及功能测试来看看是自己的代码有没有明显的bug;与此同时,测试人员也需要相关的开发知识,能读懂别人的代码,能根据开发人员的代码来进行测试。我认为,如果只是为了逃避软件开发,逃避编码,想在IT的职业道路上发展是很难的。不可否认,现在又很多的理论,无论是白盒测试还是说黑盒测试,无论是单元测试,还是说集成测试,还是其他,看似都与测试人员有关,但实际上,大部分的方法论都是开发人员提出来的,再一次证明,开发人员所具备的能力,测试人员也是要具备的。

      最后,我想说,不管是软件测试还是软件测试开发,公司的要求越来越高,我们需要在有限的时间内,提升自己的能力,找到适合自己的工作。


       

2017-09-04 17:12:01 EHome_BurNing 阅读数 124
  • 软件测试2小时入门

    本课程内容系统、全面、简洁、通俗易懂,通过2个多小时的介绍,让大家对软件测试有个系统的理解和认识,具备基本的软件测试理论基础。 主要内容分为5个部分: 1 软件测试概述,了解测试是什么、测试的对象、原则、流程、方法、模型; 2.常用的黑盒测试用例设计方法及示例演示; 3 常用白盒测试用例设计方法及示例演示; 4.自动化测试优缺点、使用范围及示例‘; 5.测试经验谈。

    2096 人正在学习 去看看 曹红杏


软件测试是软件开发行业成熟度更高的产物

从“成熟度”来讲,软件开发行业的整体成熟度更高,人们对软件开发的理解也更为全面深入。正因为这样,人们也更习惯将软件测试和软件开发放在一起比较。虽然软件开发和软件测试都属于产品研发,但是人们的关注点是不同的。软件开发偏向“创造”,而软件测试却偏向“验证”和“确定”,所以软件开发和软件测试对技能要求也是不同的。

人们将软件测试和软件开发放在一起比较的时候,容易陷入“用软件开发的要求来评价软件测试”的思维中,只看到软件测试和软件开发相比的弱势,却看不到软件测试自身的优势。

那么作为软件测试,和软件开发相比,又有哪些优势呢?

一、软件测试的优势

虽然软件测试存在不少困境和迷局,但是这并不能掩盖软件测试自身的优势。

和软件开发相比,软件测试入门相对更容易些。这是软件测试行业的一大特点,其实也是软件测试的优势之一。较低的“门槛”给了软件测试行业和软件测试从业者更多的选择余地。一些企业在招聘软件测试人员的时候,不一定只招聘有计算机、通信相关经验的人,他们可能会根据产品的特点,招聘一些更能理解产品和用户需求的人员,如金融、财会专业的人等,所以软件测试从业者可以是“杂家”,或者说对某些领域来说,“杂家”反而更适合软件测试。从软件开发相对“封闭”的行业特点来说,软件测试就要“开放”多了。另外对想改行从事软件研发工作的人来说,选择“软件测试”作为转型的切入点也是比较合适的。

在软件开发项目中,大多数软件开发工程师都会被分配一个或几个“模块”来编码实现,几个软件开发工程师合作才能完成一项功能是非常普遍的现象。这种割裂式的开发工作模式,让其中的软件开发工程师很难理解产品的全貌,甚至不知道最终用户会如何使用自己的产品。相对来说,软件测试人员是产品研发团队中最理解产品全貌、最理解用户的人,这是由软件测试的工作内容决定的。

软件测试人员不必关心产品究竟是如何编码实现的,不必关心用的是C语言还是C++,不必关心这部分代码是软件开发人员从网上复制下来的还是自己原创的;他们需要关注的是“产品的实现是否和开发承诺要实现的功能是一致的”,这让测试人员自然会去关注“功能”,理解产品的全貌,而不会陷入实现细节。

软件测试人员还会对产品进行“黑盒测试”,这种看似“摸瞎”的系统测试方法,需要站在用户的角度分析用户使用场景,所以软件测试人员必须想办法去全面理解用户,不仅要理解用户明确的需求,还要理解用户“隐形”的需求,如用户的使用习惯、用户行业潜在规则等。所以在产品研发领域,测试人员才是最理解用户的人。

在大多数人的印象中,软件开发整天面对着电脑,两耳不闻窗外事,十指翻飞只为编写程序,是一个很“宅”的职业。你千万不要以为软件测试也是一样的,和软件开发相比,软件测试人员需要有一定的沟通交流能力,这不仅有助于就产品测试中发现的bug和开发人员进行沟通,更重要的是,在很多企业,软件测试人员都会作为产品研发的接口,在用户出现问题的时候和用户进行沟通。除此之外,想要做好测试,协调能力、风险评估能力、数据统计分析能力和报告撰写能力都是必不可少的“软技能”。所以和软件开发要求“深度”不同,软件测试更注重“广度”,要求软件测试人员是“多面手”,有很强的综合能力。

软件测试的这一特点,让软件测试人员可以有更多的职业外延可供选择。换句话说,即使一名软件测试工程师在从事了几年软件测试工作后转行其他管理工作、产品工作,都可以很快上手,并得到认可。这是因为软件测试人员对产品理解,在研发领域可能不够“深入”,但是在非研发领域却做得很好。在广度方面,软件测试人员不会输于其他非研发领域的从业人员;对用户需求的理解,软件测试人员也不会逊色;而沟通协调、分析总结、风险意识等软能力也能帮助软件测试人员很快掌握新领域的知识技能。所以相对来说,软件测试人员其实更能适应这个复杂多变的社会。

二、软件测试的劣势

客观来讲,和软件开发相比,软件测试也存在很多劣势。

“入门低”虽然给软件测试行业和软件测试从业人员带来了更多的选择机会,但是也会导致软件测试在软件研发领域的认可度降低,认为软件测试是一项相对简单、没有技术含量(或技术含量低)的工作。这个“印象”直接导致了软件测试当前的困境和迷局。

虽然软件测试的“出口”看起来很广阔,但是和同在软件研发领域的软件开发人员相比,软件测试在软件研发领域的发展却比软件开发人员有限得多,至少这是现状。我们很少看到软件测试人员去做产品研发管理工作,成为开发代表、产品线经理或研发总监;很少看到软件测试人员去做系统架构师(SE)。很多企业,软件测试在管理上的职位,最高就是测试代表或测试经理,在技术上甚至没有职位,没有发展方向。

如果从业者的职业发展目标本就不在产品研发,而只想熟悉产品,那么软件测试无疑是获得这项经验一种很好的实践;但是如果从业者的目标就是软件测试,最后却“被迫”转岗,这样的“宽出口”就不是“优势”,而是当前软件测试的无力之处了。

 

2016-03-09 09:58:14 wuxiaobingandbob 阅读数 1127
  • 软件测试2小时入门

    本课程内容系统、全面、简洁、通俗易懂,通过2个多小时的介绍,让大家对软件测试有个系统的理解和认识,具备基本的软件测试理论基础。 主要内容分为5个部分: 1 软件测试概述,了解测试是什么、测试的对象、原则、流程、方法、模型; 2.常用的黑盒测试用例设计方法及示例演示; 3 常用白盒测试用例设计方法及示例演示; 4.自动化测试优缺点、使用范围及示例‘; 5.测试经验谈。

    2096 人正在学习 去看看 曹红杏

http://www.cnblogs.com/zhanghairong/archive/2012/07/11/2586341.html


从开发人员角度对软件测试的些许理解

 对软件测试的认识:

    软件测试要求开发人员避免测试自己开发的程序。从心理学角度讲,这是很有道理的。特别是一个相对复杂的系统,开发人员在刚刚开发完成的时候,尚沉浸于对自己设计的回味之中。此时去测试的话往往会侧重于程序本身的功能通过性测试。很难发现错误。
    测试是为发现错误而执行程序的错误。一个人发现别人身上的不足很容易,但发现自己身上的错误便不那么容易了。所谓“吾能指人之失而不能见己之失,吾能指人之小失而不能见己之大失”者是也。一个软件开发人员需要养成一种习惯,正视自己开发的软件,特别是刚刚完成的软件。要看到它的不足,知道他能做什么,不能做什么。在不能做的时候是如何处理的。对边界条件是否做了严格的判断及约束。其实大道相通,有没有这样的意识往往跟一个人为人处世的心态,对自己的认知有密切的联系。一个追求完美,经常反思自己的人往往有一种虚怀若谷的情怀,“战战兢兢、如履薄冰、如临深渊”者是也。所谓的方法、套路仅仅是方便于那些不怎么思考,只会人云亦云、亦步亦趋的人设计的。
    说了一些心态方面的,再来从方法学上说一下软件测试的要点,对开发人员来说,白盒测试要比黑盒测试更重要,这决定着你的系统上线后你能不能安心的睡觉;测试的阶段主要在单元测试与集成测试方面。

 

软件测试的分类:

    分类如下图所示(该图为大学 软件测试课程上面的图片)

 

   

开发人员测试要点:

    对于开发人员来说,我只强调单元测试、集成测试两点。
    单元测试主要 测试编写的类、类中的函数等。这是测试的最小单元。常用的测试工具有java的JUnit、BoostTest等。
    集成测试侧重于 系统的整体功能性测试,这需要模拟各种可能的请求情况,特别是边界条件。在多系统中,单个系统的测试完了后还需要各个系统之间的联调。  

    测试目标方面,除了一般的功能测试之外还需要稳定性测试、性能测试、可靠性测试、适用性测试、易用性测试、安全性测试。

    下面详细介绍一下各个测试要点的测试内容。


    1.   功能性测试要点

     在软件测试领域的通用理解是:“功能测试是基于产品功能说明书,是在已知产品所应具有的功能,从用户角度来进行功能验证,以确认每个功能是否都能正常使用、是否实现了产品规格说明书的要求、是否能适当地接收输入数锯而产生正确的输出结果等。功能测试,包括用户界面测试、各种操作的测试、不同的数据输入、逻辑思路、数据输出和存储等的测试。”    对于开发人员来说,功能性测试主要是对系统所支持的功能点的测试,对数据的测试,包括数据边界的测试、数据包长度限制的测试、各个功能模块数据的正确性测试以及容错处理。该项测试要先把系统的功能点全部列出来,对异常数据的处理也算在内。


     2. 稳定性测试要点

    测试在压力情况下内存使用情况,cpu使用情况,是否有内存泄露,各个模块功能是否正常,能否正常提供服务,是否会在高压情况下卡死等。这也需要用各种可能数据进行压力测试,要测试边界条件下,收到攻击时还能否正常工作,系统有没有自清理功能等。个人的理解,该项测试类似于可靠性测试,要点在于测试系统在极端情况下是否正常。比如一个房子在高强度地震下的抗震能力。


     3.  性能测试要点

    测试程序(一般是服务器),每秒能正常处理的请求数。这项测试一般是寻找系统的性能瓶颈,看看能否满足实际的需求。当下,一个服务器每天处理5000万的请求便可以了。当然,通过优化对性能的追求是没有止境的。


     4.  安全性测试要点

    安全性测试的主要目的是 确保软件不会去完成没有预先设计的功能。这一点很重要,需要开发人员在开发时对可能出现的情况作细致的判断。常见的安全性测试内容有:畸形的文件结构、畸形的数据包、用户输入的验证、验证资源之间的依赖关系、配置文件等的格式等。因为开发人员常常假定他所获取的资源内容是符合一定标准或规则的。附录十常见的web安全性测试的内容。


     5. 适用性测试要点

     在软件测试领域的通用理解是“适用性主要是用户体验的评估活动”。个人理解,对于开发人员,这方面主要跟易用性测试联系起来,开发软件产品是为了更方便的为人服务,一个系统要尽可能的简单,尽可能减少人工的操作。比如,在配置文件方面,有配置是为了减少代码的改动性,但是配置要尽可能的简单,可以由一个配置项解决的问题不要再添加另外一项配置。
    


附: WEB安全性测试
       一个完整的WEB安全性测试可以从部署与基础结构、输入验证、身份验证、授权、配置管理、敏感数据、会话管理、加密。参数操作、异常管理、审核和日志记录等几个方面入手。
1.        安全体系测试

  1.1)  部署与基础结构
          网络是否提供了安全的通信
          部署拓扑结构是否包括内部的防火墙
          部署拓扑结构中是否包括远程应用程序服务器
          基础结构安全性需求的限制是什么
          目标环境支持怎样的信任级别

  1.2)  输入验证

    A.  是否清楚入口点

    B.  是否清楚信任边界
    C.  是否验证Web页输入
    D.  是否对传递到组件或Web服务的参数进行验证
    E.  是否验证从数据库中检索的数据
    F.  是否将方法集中起来
    G.  是否依赖客户端的验证
    H.  应用程序是否易受SQL注入攻击
    I.   应用程序是否易受XSS攻击


  1.3)  身份验证
    是否区分公共访问和受限访问
    是否明确服务帐户要求
    如何验证调用者身份
    如何验证数据库的身份
    是否强制试用帐户管理措施

  1.4)  授权
    如何向最终用户授权
    如何在数据库中授权应用程序
    如何将访问限定于系统级资源

  1.5)  配置管理
    是否支持远程管理
    是否保证配置存储的安全
    是否隔离管理员特权

  1.6)   敏感数据
    是否存储机密信息
    如何存储敏感数据
    是否在网络中传递敏感数据
    是否记录敏感数据

  1.7)  会话管理
    如何交换会话标识符
    是否限制会话生存期
    如何确保会话存储状态的安全

  1.8)  加密
    为何使用特定的算法
    如何确保加密密钥的安全性

  1.9)  参数操作
    是否验证所有的输入参数
    是否在参数过程中传递敏感数据
    是否为了安全问题而使用HTTP头数据

  1.10)  异常管理
    是否使用结构化的异常处理
    是否向客户端公开了太多的信息

  1.11)  审核和日志记录
    是否明确了要审核的活动
    是否考虑如何流动原始调用这身份

 

2.        应用及传输安全
  WEB应用系统的安全性从使用角度可以分为应用级的安全与传输级的安全,安全性测试也可以从这两方面入手。
  2.1)应用级的安全测试

  主要目的是查找Web系统自身程序设计中存在的安全隐患,主要测试区域如下:

  2.1.1)注册与登陆:现在的Web应用系统基本采用先注册,后登录的方式。

      A. 必须测试有效和无效的用户名和密码
      B. 要注意是否存在大小写敏感,
      C. 可以尝试多少次的限制
      D. 是否可以不登录而直接浏览某个页面等。

  2.1.2)在线超时:Web应用系统是否有超时的限制,即,用户登陆一定时间内(例如15分钟)没有点击任何页面,是否需要重新登陆才能正常使用。

  2.1.3)操作留痕:为了保证Web应用系统的安全性,日志文件是至关重要的。需要测试相关信息是否写进入了日志文件,是否可追踪。

  2.1.4)备份与恢复:为了防范系统的意外崩溃造成的数据丢失,备份与恢复手段是一个Web系统的必备功能。备份与恢复根据Web系统对安全性的要求可以采用多种手段如数据库增量备份、数据库完全备份、系统完全备份等。出于更高的安全性要求,某些实时系统经常会采用双机热备或多级热备。除了对于这些备份与恢复方式进行验证测试以外,还要评估这种备份与恢复方式是否满足Web系统的安全性需求。

  2.1.5)传输级的安全测试是考虑到Web系统的传输的特殊性,重点测试数据经客户端传送到服务器端可能存在的安全漏洞,以及服务器防范非法访问的能力。一般测试项目包括以下几个方面。
    

  2.2)HTTPS和SSL测试

  默认的情况下,安全HTTP(Soure HTTP)通过安全套接字SSL(Source Socket Layer)协议在端口443上使用普通的HTTP。HTTPS使用的公共密钥的加密长度决定的HTTPS的安全级别,但从某种意义上来说,安全性的保证是以损失性能为代价的。除了还要测试加密是否正确,检查信息的完整性和确认HTTPS的安全级别外,还要注意在此安全级别下,其性能是否达到要求。

 

 

注:该文章最初写于2011年3月8日,今天搬到博客园来。

2010-02-05 13:52:00 QS8844_JJC 阅读数 306
  • 软件测试2小时入门

    本课程内容系统、全面、简洁、通俗易懂,通过2个多小时的介绍,让大家对软件测试有个系统的理解和认识,具备基本的软件测试理论基础。 主要内容分为5个部分: 1 软件测试概述,了解测试是什么、测试的对象、原则、流程、方法、模型; 2.常用的黑盒测试用例设计方法及示例演示; 3 常用白盒测试用例设计方法及示例演示; 4.自动化测试优缺点、使用范围及示例‘; 5.测试经验谈。

    2096 人正在学习 去看看 曹红杏

软件测试用例是为了有效发现软件缺陷而编写的包含测试目的、测试步骤、期望测试结果的特定集合。正确认识和设计软件测试用例可以提高软件测试的有效性,便于测试质量度量,增强测试过程的可管理性。

  在实际软件项目测试过程中,由于对软件测试用例的作用和设计方法的理解不同,测试人员(特别是刚从事软件测试的新人)对软件测试用例存在不少错误的认识,给实际软件测试带来了负面影响,本文对这些认识误区进行列举和剖析。

  误区之一:测试输入数据设计方法等同于测试用例设计方法

  现在一些测试书籍和文章中讲到软件测试用例的设计方法,经常有这样的表述:测试用例的设计方法包括:等价类、边界值、因果图、错误推测法、场景设计法等。这种表述是很片面的,这些方法只是软件功能测试用例设计中如何确定测试输入数据的方法,而不是测试用例设计的全部内容。

  这种认识的不良影响可能会使不少人认为测试用例设计就是如何确定测试的输入数据,从而掩盖了测试用例设计内容的丰富性和技术的复杂性。如果测试用例设计人员把这种认识拿来要求自己,则害了自己;拿来教人,则害了别人;拿来指导测试,则害了测试团队。听起来似乎是“小题大做”,但是绝不是“危言耸听”。

  无疑,对于软件功能测试和性能测试,确定测试的输入数据很重要,它决定了测试的有效性和测试的效率。但是,测试用例中输入数据的确定方法只是测试用例设计方法的一个子集,除了确定测试输入数据之外,测试用例的设计还包括如何根据测试需求、设计规格说明等文档确定测试用例的设计策略、设计用例的表示方法和组织管理形式等问题。

  在设计测试用例时,需要综合考虑被测软件的功能、特性、组成元素、开发阶段(里程碑)、测试用例组织方法(是否采用测试用例的数据库管理)等内容。具体到设计每个测试用例而言,可以根据被测模块的最小目标,确定测试用例的测试目标;根据用户使用环境确定测试环境;根据被测软件的复杂程度和测试用例执行人员的技能确定测试用例的步骤;根据软件需求文档和设计规格说明确定期望的测试用例执行结果。

  误区之二:强调测试用例设计得越详细越好

  在确定测试用例设计目标时,一些项目管理人员强调测试用例“越详细越好”。具体表现在两个方面:尽可能设计足够多的设计用例,测试用例的数量阅读越好;测试用例尽可能包括测试执行的详细步骤,达到“任何一个人都可以根据测试用例执行测试”,追求测试用例越详细越好。

  这种做法和观点最大的危害就是耗费了很多的测试用例设计时间和资源,可能等到测试用例设计、评审完成后,留给实际执行测试的时间所剩无几了。因为当前软件公司的项目团队在规划测试阶段,分配给测试的时间和人力资源是有限的,而软件项目的成功要坚持“质量、时间、成本”的最佳平衡,没有足够多的测试执行时间,就无法发现更多的软件缺陷,测试质量更无从谈起了。

  编写测试用例的根本目的是有效地找出软件可能存在的缺陷,为了达到这个目的,需要分析被测试软件的特征,运用有效的测试用例设计方法,尽量使用较少的测试用例,同时满足合理的测试需求覆盖,从而达到“少花时间多办事”的效果。

对软件测试的认识

阅读数 2603

对软件测试的理解

阅读数 19046

没有更多推荐了,返回首页