软件测试基础

软件测试的开发过程模型

瀑布模型
介绍:
最早出现的软件开发模型是1970年罗伊斯提出的瀑布模型,该模型给出了固定的顺序,将生存期活动从上一个阶段向下一个阶段逐级过度,如同流水下泄,最终得到所开发的软件产品,投入使用
定义:瀑布模型是将软件生存周期的各项活动规定按固定顺序而链接的若干阶段工作,形如瀑布流水,得到软件产品
1.是线性模型的一种,在所有模型中占有重要地位,是所有其他模型的一个基础
2.每一个阶段执行一次,按线性顺序进行软件开发
3.测试的切入点:测试阶段处于软件实现后,必须在代码完成后留出足够时间给测试活动,否则在导致测试不充分,很多问题到项目后期才暴漏
优缺点:
优点: 1.开发的各个阶段比较清晰
2.强调早期计划及需求调查
3.适合需求稳定的产品开发
缺点: 1.依赖与早期的需求调查,不适应需求变化
2.单一流程不可逆
3.风险往往延至后期才显露,失去及早纠正的机会
4.问题在项目后期才开始暴漏
5.前期未发现的错误会传递并扩散到后面阶段,可能导致项目失败
快速还原模型【科普】
优缺点:
优点:克服瀑布模型的缺点,更好的满足用户需求并减少由于软件需求带来不确定的项目开发风险,适合预定不能确切定义需求的软件系统开发
缺点:不适合大型系统的开发(适合开发小型的,灵活性的系统)。前提要有一个展示原型,因此一定程度上可能会限制开发人员的创新
螺旋模型

软件测试&软件工程

介绍:
1.软件测试与软件工程息息相关,软件测试是软件工程组成中不可或缺的一部分
2.在软件工程,项目管理,质量管理得到规范化应用的企业,软件测试也会进行得比较顺利,软件测试发挥的价值也会更大
3.要关注软件工程,质量管理以及配置管理与软件测试的关系;在不同的开发模式 下,如何进行软件测试

测试模型:
问题:测试的过程和软件开发的过程一样吗?是否有很多看上去很专业,似乎很有内涵的模型呢?
答:随着测试过程的管理和发展。测试人员通过大量的实践,从而总结出来了不少测试模型,常见的V模型,w模型。H模型。这些模型与开发都紧密结合,对测试活动进行了抽象,成为了测试过程管理的重要参考依据
V模型:
介绍:
1.v模型是最具有代表意义的测试模型,最早是由20世纪80年代后期提出,由英国国家计算机中心文献中发布,旨在改进软件开发的效率和效果
2.v模型推出之前,人们通常把测试过程作为在需求分析,概要设计,详细设计,编码全部完成之后的一个阶段,尽管当时一件出现了测试工作会占用这个项目周期的一半时间,但是大多数人认为测试只是一个收尾工作;v模型在这个时候推出,就是为了改变之前行业的普遍认识
3.v模型本事就是软件开发中瀑布模型的变种,它反映了测试活动与分析和设计的关系,
4.v模型标明了测试过程中本事存在的不同阶段,从左到右,描述了开发过程和测试过程间的阶段对于关系。
V模型的8大阶段步骤:
需求分析:首先要明确客户需要做的是什么,需要软件做成什么样子。需要有哪几种功能,这一点上比较关键是分析师能准确的把客户所需要达到的功能,实现方式,等表述出来,给出分析结果,写出需求规格说明书
概要设计:主要是架构的实现,指搭建架构,表述各模块功能,模块接口连接和数据传递的实现等项事务
详细设计:对概要设计中表述的各模块进行深入分析,对各模块组合进行分析等,这一阶段要求达到伪代码级别,已经把程序的具体实现的功能,现象等描述出来。其中需要包含数据库设计说明
软件编码:按照详细设计好的模块功能表,编程人员编写出实际的代码
单元测试:按照设定好的最小测试单元进行按单元测试,主要是测试程序代码,为的是确保各单元模块被正确的编译,单元的及具体划分按不同的单元与不通过的软件有不同,比如有具体到模块的测试,也有具体到类,函数的测试等
集成测试:经过了单元测试后,将个单元合成完整的体系,主要测试各模块间组合后功能时间情况,以及模块接口连接的成功是否,数据传递的正确性等,其主要目的是检查软件单位之间的接口是否正确,根据集成测试计划,一边将模块或其他软件单位组合成系统,一边运行该系统,以分析所组成的 系统是否正确,各组成部分是否合拍
系统测试:经过了单元测试和集成测试以后,我们要把软件系统搭建起来,按照软件规格书中所要求,测试软件其性能功能等是否和用户需求相符合,在系统中运行是否存在漏洞
验收测试:主要就是用户在拿到软件的时候,在使用现场,会根据前边所提到的需求,以及规格说明书来做对于测试,以确定软件达到预期的效果

