1.软件测试基础

软件测试的定义

测试的含义为检验产品是否满足需求为目标,

软件测试的目的

测试的目的是寻找错误,并且尽最大可能找出最多的错误

软件测试的原则

所有的软件测试都应追溯到用户需求

应当把“尽早地和不断地进行软件测试”作为软件测试者的座右铭

完成测试时不可能的,测试需要终止

充分注意测试中的集群现象

程序员应避免简称自己的程序

尽量避免测试的随意性

软件测试的对象

软件包括文档、数据以及程序三部分组成

软件测试分类

按开发阶段软件测试分为:单元测试、集成测试、系统测试、确认测试、验收测试

单元测试又称为模块测试,是针对软件设计的最小单位----程序模块进行正确性检验的测试工作

集成测试也叫组装测试,通常在单元测试的基础上,将所有的程序模块进行有序的递增的测试,集成测试是检验程序单元或部件的接口关系

确认测试是通过检验和提供客观证据,证实软件是否满足特定预期用途的需求,确认测试时检测鱼证实软件是否满足需求说明书中规定的要求

系统测试是为验证和确认系统是否达到其原始目标,而对集成的硬件和软件系统进行的测试。

验收测试按照项目任务书或合同、供需双方约定的验收依据文档进行的对整个系统的测试与评审,决定是否接受或拒收系统。

按照测试实施组织划分为:开发方测试、用户测试(β测试)、第三方测试

开发方测试也叫“验收测试”或“a测试“,是在软件开发环境下,由开发者检测与证实软件的实现是否满足软件设计说明或软件需求说明的要求。

用户测试在用户的应用环境下,用户通过运行和使用软件,检测与核实软件实现是否符合自己预期的要求。

第三方测试介于软件开发方和用户之间的测试组织的测试,第三方测试也称独立测试

,一般情况是在模拟用户真实应用环境下,进行软件确认测试。

**按照测试技术分为:白盒测试、黑盒测试、灰盒测试。**也可划分为静态测试和动态测试

白盒测试是通过对程序内部结构的分析,检测来寻找问题

黑盒测试是通过软件的外部表现来发现其缺陷和错误

灰盒测试是介于白盒和黑盒之间的测试,同时结合了他两测试的要素,也考虑了用户端、特定的系统知识和操作环境

静态测试是指不运行程序,通过人工对程序和文档进行分析与检查,实际上是对软件中的需求说明书、设计说明书、程序源代码等进行非运行的检查。静态测试包括走查、符号执行、需求确认等。

动态测试是指通过人工使用工具运行程序进行检查、分析程序的执行状态和程序的外部表现。

软件测试过程模型:V模型、W模型、H模型、X模型、前置测试模型

**测试过程4个步骤:**单元测试—集成(组装)测试—确认测试—系统测试

软件错误的严重级别:

严重—系统奔溃、数据丢失、数据毁坏

较严重—操作性错误、错误结果、遗漏功能

一般—小问题、错别字、UI布局、罕见故障

建议—不影响使用的瑕疵或更好的实现

软件错误的优先级别:

最高优先级—立即修复、停止进一步测试(立即)

次高优先级—在产品发布之前必须修复(严重)

中等优先级–如果时间允许应该修复(一般)

最低等优先级—可能修复,但是也能发布(建议)

软件错误的状态

新建(New)测试中新报告的软件bug

打开(Open)被确认并分配给开发人员

修正(Fixed)开发人员已完成修正,等待测试人员验证

拒绝(Declind)拒绝修改bug

延期(Deferred)不在当前版本修复的错误,下一版修复

关闭(Closed)bug已修复并验证通过

Bug记录信息

测试软件名称

测试软件版本

测试人名称

测试事件

测试软件和硬件配置环境

发现软件错误的类型

错误的严重等级

详细步骤

必要的附图

测试注释

Bug处理信息

处理者姓名

处理时间

处理步骤

错误记录和当前状态

Bug管理流程

  • 测试人员提交新的错误入库,错误状态为”new”

测试组长确认错误分配给相应的开发人员,状态设置为“Open“

测试组长确认不是错误,则拒绝,设置为”Declined”状态

  • 开发人员查询状态为“Open“的错误,做如下处理

如果不是错误,则置状态为“Declined “

如果是错误,则修复并置状态为“Fixed”

如果不能解决的错误,要留下文字说明并保持错误状态为“Fixed”

对于不能解决和延期的错误,不能由开发人员决定,应进一步向上级反馈

  • 测试人员查询状态为“Fixed”的错误,验证错误是否已经解决,做如下处理

如果问题解决了,置错误状态为“Closed”

如果问题没有解决,则置错误状态为“Reopen”

软件测试的方法

白盒测试

白盒测试也称结构测试测或者逻辑驱动测试,是按照程序内部的结构进行测试程序,通过测试来检测产品内部动作是否按照规格说明书的规定正常进行。

黑盒测试

黑盒测试也称功能测试,通过测试来检测每个功能是否能正常使用,在测试过程中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,主要是针对软件界面和软件功能进行测试。是以用户的角度,从输入数据与输出数据的对应关系出发进行测试

