软件测试第一天

软件测试学习第一天

1.1 软件测试概念

从广义上讲:软件测试是指软件产品生存周期内所有检查、评审和确认活动。如:设计评审、文档审查、需求测试、单元测试、集成测试、系统测试、验收测试等等检查活动。

从狭义上讲:软件测试是对软件产品质量的检验和评价的过程。他一方面检查、揭露软件产品质量中存在的质量问题,同时又需对产品质量进行客观的评价并提出改进意见。

软件测试使用人工或自动化手段对被测对象进行确认验证活动,从而找出被测对象与最终用户需求之间的差别。

1.2 软件测试的内容

软件测试的定义是为了发现错误而审查软件文档、检查软件数据和执行程序代码的过程。

软件测试的对象并不仅仅是程序源代码,还包括与之相对应的文档以及配置数据。

1.3 软件测试的分类

(1)按测试方法分:

黑盒测试:黑盒测试又称为功能测试、数据驱动测试或基于需求规格说明书的功能测试,通过测试活动来检查被测对象每个功能能否正常使用,是否满足用户的需求。

黑盒测试方法能更真实的从用户角度来检查被测系统的界面,功能等方面需求的实现情况,但黑盒测试基于用户需求进行的,也会带来隐患。一旦用户的需求存在问题,用黑盒测试的方法就发现不了一些特别的缺陷。这种问题在需求不明确或者变动频繁的时候尤为突出。所以,在实施软件测试工作时,有一个明确可靠的用户需求非常重要。(功能的实现)

白盒测试:白盒测试又称为结构测试、逻辑驱动测试或基于程序代码内部构成的测试。此时。测试工程师将深入考查程序代码的内部结构、逻辑设计等。白盒测试需要测试工程师具备很深的软件开发功底,精通相应的开发语言,一般的软件测试工程难以胜任该工作。

白盒测试方法主要包括代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖发';/'基本路径测试法,其中最为常用的时方法是代码检查法。

灰盒测试:黑盒测试仅仅关注程序代码的功能性表现,白盒测试则仅仅从程序代码的内部构成考虑,检查其内部代码设计结构,方法调用等。

灰盒测试则结合这两种测试方法,一方面考虑程序代码的功能性表现,另一方面,又要考虑程序代码的内部结构。

静态测试:不执行被测对象程序代码而寻找缺陷的过程。静态测试就是用眼睛看,阅读程序代码,文档资料等,与需求规格说明书中的客户需求进行比较,找出程序代码中设计不合理,以及文档资料有错误的地方。

动态测试 :动态测试即为实际的执行被测对象的程序代码,执行事先设计好的测试用例,检查程序代码运行得到结果与测试用例中设计的预期结果之间是否差异、判定实际结果与预期结果是否一致,从而检验程序的正确性等性能状况。

动态测试有四部分组成:设计测试用例、执行测试用例、分析比较输出结果、输出测试报告

动态测试有三种主要的方法:黑盒测试、白盒测试、灰盒测试

手动测试:手动测试,模拟用户的业务流程,来使用软件产品,与用户需求规格说明书中的需求定义进行比较,从而发现软件产品中的缺陷。

手动测试是最传统的测试方法,也是现在大多数公司都使用的测试形式,测试工程师设计测试用例并执行测试用例,然后根据实际的结果去和预期的结果相比较并记录测试结果,最终输出测试报告的测试活动。 这样的测试方法。可以充分发挥测试工程师的主观能动性,将其智力活动体现与测试之中,能发现很多缺陷,但同时这样的测试方法又有一定的局限性和单调枯燥性。

自动化测试:自动化测试就是利用一些测试工具,模拟用户的业务使用流程,让他们自动运行来查找缺陷。也可以编写一些代码,设定特定的测试场景,来自动寻找缺陷。自动化测试的引入,大大的提高了测试的效率和测试的准确性,而且写出比较好的测试脚本,还可以在软件生命周期的各个阶段重复使用。

(2)按测试阶段分:

需求测试:在需求调研完成后,由测试部门或者需求小组进行需求的测试,从需求文档的规范性、正确性等方面检查需求调研阶段生成的文档, 测试工程师最好是有经验的需求分析人员,并且得到了需求调研期间形成的demo。 在有条件开展需求测试的时候,一定要实施需求测试。

单元测试:单元测试又称为模块测试 ,就是对程序代码中最小的设计模块单元进行测试。单元测试是在软件开发过程中进行的最低级别的测试活动。

在单元测试活动中,主要采用静态测试和动态测试相结合的办法,首先采用静态的代码走查,检查程序代码中不符合编程规范,存在错误或者遗漏的地方,同时使用代码审查的方法,项目小组检查项目代码,以期发现更多的问题,然后再使用单元测试工具,比如JUnit等工具进行程序代码内部逻辑结构、函数调用等方面进行测试。单元测试一般可以发现大约80%的软件缺陷。

集成测试:集成测试又称为组装测试,就是将软件产品中各个模块集成组装起来,检查其接口是否存在问题,以及组装后的整体功能、性能表现。在开展集成测试之前,我们需进行深入的单元测试。从个体来讲,可能解决很多缺陷,但所有的个体组合起来,就可能出现各种各样的问题。

集成测试阶段主要解决的是各个软件组成单元代码是否符合开发规范、接口是否存在问题,整体功能有无错误、界面是否符合设计规范、性能是否满足用户需求等问题。

系统测试:系统测试就是将通过集成测试的软件,部署到某种较为复杂的计算机用户环境(一般用户的计算机环境)进行测试。

系统测试的目的在于通过与系统的需求定义作比较,发现软件与系统的定义不符合或与之矛盾的地方。这个阶段主要进行的是安装与卸载测试、兼容性测试、功能确认测试、安全性测试等等。系统测试阶段采用黑盒测试方法,主要考查被测软件的功能与性能表现,如果软件可以按照用户的期望的方式来工作的时候,即认为通过软件测试。

系统测试过程其实也是一种配置检查过程,检查在软件生产过程中是否有遗漏的地方,在系统测试过程中做到查漏补缺,以确保交付的产品符合用户的质量要求。

用户测试:在系统测试完成后,将会进行用户测试,这里的用户测试,其实可以称为用户确认测试。在正式验收前,需要用户对本系统做出一个评价,用户可对交付的系统做测试,并将测试结构反馈回来,进行修改、分析。面向应用的项目,在交付用户正式使用之前要经过一定的时间的用户测试。

回归测试:回归测试一般发生的情况在发现缺陷后,重新执行测试用例的过程。回归测试阶段主要的目的是检查以前的测试用例能否再次通过,是否还有需要补充的用例等。

有些公司会采用自动化测试工具来进行回归测试,比如利用QTP,对于产品级,变动量小的软件而言,我们可以利用这样的工具去执行测试。但一般情况下,都由测试工程师手动去执行以前的测试用例,来检查用例通过情况。

回归测试可以发现在产品发布前未能发现的问题,比如时钟的延迟,软件的性能问题等等。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值