优缺点:
优点:
测试v模型即包含了底层测试又包含了高层测试
底层测试:检验源代码质量的测试,如:单元测试
高层测试:检验整个系统的需要,如:系统测试
v模型清楚地标识出软件开发的阶段
它采用自顶向下逐步求精的方式把整个开发过程分成不同的阶段,每个阶段的工作都很明确,因此便于控制开发过程,当所有的阶段都完成之后,该软件的开发过程也随之结束
缺点:V模型一大缺点正是它自身的顺序性所导致的,到了测试阶段,程序已经完成,错误已经产生,很多前期的错误一直到测试阶段才发现,甚至无法发现,往往无法修改了
同时实际的开发过程中,在需求阶段很难把用户的需求完全明确下来,因此,当需求变更时将会导致阶段反复,而且都要反复需求,设计,编码,测试等过程,返工量很大。模型灵活性比较低
W模型:
优缺点:
优点:强调测试伴随随着整个软件开发周期,而且测试的对象不仅仅是程序,需求和概要设计同样要测试,
更早地介入测试,可以发现开发初期的缺陷,那么可以用更加低的成本进行缺陷修复
同样是分阶段的工作,便于控制项目过程
缺点:依赖于软件开发和软件测试依然保持一前一后的线性关系,依然无法支持迭代。自发性和需求等变更调整
对于当前很多项目,在执行的过程中根本不产生文档,那边W模型基本无法适用
使用起来技术复杂度很高,对于需求和设计的测试要求很高,实践起来很困难

软件测试分类

按照测试阶段分类:
单元测试:又称模块测试,针对软件设计中的最小单元-程序模块。进行正确性检查的测试工作,单元测试需要冲程序的内部结构出发设计测试用例 多个测试可以平行地独立进行单元测试
集成测试:又叫组装测试,通常在单元测试的基础上,将所有的程序模块进行有序的,递增的测试,重点测试不同模块的接口部分
系统测试:指的是将整个软件系统看为一个整体进行测试,包括对性能,功能,以及软件所运行的软件硬件环境进行测试
系统测试在系统集成完毕后进行测试,前期主要测试系统的功能是否满足需求,后期主要测试系统运行的 性能是否满足需求,以及 系统在不同的软硬环境中的兼容性等。
按照是否查看源代码:
黑盒测试:
介绍:又称数据驱动测试,完全不考虑程序内部结构盒内部特性,注重与测试软件的功能需求,只关心软件的输入数据和输出数据
优缺点:
优点:测试人员不需要了解实现得细节,包括特定的编程语言(没有编程经验的人也可以设计测试用例)
测试人员和编程人员是相互独立的(黑盒测试用例设计与程序如何实现无关)
从用户的角度进行测试,很容易被接受和理解
有助于暴漏任何与规格不一致或者歧义的地方
缺点:不能测试程序内部特定部位
如果程序未执行的代码无法发现
不可能做导穷举测试
黑盒测试能发现的几类问题:
功能不对或功能遗漏
界面错误
数据库访问或者处理错误
性能问题
黑盒测试分类:
功能测试:
是黑盒测试的一方面,它检查实际软件的功能是否符合用户的需求
-逻辑功能测试
-界面测试
-易用性测试
-安装测试
-兼容性测试
性能测试:
是软件测试的高端领域,性能测试工程师的待遇盒白盒测试工程师不相上下。通常我们所说的高级软件测试工程师一般就是指性能测试或是白盒测试工程师
-时间测试
-空间性能
-一般性能测试
-稳定性测试
-负载测试:通过负载测试来缺点在各种工作负载下,系统各项性能指标的变化情况
-压力测试:通过确定一个系统的瓶颈或者刚好不能接受的性能点,来获得形态能够提供的最大服务级别
白盒测试:指的是把盒子打开,去研究里面的源代码盒程序结构。
-在软件公司,往往采用黑盒测试&白盒测试相结合的方式
-软件的整体功能盒性能进行黑盒测试
-软件的源代码采用白盒测试
灰盒测试:灰盒测试,是介于白盒测试和黑盒测试之间的一种测试,既可保证黑盒的关注点又可掌握白盒的内部结构,但不会去对内部程序功能和运作做详细了解,灰盒测试结合了白盒测试盒黑盒测试的要素
按照是否运行分类:
静态测试:指不实际运行被测软件,而只是静态地检查程序代码,界面,或文档可以存在的错误过程
动态测试:是指实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程
验收测试:α测试:内测,软件仅仅是一个初步成品,通常只在软件开发者内部交流
β测试:公测,是对所有用户开发的测试版本,该版本比α版有了很好的改进,通过一些专业爱好者的测试,将结果返还给开发,然后针对性的修改
γ测试:该版本已经相当成熟,成为了正式发布的候选版本
随机测试:随机测试主要就是对被测软件的一些重要功能进行复测,也包括测试那些当前的测试用例没有覆盖到的部分,另外,对于软件更新和新增加的功能要重点测试,重点对一些特殊点情况点,特舒的使用环境,并发性,进行检查,尤其对以前测试发现的重大BUG,进行再次测试,可以结合回归测试以前进行

测试用例

定义:测试用例是为了特定的目的而设计的一组测试输入,执行条件,和预期的结果,以便测试是否满足某个特定需求,通过大量的测试用例来检验软件的运行效果,它是指导测试工作的依据。
举例1:买手机:按开机键,相当于输入了一组数据来测试,执行条件指的是开机的前提条件,比如是否有点;预期结果就是能顺利打开手机,那么测试完毕后,是否达到了想要的需求(顺利开机)
等价类划分法:
有效等价类:指符合(需求规格说明书,输入合理的数据集合)
无效等价类:指不符合(需求规格说明书,)输入不合理的数据集合
等价类思考步骤
1.先确定有效和无效等价类
2.有效等价类就是题目条件(两端的极值(边界值)要判断。中间随意一个值也要判断)
3.无效等价类先划分与条件相反的情况,再找到特殊情况(中英文,符号,空格,空)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值