当前位置:   article > 正文

软件测试相关概念_什么是测试前条件和测试后条件

什么是测试前条件和测试后条件

软件测试目的和原则

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

测试不仅仅是为了找出错误
通过分析错误产生原因、阶段和错误发生趋势:

  1. 帮助项目管理者了解软件开发过程中的缺陷
  2. 帮助测试人员设计出具有针对性的测试方法,提高测试效率和有效性
  3. 便于开发人员找寻错误重灾区,加强自测
  4. 让客户能够了解产品,向客户展示产品质量

根据测试目的的不同,有回归测试、压力测试、性能测试、安全测试等,分别为了检验修改或优化过程是否引发新的问题、软件所能达到处理能力和是否达到预期的处理能力

从测试的目的出发,大概可以分为两类:验证程序能正常工作的测试和验证程序不能正常运行的测试

关于需求

IEEE定义:软件需求是

  1. 用户解决问题或达到目标所需条件或权能(Capability)
  2. 系统或系统部件要满足合同、标准、规范或其他正式规定文档所需要的条件或权能
  3. 一种反映上面(1)或(2)所述条件或权能的文档说明。它包括功能性需求及非功能性需求,非功能性需求对设计和实现提出了限制,比如性能要求,质量标准,或者设计限制

用户需求:可以理解为甲方提出的需求,或者是终端用户使用产品时必须要完成的任务
软件需求(功能需求):该需求会详细描述开发人员必须实现的软件功能

软件规格说明书(以注册为例):

一:用户需求
平台支持邮箱注册
二:软件需求
1.1.1.1、注册账号
1.1.1.1.1、功能概述
用户通过填写邮箱信息注册
1.1.1.1.2、用户角色
匿名用户
1.1.1.1.3、前置条件

1.1.1.1.4、输入
序号|名称|说明|长度|类型|备注
001|姓名|必填|6-15|字符型|
002|邮箱|必填|邮箱|字符型|
003|密码|必填|6-15|字符型|
004|确认密码| |6-15|字符型|
005| 验证码 | * |6位|字符型|
006|注册| 操作 | * |操作型|
1.1.1.1.5、处理
1.1.1.1.5.1、基本事件流
1.选择注册
2.系统展示用户协议界面,要求用户确认是否同意
1)同意:用户进行注册信息填写
2)不同意:禁止用户注册
3.注册信息填写
需要填写:姓名、邮箱、密码、确认密码、验证码
4.提交注册信息
5.系统向用户邮箱发送含有激活信息的邮件;同时提示用户,若未收到邮件,使用注册的邮箱和密码登录系统后再次发送激活邮件
6.可执行激活操作,直接跳转至注册邮箱门户界面
7.用户提供收到的邮件激活账户,完成注册
1.1.1.1.5.2、扩招事件流
用户注册并激活或,第一次登录平台,提示用户完善个人信息
1.1.1.1.5.3、异常事件流
1)用户没有收到激活邮件,可在登录见面录入电子邮件和密码后,再次发送激活邮件
2)每次发送的激活邮件,在24小时内有效,超过24小时需要重新发送
1.1.1.1.6、输出
用户注册成功
1.1.1.1.7、后置条件
该模块为用户登陆等的前置模块

关于bug

Bug一词的原意是“昆虫”或“虫子”;而在电脑系统或程序中隐藏着的一些未被发现的缺陷或问题,人们也叫它“bug”。 格蕾丝·赫柏(GraceMurray Hopper),是一位为美国海军工作的电脑专家,也是最早将人类语言融入到电脑程序的人之一。而代表电脑程序出错的“bug”这名字,正是由赫柏所取的。1947年9月9日,赫柏对Harvard MarkII设置好17000个继电器进行编程后,技术人员正在进行整机运行时,它突然停止了工作。于是他们爬上去找原因,发现这台巨大的计算机内部一组继电器的触点之间有一只飞蛾,这显然是由于飞蛾受光和热的吸引,飞到了触点上,然后被高电压击死。所以在报告中,赫柏用胶条贴上飞蛾,并把“bug”来表示“一个在电脑程序里的错误”,“Bug”这个说法一直沿用到今天。
与Bug相对应,人们将发现Bug并加以纠正的过程叫做“Debug”(中文称作“调试”),意即“捉虫子”或“杀虫子”。 后来就直接用bug
在很多的软件测试中 都用Bug来说明那些问题。
————————————————————————————————by百度百科

当且仅当规格说明是存在的并且正确,程序与规格说明之间的不匹配才是错误
当没有需求规格说明书时,判断标准以最终用户为准:当程序没有实现其最终用户合理预期的功能要求时,就是软件错误

产生bug的后果:用户流失,绩效下滑
出现bug的责任:测试人员是第一责任人
发现bug的处理:第一时间回滚,如何慢慢定位

关于测试用例

**测试用例(Test Case)**是为了实施测试而向被测试的系统提供的一组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等

测试用例 ecsp-439: 单位用户注册成功
步骤动作预期结果
进入注册界面,选择注册系统展示注册界面
输入符合要求的单位名称、单位邮箱、密码、确认密码、组织机构代码、验证码,并确认同意《用户注册协议》,提交注册信息系统进行注册操作,发送激活邮件。注册成功后,跳转到注册成功页面,并提示用户进行激活操作
进入注册所使用的邮箱,进行激活操作激活成功
使用邮箱和密码登录登录成功
测试方式手工
重要性重要
测试环境CHROME,IE10
测试前提系统正常,邮箱服务器开启
功能模块注册和登录

测试过程中可能会遇到:

不知道较为全面的测试了所有功能——>测试覆盖率无法衡量——>对新版本的重测难以实施——>存在大量冗余影响测试效率

而测试用例的产生就是为了解决以上问题

