软件测试---概念篇

    科技2022-07-17  107

    一、什么是软件测试

    软件测试就是证明软件不存在错误的过程 软件测试就是为了证明程序能够正确运行

    二、测试与调试的区别

    1.目的不同:

    测试的任务是发现程序中的缺陷,调试的任务是定位并且解决程序中的问题

    2.参与角色不同

    测试主要由测试人员和开发人员来执行,黑盒测试主要由测试人员来完成、单元/集成测试主要是由开发人员执行,调试由开发人员完成

    3.执行的阶段不同

    测试贯穿整个软件开发声明周期,调试一般在开发阶段

    三、软件测试的目的和原则

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

    四、什么是需求

    满足用户期望或正式规定文档(合同、规范、标准)所具有的条件和权能,包含用户需求和软件需求 IEEE定义: 软件需求是:

    用户解决问题或达到目标所需条件或权能(系统或系统部件要满足合同、标准、规范或其他正式规定文档所需具有的条件或权能一种反映上面1或2所述条件或权能的文档说明。它包括功能需求及肺功能需求,非功能需求对设计和实现提出了限制,比如性能要求,质量标准,或者设计限制 用户需求 可以简单的理解为甲方提出的需求,如果没有甲方,那么就是终端用户使用产品时必须要完成的任务,该需求一般比较简略 软件需求 或者叫功能需求,该需求会详细描述开发人员必须实现的软件功能,软件需求是测试人员工作的基本依据

    五、什么是bug

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

    六、什么是测试用例

    测试用例是为了实施测试而向被测试的系统提供的一组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等要素 测试用例ecsp-439:单位用户注册成功

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

    测试过程中可能会遇到以下问题:不知道是否较全面的测试了所有的功能–测试的覆盖率无法衡量-对新版本的重复测试很难实施-存在大量冗余测试,影响测试效率 测试用例的产生就是为了解决上述的问题

    七、软件的生命周期

    软件的生命周期是指从软件产品的设想开始到软件不再使用而结束的时间,如果把软件看成是有生命的事务,那么软件的生命周期可以分为6个阶段:即需求分析、设计、编码、测试、运行维护

    八、开发模型和测试模型

    1.瀑布模型

    瀑布模型在软件工程中占有重要地位,是所有其他模型的基础框架,瀑布模型的每一个阶段都只执行一次,因此是线性顺序进行的软件开发模式 优点:

    强调开发的阶段性强调早期计划及需求调查强调产品测试

    缺点:

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

    瀑布模型的一个最大缺陷在于,可以运行的产品很迟才能被看到。这会给项目带来很大的风险,尤其是集成的风险。因为如果在需求引入的一个缺陷要到测试阶段甚至更后的阶段才发现,通常会导致前面阶段的工作大面积返工,业界流行的说法是:“集成之日就是爆炸之日”。尽管瀑布模型存在很大的缺陷,例如,在前期阶段未发现的错误会传递并扩散到后面的阶段,而在后面阶段发现这些错误时,可能已经很难回头再修正,从而导致项目的失败。但是目前很多软件企业还是沿用了瀑布模型的线性思想,在这个基础上做出自己的修改。例如细化了各个阶段,在某些重点关注的阶段之间掺入迭代的思想。 在瀑布模型中,测试阶段处于软件实现后,这意味着必须在代码完成后有足够的时间预留给测试活动,否则将导致测试不充分,从而把缺陷直接遗留给用户

    2.螺旋模型

    一般在软件开发初期阶段需求不是很明确时,采用渐进式的开发模式。螺旋模型是渐进式开发模型的代表之一。这对于那些规模庞大、复杂度高、风险大的项目尤其适合。这种迭代开发的模式给软件测试带来了新的要求,它不允许有一段独立的测试时间和阶段,测试必须跟随开发的迭代而迭代。因此,回归测试的重要性就不言而喻了 未完待续…

    Processed: 0.012, SQL: 8