**黑盒测试用例设计方法:**等价类、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法等

等价类是把程序的输入域划分成若干部分,然后从每个部分中选取少数代表性数据作为测试用例

边界值分析是通过选择等价类边界的测试用例

错误推测法设计方法就是基于经验和直觉推测程序中所有可能存在的各种错误

因果图是从用自然语言书写的程序规格说明的描述中找出因(输入条件)和果(输出或程序状态的改变)可以通过因果图转换为判定表

正交试验设计法就是使用已经造好的正交表格来安排试验并进行数据分析的一中方法

自动化测试

自动化测试就是通过测试工具或其他手段,按照测试工程师的预定计划对软件产品进行自动话的测试,它是软件测试一个重要的测试组成部分,能够完成许多手工无法完成或者难以实现的测试工作。

自动化测试优势11个

提高测试质量

提高测试效率,缩短测试工作时间

提高测试覆盖率

执行手工测试不能完成的测试任务,如压力测试、负载测试、大数据测试、奔溃性测试

更好地重现缺陷的能力

更好地利用资源

增进测试人员与开发人员之间的合作伙伴关系

需要反复进进行的工作

负载压力测试

会取得事倍功半的效果

自动化测试工具可以进行系统后台测试或者内部性能特性

自动化测试局限性6个

定制性项目

周起很短的项目

业务规则复杂的对象

人体感观与易用性测试

不稳定的软件

涉及物理交互

自动化测试工具分类

**负载压力测试工具:**主要是为了度量应用系统的可扩展性和性能,是一种预测系统行为和性能的自动化测试工具,这类工具有LoadRunner、QA等

**功能测试工具:**主要目的检测应用程序是否能够达到预期的功能并正常运行,这类工具有WinRunner、QA等

**白盒测试工具:**一般主要针对代码进行测试,测试中发现的缺陷可以定位到代码级。镜态工具有logisconpe、PRQA等,动态工具DevPartner、Rational
Purify等

网络测试工具:主要用于网络故障定位、网络性能监测工具、网络仿真模拟工具可以分析分布式应用性能,关注应用、网络和其他元素。

**测试管理工具:**用于对测试进行管理,测试管理工具包括对缺陷的跟着管理、测试计划、测试用例、测试实施进行管理,并且还可以跟踪缺陷,工具有TestDirector、TestManger、TrackRecord等、

**测试辅助工具:**这些工具本身不执行测试,可以生成测试数据,用于辅助测试等。

功能自动化测试

功能自动化工具主要功能是为了确保应用能够按照预期设计执行而将业务处理过程记录到测试脚本中。

功能自动化测试工具基本上都是采取录制回放的方式来模拟用户的实际操作。

环境判读模式:根据你选取的图形用户界面对象,把你对软件的操作动作录制下来,并忽略这些对象在屏幕上的物理位置。

模拟模式:

①创建脚本通过录制、编制或两者同用的方式创建测试脚本。

②调试脚本,脚本录制或编辑结束后,可以在调试模式下运行脚本,比如设置断点来检测变量。

③执行测试,脚本调试结束后,便可以在检验模式下测试被测软件。

④结果分析,测试结束后,测试工具会把测试情况显示在测试结果报告中,进行结果分析

负载压力自动化测试

负载测试是为了证明在与产品预期规模等同的数据库中处理给定的事务请求的容量下,系统功能与性能是否与需求规格说明书中规定的,可接受的响应时间一致的测试过程

压力测试是使客户机在大容量情况下运行的测试过程,目的是查看应用将在何时何处出现中断,即识别系统的薄弱环节,压力测试可能暴露系统缺陷有内存泄漏、系统资源过量消耗、磁盘空间用完等。

负载压力测试工具基本上采用录制回放的方式来模拟用户的实际操作

测试录制脚本原则3个

  1. 脚本越小越好

  2. 选择负载压力最高的业务功能进行测试

  3. 选择所需的操作进行录制。

测试工具模拟用户并发访问两种方式
进程回放模式:模拟多进程运行方式,即客户端与服务器的访问采用进程方式,每一个虚拟用户通过一个进程建立与服务器的通信连接并访问

线程回放模式:模拟多线程运行方式,即客户端与服务器的访问采用线程方式,每一个虚拟用户通过一个线程建立与服务器的通信连接并访问。

录制回放模式操作步骤6个

①选择协议:一般B/S系统选择Web(Http/Html)两层C/S系统则根据C/S架构所用到的后台数据库来选择不同的协议。

②创建测试脚本:选择好相应的录制协议后,启动脚本工具进行录制

③参数化测试数据:以订单输入过程为例,参数化操作可讲记录中的常量数据,如订单号、客户名称,由变量值来替代,以更好地模拟多个实际用户的操作

④创建虚拟用户:负载压力测试目的就是要模拟多个用户并发访问系统,

⑤执行测试:设定了相应的负载测试方案后,就可以开始测试

⑥结果分析:主要是交易性能数据,如响应时间、服务器资源占用情况、网路设备和数据库的实时性能数据等。