开发模型和测试模型

软件的生命周期是指从软件产品的设想开始到软件不再使用而结束的时间;即需求分析、计划、设计、编码、测试、运行维护。

瀑布模型(Waterfall Model):
在这里插入图片描述
瀑布模型是所有其他模型的基础框架。瀑布模型的每一个阶段都只执行一次,所有是线性顺序进行的软件开发模式

  • 优点:强调开发的阶段性;强调早期计划及需求调查;强调产品测试
  • 缺点:依赖于早期进行的唯一一次需求调查,不能适应需求的变化;由于是单一流程,开发中的经验教训不能反馈应用于本产品的过程;风险往往迟至后期的测试阶段才显露,因而失去及早纠正的机会

螺旋模型(Spiral Model):
在软件开发初期要求不是很明确的时候,一般采用渐进式开发模型。螺旋模型就是渐进式开发模型的代表之一

适用于规模庞大、复杂度高、风险大的项目

而这种迭代开发模式就会给软件开发带来新的要求:不允许有一段独立的测试时间和阶段,测试必须跟随开发的迭代而迭代。
在这里插入图片描述

  • 优点:强调严格的全过程风险管理;强调各开发阶段的质量;提供机会检讨项目是否有价值继续下去
  • 缺点:引入非常严格的风险识别、风险分析和风险控制,这对风险管理的技能水平提出了很高的要求。这需要人员、资金和时间的投入

增量、迭代
增量开发能显著降低项目风险,结合软件持续构建机制,构成了当今流行的软件工程最佳实践之一。
增量开发模型,鼓励用户反馈,在每个达代过程中,促使开发小组以一种循环的、可预测的方式驱动产品的开发。
在这种开发模式下,每一次的迭代都意味着可能有需求的更改、构建出新的可执行软件版本,意味着测试需要频繁进行,测试人员需要与开发人员更加紧密地协作

增量是逐块建造的概念
迭代是反复求精的概念

敏捷
《敏捷宣言》:

个体与交互重于过程和工具
可用的软件重于完备的文档
客户协作重于合同谈判
响应变化重于遵循计划
在每对比对中,后者并非全无价值,但我们更看重前者。

scrum
scrum由product owner(产品经理)、scrum master(项目经理)和team(研发团队)组成

  • product owner负责整理user story(用户故事),定义其商业价值,对其进行排序,制定发布计划,对产 品负责。
  • scrum master 负责召开各种会议,协调项目,为研发团队服务。
  • 研发团队则由不同技能的成员组成,通过紧密协同,完成每一次迭代的目标,交付产品。

迭代开发
与瀑布不同,scrum将产品的开发分解为若干个小sprint(迭代),其周期从1周到4周不等,但不会超过4周。参与的团队成员一般是5到9人。每期迭代要完成的user story是固定的。每次迭代会产生一定的交付。

scrum基本流程

产品负责人负责整理user story,形成左侧的product backlog。
发布计划会议:product owner负责讲解user story,对其进行估算和排序,发布计划会议的产出就是制定出这一期迭代要完成的story列表,sprint backlog。
迭代计划会议:项目团队对每一个story进行任务分解,分解的标准是完成该story的所有任务,每个任务都有明确的负责人,并完成工时的初估计。
每日例会:每天scrum master召集站立会议,团队成员回答昨天做了什么今天计划做什么,有什么问题。
演示会议:迭代结束之后,召开演示会议,相关人员都受邀参加,团队负责向大家展示本次迭代取得的成果。期间大家的反馈记录下来,由po整理,形成新的story。
回顾会议:项目团队对本期迭代进行总结,发现不足,制定改进计划,下一次迭代继续改进,已达到持续改 进的效果。

敏捷中的测试
挑战1.轻文档
挑战2.快速迭代

测试用例作用减弱,更多的采用思维导图、探索性测试(强调自由度,设计和执行同时进行,根据测试结果不断调整测试计划)、自动化测试

软件测试V模型
在这里插入图片描述

  1. 明确标注了测试过程中存在的不同类型测试,描述了测试阶段和开发阶段期间对应关系
  2. 指出了:单元和集成测试程序的执行是否满足软件设计的要求;系统测试应检测系统功能、性能的质量特性是否达到了系统要求;验收测试确定软件的实现是否满足用户需求
  3. 局限性:把测试作为在编码之后的阶段,没有在需求阶段进入测试

软件测试W阶段

在这里插入图片描述

  • W模型增加了软件开发阶段中应同步进行的验证和确认活动
  • W模型特点:测试的对象不仅是程序,需求、设计等同样要测试,测试与开发是同步进行的
  • W模型优点:有利于尽早发现问题
  • 局限性:需求、设计、编码等活动被视为串行的;测试和开发活动也保持着一种线性的前后关系,上一阶段完全结束,才可正式开始下一个阶段工作。无法支持敏捷开发模式。对于当前软件开发复杂多变的情况,W模型并不能解除测试管理面临着困惑

关于配置管理和软件测试

**配置管理( Configuration Management)**是通过对在软件生命周期不同的时间点上的软件配置进行标识,并对这些被标识的软件配置项的更改进行系统控制,从而达到保证软件产品的完整性和可溯性的过程。

实施软件配置管理(SCM),至少能给项目团队带来如下好处:

(1)能够对项目中的文档、代码等的变化进行有效管理。
(2)能够方便地重现某个文件的历史版本。
(3)能够重新编译某个历史版本,使维护工作变得容易。
(4)能够使异地多团队开发、并行开发成为现实。
(5)从公司级看,实行统一的配置管理流程可提高项目组间人员流动的工作效率

测试人员应该从配置库取源代码编译后再测试,只有看到新的构建版本不再出现那个Bug,才能把缺陷库中的Bug关闭

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号