软考备战系列一----软件测试基础相关推荐

  1. 【软考软件评测师】软件测试基础知识

    [软考软件评测师]软件测试基础知识 软件测试基础知识 [软考软件评测师]软件测试基础知识 一. 软件测试的概念 1)软件测试定义的发展 2)软件测试的目的 3)软件测试的对象 4)对于测试组织者和实施 ...

  2. 软考备战之计算机专业词汇

    软考备战之计算机专业词汇 List 1 计算机科技英语词汇:计算机基础知识 computer n.电脑,电子计算机 arithmetic logic unit 算术逻辑部件 manipulate vt ...

  3. 视频教程-2020年软考信息系统项目管理师考试基础知识(下)新考纲视频培训课程-软考

    2020年软考信息系统项目管理师考试基础知识(下)新考纲视频培训课程 10年以上软考培训经验,线下培训学员过万人.培训过的课程有:网络规划设计师.网络工程师.信 息系统项目管理师.系统集成项目管理师. ...

  4. 华为虚拟服务器lanip地址,2018软考网络工程师《华为基础实验》十九配置路由器为DHCPServer...

    原标题:2018软考网络工程师<华为基础实验>十九配置路由器为DHCPServer 实验要求: 在R1上使能DHCP 功能. 创建三个全局地址池,用于为三个不同部门的PC分配IP 地址. ...

  5. 备战软考(6) 2014年度下半年软考备战分析报告

    2014年度下半年全国计算机技术与软件专业技术资格(水平)考试,这应该是我本年度经历的最后一场比较大型的考试了,早在11月8日就应经结束了,今天在阅读博客的时候,看到很多的小伙伴都已经做了总结,才想起 ...

  6. 计算机中央处理器相关知识,软考程序员考点计算机硬件基础知识之中央处理器CPU...

    下面希赛小编为大家整理的软考程序员考点计算机硬件基础知识之中央处理器CPU,希望能帮助学友们.具体内容如下: 中央处理器 中央处理器(CPU,Central Processing Unit)是一块超大 ...

  7. 2019软考备战:软考中级课程+参考资料

    点击此处查看:软考高级课程 软考中级课程 (文末附资料) 系统集成项目管理工程师 系统集成项目管理工程师是信息产业部和人事部举办的软考中新增开的一门考试.系统集成项目管理工程师主要在信息系统建设和集成 ...

  8. 软考备战:软考中级课程+参考资料

    软考中级课程 (文末附资料) 系统集成项目管理工程师 系统集成项目管理工程师是信息产业部和人事部举办的软考中新增开的一门考试.系统集成项目管理工程师主要在信息系统建设和集成工作中担任相关的项目管理工作 ...

  9. 【软考备战·五月模考】希赛网五月模考软件设计师上午题

    文章目录 一.成绩报告 二.错题总结 第一题 第二题 第三题 第四题 第五题 第六题 第七题 第八题 第九题 第十题 第十一题 第十二题 三.知识查缺 题目及解析来源:2023上半年软考-模考大赛 一 ...

最新文章

  1. CV:cv2实现检测几何形状并进行识别、输出周长、面积、颜色、形状类型
  2. django 操作MySQL 中文乱码_Django 连接mysql数据库中文乱码
  3. CSharp关键字----using
  4. springboot logback 日志配置
  5. java 多行文本框_Swing常用组件之多行文本区JTextArea
  6. html是非结构数据吗,Python处理非结构数据
  7. 酒店管理系统程序设计
  8. 11111111111111111111
  9. 《WF本质论》第一章OpenSesame我的实现
  10. secoclient支持ipv6吗_ipv6使用说明
  11. 强化学习(RL)算法
  12. 答:本科生写论文对考研有用吗?
  13. 国内android应用商城中程序隐私泄露分析,Android应用程序隐私数据泄露检测
  14. PDF 转换成JPG图
  15. 解决:MAC 禁止 docker 开机自启
  16. rsas可以扫描linux,GitHub - vtatv/RSAS-Task-Release: 绿盟远程安全评估系统(RSAS)-RSAS批量下任务工具...
  17. SpringBoot 配置多数据源 dynamic-datasource(多库)
  18. 更新windows补丁KB2506143时一直卡在搜索更新
  19. linux系统下一键还原,Linux系统下修复ThinkPad 一键恢复功能
  20. FullCodePress采访:澳大利亚团队Elle Meredith

热门文章

  1. 文献学习(part13)--A Sober Look at the Unsupervised Learning of Disentangled...
  2. Django(part14)--模板的继承
  3. python安装redis模块_安装redis及python redis模块
  4. 举例说明层次分析的三大原则_一起来复习下陈印老师关于多选题做题思路的分析...
  5. 纪念下数据路上遇到的贵人
  6. 如何创建最简单的 ABAP 数据库表,以及编码从数据库表中读取数据 (下)
  7. Angular里ngModel双向绑定的一个使用例子
  8. SAP Spartacus元素被选中后,focus颜色的css实现
  9. SAP Spartacus MyCompany菜单里Org unit的Add按钮Accessibility问题初始分析
  10. Angular list列表绑定的一个例子