精华内容
下载资源
问答
  • 测试技术描述

    千次阅读 2020-08-11 21:24:16
    测试技术 简要描述 验收测试 基于最终用户/客户规约的最终测试,或基于最终用户/客户使用一段时间后进行的测试 即兴测试 与探索测试相似,但是通常值测试人员在测试以前对软件有较深的理解 α测试 当开发...
    测试技术 简要描述
    验收测试 基于最终用户/客户规约的最终测试,或基于最终用户/客户使用一段时间后进行的测试
    即兴测试 与探索测试相似,但是通常值测试人员在测试以前对软件有较深的理解
    α测试 当开发接近结束的时候对应用测试进行的测试;作为测试结果,可能会有一些细微的设计变更。通常由最终用户或其他人员完成,而不是开发人员和测试人员完成
    基本路径测试 基于程序或系统的流和路径进行的测试
    β测试 当开发和测试基本上都结束的时候对应用程序进行的测试;产品最终发布之前,BUG或问题需要在该测试中发现。通常有最终用户或其他人员完成,而不是开发人员和测试人员完成
    黑盒测试 测试用的产生是基于系统的功能
    自底向上测试 从下面开始对模块或程序进行集成测试
    边界值测试 测试用例是由等价类的边界值产生的
    分支覆盖测试 验证每一条分支取真取假各至少一次
    分支/条件测试 验证每个判断以及判断的每个条件取所有可能结果至少一次
    因果图 通过映射同时发生、互相影响的多个输入来确定要测试的判定条件
    比较测试 与竞争对手的产品比较其优势与劣势
    兼容性测试 测试软件与特定的硬件/软件/操作系统/网络等环境的兼容性
    条件覆盖测试 盐泽和那个一个判断的每个条件取所有可能的结果至少一次
    CRUD测试 建立CRUD矩阵并测试所有目标的生成、读取、更新和删除
    数据库测试 检查数据库字段值的完整性
    决策表 显示决策标准和相应的行动的表
    桌面检查 开发人员评审代码的正确性
    端到端测试 与系统测试类似,测试尺度的“宏观”端;包括在一个模拟真实世界使用的情况下对完整的应用程序环境进行的测试,这种模拟包括与数据库交互、使用网络通信或在适当的情况下与其他硬件、应用程序或系统的交互等。
    等价类划分 每一个输入条件被划分入两个或多个分组。测试用例从有效类和无效类的代表值中生成
    异常测试 识别出错消息和异常处理流程以及触发他们的条件
    探索测试 经常被看做一个创造性的非正式的软件测试,这一测试不是基于正式的测试计划或测试用例的,测试者可能在测试软件的同时正在学习该软件
    自由形式测试 利用直觉定义测试用例的即兴测试或以头脑风暴
    灰盒测试 白盒测试和黑盒测试的组合方式,充分利用了二者的有点
    直方图 测试值的一个图形表示,这些测试值根据出现频率分类组织,用于定位热点
    增量集成测试 当在一个应用程序中加入新功能时对其进行的继续测试,需要一个应用程序功能的不同方面足够独立以能够在程序的所有部分完成之前单独工作,或者测试驱动是按照需求进行开发的,该测试由程序员或者测试人员完成
    审查 同事之间正式的代码审核,会使用到检查表、准入标准和退出标准
    集成测试 对一个应用程序的各个组合部分的测试以确定它们的功能是否正确地结合。这些部分可以是代码模块、个体应用程序或者在一个网络上的客户/服务器应用程序。这种测试类型与客户/服务器结构的系统和分布式系统的关联尤其紧密
    JAD 用户和开发人员坐在一起,用易于理解的会话方式共同设计系统
    负载测试 在很重负载的情况下对应用程序加以测试,例如,在一个负载的范围下对网站进行测试以确定在哪一点系统的反应时间会变慢或瘫痪
    突变测试 决定一组测试数据或测试用例是否有用的方法,通过故意引入不同的代码变动(BUG),并用原始测试数据/用例重新测试以确定是否这些BUG能被检测出来。这一方法的适当实现需要大量的计算资源
    正交表测试 确定哪些变量的改变需要被测试的数学技术
    帕累托分析法 对缺陷模型加以分析以识别原因和来源
    性能测试 可与压力测试和负载测试互换使用的方法。理想情况下,性能测试(以及其他任何测试类型)应在需求文档或QA或测试疾患中定义
    正反测试 对所有输入测试正确值和错误值
    前缺陷历史测试 为在系统的前一次测试中发现的每一个缺陷创建或者重运行测试用例
    原型法 通过建立一个潜在应用程序的某些部分并向用户展示来从用户处收集数据的一般方法
    随机测试 涉及从一个特定的输入值的集合(其中的值与其他值非常相似)中随机选择的技术
    范围测试 对于每一个输入,找出系统反应相同的区间范围
    恢复性测试 测试一个系统从崩溃、硬件故障或其他灾难性问题中能够恢复到什么程度
    回归测试 根据在一个开发螺旋周期或者一个新版本的调试、维护或开发中产生的变化对应用程序加以测试
    基于风险的测试 测试一个系统所具有的业务风险的程度以对测试加以改进
    运行图 一个关于质量特性怎样随时间变化的图形表示
    三明治测试 同时使用自顶向下和自底向上技术对模块和程序进行集成
    健全性测试 一般来说是一个初始的测试工作,用以确定一个新的软件版本是否运行足够良好,达到一个可以进行主要测试的标准。例如,如果新软件每五分钟就系统崩溃一次、系统运行陷于停顿状态或者毁坏数据库,那么这个软件可能就处于不够健全的情况。无法在其现有状态下保证进一步测试的顺利进行
    安全性测试 测试系统如何抵制未授权的内部或外部访问、故意损害等,可能需要复杂的测试技术
    状态转化测试 首先标识了一个系统的状态,然后编写一个测试用例以测试造成从一个状态转换成另外一个状态的触发条件的技术
    语句覆盖测试 确保程序中的每一条语句至少执行一次
    统计概况测试 用来描述系统的使用概况的统计技术,有助于确定事务路径、条件、功能和数据表格
    压力测试 可与性能测试和负载测试互换使用的方法。用于将这样的测试描述为在非正常的高负载、特定行为或输入的大量重复、输入大量数值数据或对数据库系统的大量复杂访问的情况下的系统功能测试
    结构化走查 举行一个项目相关人员对工作产品进行查错的会议
    语法测试 测试输入语法组合的数据驱动技术
    系统测试 基于整体的需求规划的黑盒类型测试,覆盖了一个系统的所有组成部分
    表测试 测试表项的访问、安全性和数据完整性
    线序测试 将个体单元组合成为共同完成一个或一组功能性线索
    自顶向下测试 从顶部开始整合模块或程序
    单元测试 测试的最微观尺度,测试特定的功能或代码模块,一般来说由开发人员而非测试人员进行,因为它需要对程序内部设计和代码有细致的了解。一般不容易实现,除非应用程序的代码具有非常好的结构。可能需要开发测试驱动模块或测试执行器
    易用性测试 测试软件是否用户友好。很明显这是主观的,并且依赖于目标最终用户或客户。可使用用户访谈、调查、用户会议的视频记录和其他技术。开发人员和测试人员通常不适合作为易用性测试人员
    用户验收测试 确定软件是否让最终用户或客户感到满意
    白盒测试 通过检查系统的逻辑路径来确定测试用例
    展开全文
  • 软件测试技术

    千次阅读 2018-11-24 14:14:00
    软件测试技术 软件的概念:信息处理系统的所有或部分程序、规程、规则和任何相关的文档的集合。 程序:源程序+目标程序 源程序:高级语言、汇编语言编写的程序 目标程序:源程序经编译或解释加工以后可以由...

    软件测试技术

    软件的概念:信息处理系统的所有或部分程序、规程、规则和任何相关的文档的集合。

    程序:源程序+目标程序

    源程序:高级语言、汇编语言编写的程序

    目标程序:源程序经编译或解释加工以后可以由计算机直接执行的程序

    文档:用自然语言或形式化语言所编写的文字资料和图表,用来描述程序的内容、组成、设计、功能规格、开发情况、测试结果以及使用方法。

    软件测试包括:源程序+目标程序+文档

     

    软件测试的定义:使用人工或者自动手段,来运行或测试某个系统的过程。其目的在于检测它是否满足规定的需求或弄清预期结果与实际结果之间的差别。

     

     

    测试过程(了解) 每一阶段都要从头来一次

    需求测试:需求文档的测试

    测试的计划:对测试过程的整体设计,确定测试范围,制定测试策略,安排测试资源,进度制定,风险评估,应对策略

    测试设计及用例:测试设计,用例设计,用例评估

    测试的执行:用例的选择(难得?复杂的?优先级高的?),测试环境的搭建,每日构建

    测试的记录和跟踪:Bug记录,Bug管理,Bug的报告(沟通,评审,提交),Bug的跟踪

    回归测试:再测一次

    测试总结和报告:缺陷的分类报告,客观全面的报告生成,经验总结

     

     

     

     

    测试的分类

    按测试的方法分类:

    静态测试和动态测试,白盒测试,黑盒测试,灰盒测试,冒烟测试,回归测试,功能测试与性能测试,压力测试和负载测试,配置测试,文档测试,兼容性测试,安全测试,恢复测试,可移植性测试,引导测试,随机测试,手动和自动测试,通过/失败测试,错误猜测,易用性,安装性,界面性。

     

    按测试的阶段分类:单元测试,集成测试,(确认测试),系统测试,(验收测试 a测试,b测试)

     

     

    测试的原则:

    投入和产出平衡(当有两次bug趋于0,当第三次出现就停止测试继续开发)

    二八原则

    尽早的和不断开展测试

    错误的地方多投入

    同化问题:交叉测试,利用不同人的观点

     

     

    需求的测试

    需求占缺陷比例高达56%

     

    需求可能存在的问题

    需求文档编写有问题、功能不明确,流程不清晰,不正确占50%,余下50%是需求的遗漏造成的。

    拿着一线文档(需求卡片),需求规格说明书和卡片进行对比,所有规格都已经有了,再使用检查列表对需求说明书进行优化,看有没有歧义,语法上的错误,再结合所有的项目组人员进行讨论,评审,修订,看看需求规格说明书上有没有什么不能实现,需不需要再找客户。

     

     

     

     

    检查列表

     

     

    第一步:对比需求

    第二步:检查列表检查需求

    第三步:根据定稿的需求规格说明书来分析我们测试用例,以备测试

     

     

    测试计划

     

    测试计划的内容(了解):

    确定测试范围

    制定测试策略

    测试资源安排

    进度及安排

    风险及对策

     

    测试范围:功能,性能

    策略:测试方法

    资源进度安排:人,物,时间。细化到最小颗粒逐渐反推相加

     

     

    测试用例设计

     

     

    基于需求的测试用例设计:

    验证需求是否正确,完整性,无二义性,并且逻辑一致性

    从黑盒角度设计出充分并且必要的测试集

    基于需求的测试需要工具支持,比如QC

     

     

    测试用例设计:

    等价类划分法

    边界值分析法

    因果图法

    基本路径分析法

    场景设计法

    错误猜测试

    正交分解法

    ……..

     

     

    黑盒测试的基本概念:
    穷举输入测试是不实现的。这就需要我们认真研究测试方法,以便能开发出尽可能少的测试用例,发现尽可能多的软件故障。

    常用的黑盒测试方法有等价类划分,边界值分析,决策表测试等,每种方法各有所长,我们应针对软件开发项目的具体特点,选择合适的测试方法,有效地解决软件开发中的测试问题。

     

     

    等价类划分:

    等价类划分是一种典型的黑盒测试方法,它完全不考虑程序的内部结构,只根据程序规格说明书对输入范围进行划分,把所有可能的输入数据,即程序输入域划分为若干个互不相交的子集,称为等价类,然后从每个等价类中选取少数具有代表性的数据作为测试用例,进行测试。

    在确立了等价类之后,可按下表的形式列出所有划分出的等价类表

    等价类表

    同样,也可按照输出条件,将输出域划分为若干个等价类

    在设计测试用例时应同时考虑有效等价类和无效等价类测试用例的设计。根据等价类表设计测试用例,具体步骤如下:

    1. 为每个等价类规定一个唯一的编号
    2. 设计一个新的测试用例,尽可能多的覆盖尚未被覆盖的有效等价类,重复这一步,直到测试用例覆盖了所有的有效等价类。
    3. 设计一个新的测试用例,使其覆盖并且只覆盖一个还没有被覆盖的无效等价类。重复这一步,直至测试用例覆盖了所有的无效等价类。

     

    边界值分析法

    健壮性边界值测试将会产生4n+1个测试用例

    健壮性测试最有意义的部分不是输入,而是预期的输出,观察例外情况如何处理

    等价类划分+边界值法

     

    因果图法

     

    因果图法的原理

    因果图法测试用例的设计步骤

    1. 确定软件规格中的原因和结果。分析规格说明中哪些是原因(即输入条件或输出条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符。
    2. 确定原因和结果之间的逻辑关系。分析软件规格说明书中的语义,找出原因与结果之间,原因与原因之间对应的关系,根据这些关系画出因果图。
    3. 确定因果中的各个约束。由于语法或环境的限制,有些原因与原因之间,原因与结果之间的组合情况不可能出现。为表明这些特殊情况,在因果图上用一些记号表明约束或限制条件。
    4. 把因果图转化为决策表
    5. 根据决策表设计测试用例

     

    决策表法(不会考)

    决策表通常由条件桩,条件项,动作桩和动作项4部分组成。

     

    因果图+决策表

    动作项和条件项紧密相关,指出在条件项的各组取值情况下应采取的动作。

     

    生成的决策表

    练习:见测试方法.doc 和 PPT上的例子,实验报告中的例子

     

     

    场景设计法    

    大部分软件是由事件触发来控制流程的,事件触发时的情景就是所谓的场景

    根据需求规格说明书中的用例规约来设计,正常的流程,异常分支应该怎么做。主要是测流程,没有测细节,还是要用等价类划分来测试。

     

    错误猜测法

    是基于经验的直觉推测程序中可能发生的各种错误,有针对性设计测试用例。

    优点:充分发挥个人的经验和潜能,命中率高

    缺点:覆盖率难以保证;过多的依赖个人的经验。

    注意:最重要的是要思考和分析测试对象的各个方面,多参考以前发现的Bug的相关数据,总结的经验,个人多考虑异常的情况,反面的情况,特殊的输入,以一个攻击者的态度对待程序,那么就能设计出比较完善的测试用例。

     

    正交分解法

    正交表法是一种有效减少测试用例个数的设计方法。

    有效减少测试用例个数的测试用例方法。单因素覆盖,成对覆盖,三三组合覆盖

    PICT工具

     

    测试的执行,测试的管理工具

    BUGFREE的工作流程

    在这个平台上提交你的需求,比如说提交你发现的BUG,指派给某一个开发人员来完成,基本上指这个功能的开发人员,他在这个平台上接到通知之后,对其进行修复,修复完成之后就会提醒测试人员,我已经修复好了请再测试一次,如果通过就把这个Bug关闭掉,如果没有通过,就再次发给开发人员来进行修复。

    BUG的状态

     

     

     

    测试执行中的关键

    测试环境的准备

    构建测试运行的平台和安装需要的软硬件系统。

    人员的安排

    不仅包括指定哪些人参加功能测试,哪些人参加系统测试和谁负责测试环境的维护等,还要包括人员的培训,知识的传递。

     

    测试用例包括哪些内容:测试功能(目标),测试环境,测试要录入的数据,测试的具体操作,预期结果,不包括实际结果。

     

     

    测试执行的准备

    培训和知识传递

    测试任务安排

    测试环境的建立

    测试环境的设置

    测试自动化运行平台

     

    白盒测试

    静态白盒测试和动态白盒测试

    静态白盒测试:主要测三个方面软件的设计,体系结构和代码。从而找出软件缺陷的过程,有时也称为结构化分析

    原因:尽早发现软件错误;为黑盒测试人员提供建议

    方式:1.确定问题2.遵守规则3.准备期间4.编写报告

    方法:互查,走查,会议评审。

     

    互查:小组之间成员之间交流互相交流源代码,怎么去调用源代码,对方如何调用处理,增进感情。

    走查:每个项目会派出代表,或者项目主的每个成员都会出来陈述代码第一步怎么做,第二部怎么做……,或者用什么样的算法去提高底层的效率。

    好处:检查代码的注释是否写好,效率是否有问题。把控整个小组的代码风格(如命名风格,申明变量的风格)。

     

    会议评审:公司的高层会派一个专家组进驻你的项目,然后看看你的项目设定或者编码情况。但是成本高。因为专家进来之前对这个项目不是很熟悉,专家组需要一定的时间来了解这个项目。

     

    动态白盒测试

    检查代码并观察运行状况

    利用查看代码(做什么)和实现方法(怎么做)得到的信息来确定哪些需要测试,哪些不要测试,如和开展测试

    又称为结构化测试

     

    动态白盒测试期望达到的目的

    所有独立路径至少都能测试一遍

    所有逻辑判断都能测试True和False两条路径;

    所有循环结构都能测试到边界和循环域内的情况;

    确保内部数据结构的有效性。

     

     

    白盒测试主要的方法

    逻辑覆盖测试法

    基本路径测试法

    循环路径覆盖法

     

    逻辑覆盖测试法

    语句覆盖:每条语句至少执行一次

    判定覆盖:每个判定的每个分支至少执行一次

    条件覆盖:每种条件下的语句都应该被执行

    判定/条件覆盖:同时满足判定覆盖和条件覆盖

    条件组合覆盖:每个判定中,各条件的每一种组合至少出现一次。

    路径覆盖:程序中每一条可能的路径至少执行一次。

     

    基本路径测试法(阅读代码->画出流程图->圈复杂度->设计测试用例->进行相关测试)

    基本路径测试法是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法。

     

    路径是控制流程图中节点的顺序,始于入口节点,止于出口节点

     

     

    程序可能通过的路径是:

    路径 1:1 – 11

    路径 2:1 – 2 – 3 – 4 – 5 – 10 – 1 – 11

    路径 3:1 – 2 – 3 – 6 – 8 – 9 – 10 – 1 – 11

    路径 4:1 – 2 – 3 – 6 – 7 – 9 – 10 – 1 – 11

     

    圈复杂度的计算:

    1. 边-节点+2
    2. 封闭+1
    3. 矩阵模型(可以不用掌握)

     

    循环路径覆盖法

    五种测试用例

    1. 整个跳过循环
    2. 只有一次通过循环
    3. 两次通过循环
    4. m次通过循环,m<循环最大次数
    5. n-1,n,n+1次通过循环

     

    实际运用中,基本路径+循环使用的最多

     

    将测试进行分段

    测试越早发生越好

    代码分段构件和测试,最后合在一起形成更大的部分

    单元测试:接口,数据边界,路径,异常,局部变量(数据)

    可测可不测:条件组合,性能,功能

     

    单元测试概念

    定义:单元测试时对软件基本组成单元进行的测试

    时机:在代码完成后由开发人员完成,QA人员辅助

    意义:尽早发现错误,发现的越早成本越低

     

    单元测试内容

    运行单元程序有时需要基于被测单元的接口,开发相应的驱动模块和桩模块

    驱动模块

     

    驱动模块:对底层或子层模块进行测试所编写的调用这些模块的程序。

    桩模块:对顶层或上层模块进行测试时所编写的替代下层模块的程序。

     

     

    集成测试

    对于传统软件来说,按集成粒度不同,可以把集成测试分为3个层次,即:

    1. 模块间集成测试
    2. 子系统内集成测试
    3. 子系统间集成测试

     

    集成测试的模块

    渐增式测试模块与非渐增式测试模块

    非渐增式测试模式:先分别测试每个模块,再把所有模块按设计要求放在一起结合成所要的程序,如大棒法(先测试最小模块,再测试最大的模块)

    大棒方式的优缺点

    好处:非常快捷

    坏处:容易出错,一旦出现错误,不知道是哪个模块出现的错误

     

     

    渐增式测试模式:把下一个要测试的模块同已经测试好的模块结合起来进行测试,测试完以后再把下一个应该测试的模块结合进来测试。当使用渐增方式把模块结合到程序中去时,有自顶向下和自底向上两种集成策略和混合

    自顶向下的优缺点

    优点:可以纵观全局,很快的发现软件测试文档出现的问题

     

    自底向上的优缺点:

    效率高,但是需要大量的驱动

     

     

    自顶向下和自底向上集成策略

    驱动程序/驱动模块(driver),用以模拟被测模块的上级模块。驱动模块在集成测试中接收测试数据,把相关的数据传送给被测模块,启动被测模块,并打印出相应的结果。

    桩程序/桩模块(stub),也有人称为存根程序,用以测试被测模块工作过程中所调用的模块。桩模块由被测模块调用,它们一般只进行很少的数据处理,例如打印入口和返回,以便于检测被测模块与其下级模块的接口。

     

     

     

    系统测试

    需求分析阶段:测试需求规格说明书,是否与用户要求一致

    概要设计阶段:测试概要设计说明中是否覆盖了所有已确定的需求,是否考虑了后期维护

    详细设计阶段:数据结构,算法是否正确,编码规范

    编码阶段: 单元测试,集成测试

    系统验收阶段:测试系统是否完成了需求规格说明书中的所有内容

     

     

     

     

     

    系统测试概念

    使用人工或自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的系统需求或是弄清预期结果与实际结果之间的差别。系统测试在真实环境下进行

    验证(Verificaiton)

        验证确定工作产品正确反应了它们的规定需求。换言之,验证保证"你正确地构件了它"

    确认(Validation)

        确认确定提供的产品将满足其预期使用。换言之,确认保证"你构建了正确的产品"

     

    为了发现发现却缺陷并度量产品质量,按照系统的功能和性能需求进行的测试

    一般使用黑盒测试技术

    一般由独立的测试人员完成

     

    对于模块之间交互性比较强的软件,还会有单独的集成测试,用来发现模块接口之间的错误。

     

    系统测试的内容(了解哪个是那个)

    功能测试

    恢复性测试(灾难测试,容错测试)

    可用性测试

    安全性测试

    接口测试

    GUI测试

    安装/升级测试

    配置测试/兼容性测试

    国际化(语言)测试

    用户文档测试

    ……

     

     

    性能测试

    压力测试

    容量测试

    可靠性测试

    边界测试

    ……….

     

    冒烟测试

     

    回归测试

     

    随机测试

     

    硬件系统专有测试

    可靠性试验

    可产生性测试

    可维护性测试

     

     

    自动化测试

     

    性能测试包括以下几个方面

    评估系统的能力。测试中得到的符合和相应时间等数据可以被用于验证所计划的模型的能力,并帮助做出决策。

    识别系统中的弱点。受控的负荷可以被增加到一个极端的水平并突破它,从而修复系统的瓶颈或薄弱的地方。

    系统调优。重复运行测试,验证调整系统的活动得到了预期的结果,从而改进性能,检测软件中的问题。

     

     

    性能测试的概念

    性能测试主要验证软件是否达到需求规格说明书中规定的各类性能指标,并满足一些行性能相关的约束和限制条件。

    主要有:响应时间,并发用户,吞吐量,服务器性能,点击率,响应成功率

     

    性能测试的分类(谁是谁,有什么区别)

    压力测试

    负载测试

    并发测试

    配置测试

     

    负载测试

    负载测试是通过逐步增加系统工作量,测试系统能力的变化,并最终确定在满足功能指标的情况下,系统所承受的最大工作量的测试。

    压力测试实质上就是一种特定类型的负载测试

    并发测试是一种测试手段,在压力测试中可以利用并发测试来进行压力测试

    负载测试是模拟实际软件系统所承受的负载条件的系统负荷,通过不断加载(如逐渐增加模拟用户的数量)或其它加载方式来观察不同负载下系统的响应时间和数据吞吐量、系统占用的资源(如CPU、内存)等,以检验系统的行为和特性,以发现系统可能存在的性能瓶颈、内存泄漏、不能实时同步等问题。负载测试更多地体现了一种方法或一种技术。

     

    压力测试是在强负载(大数据量、大量并发用户等)下的测试,查看应用系统在峰值使用情况下操作行为,从而有效地发现系统的某项功能隐患、系统是否具有良好的容错能力和可恢复能力。压力测试分为高负载下的长时间(如24小时以上)的稳定性压力测试和极限负载情况下导致系统崩溃的破坏性压力测试。

     

    压力测试可以被看作是负载测试的一种,即高负载下的负载测试,或者说压力测试采用负载测试技术。通过压力测试,可以更快地发现内存泄漏问题,还可以更快地发现影响系统稳定性的问题。

     

     

     

     

    性能测试的流程

     

     

    自动化性能测试原理

    首先保证一个用户能正常访问,记录访问过程,记录通讯包

    通过测试工具模拟更多用户同时发通讯包,后台无法区分是人或工具

    通过测试工具模拟大量用户同时向后台发出请求,来达到产生压力和指定压力的目的,在产生指定压力的同时监控后台系统的资源消耗情况,监控客户端的请求处理时间

     

     

    复制出客户端发往服务端的请求,模拟用户

    关注的是通讯包,协议,不关心客户端形式

     

     

    关于LoadRunner

    LoadRunner是Mercury Interaction公司开发一款成熟的性能测试工具,LoardRunner作为性能测试的实现者,涉及性能测试流程,性能测试技术和软件系统架构等众多方面的知识点。

    LoardRunner提供的解决方案

     

     

    LoadRunner的过程

    脚本生成器Virtual User Generator

    VuGen提供了基于录制的可视化图形开发环境,可以方面简洁地生成用于负载的性能脚本。

    压力调度和监控系统Controller

    负责对整个负载的过程进行设置,制定负载的方式和周期,同时提供了系统监控的功能。

    压力生成器Load Generator

    负责将VuGen脚本复制成大量虚拟用户对系统生成负载。

    结果分析工具Analysis

    通过Analysis我们可以对负载生成后的相关数据进行整理分析。

     

     

    自动化测试的步骤:

    录制一个操作的过程,称为脚本

    回放一下,验证脚本是否正确

    脚本增强(参数化如密码,用户名。在脚本中设置检查点,检查运行过程中是否执行成功,如果成功了就会出现字符串或图片。)

    设置自动化测试执行的策略

    事务,设定我们的场景(一开始多少线程启动,做什么样的事情,到达某一时刻线程,其他一些零界点做什么事情,线程在什么时候停止,在什么时候再启动)在测试过程中观察参数的变化(相应时间,等)

    分析报告,在报告中我们查看某个功能运行时间效率是否达到我们之前的设定,或者方差是我们期望的,否则进行调优。

    展开全文
  • 在软件测试技术之中,静态测试是经典的测试技术一类。这里,我们先概 要解释和说明一下静态测试技术。  静态测试不以测试数据的执行而是对测试对象的分析过程。  静态测试存在于软件生命周期的各级测试。如,...

     

    1. 静态测试 


    在软件测试技术之中,静态测试是经典的测试技术一类。这里,我们先概 
    要解释和说明一下静态测试技术。 
     静态测试不以测试数据的执行而是对测试对象的分析过程。 
     静态测试存在于软件生命周期的各级测试。如,需求分析、概要设计、 详细设计及组件测试、集成测试和系统测试的阶段或层级。 
     静态测试的方法,主要有人工(手工)评审静态分析(人工或机器自 动检测)两大类。通常可分别采用一种方法或混合使用两种方法。 
     静态测试中的评审(或审查)的基本思想和目标是对软件缺陷或错误的 一种预防措施。因而软件技术文档的审查是静态测试的主要任务之一。 
     静态测试的技术方法构成和说明。

    如下图 1 所示。 

                                                      图 1 静态测试技术方法的构成 

    -针对需求分析和概要设计进行的评审。评审在需求分析概要分析阶段 建立的评审基础上开展,有人工评审静态技术分析两个过程。 
    -人工评审分为正式评审非正式评审。正式评审是执行对被测对象(文档或程序)检查的活动及过程(也称为技术评审);非正式评审主要采用对文档或程序的走查活动及过程。如,对某一个具体程序的走查。走查通常采用单独或集体审阅的方式进行。 

    2. 静态测试内容及过程 静态测试内容及过程 


    (1)静态测试内容 
    静态测试的内容包含:测试需求分析、测试概要分析、测试详细设计、测试执行与测试结果分析 
    (2)静态测试过程 

    • 进行测试需求分析:这是静态测试过程的首个阶段,将确定测试的需求,建立起测试基础与评审基础。 
    • 进行测试概要设计:在测试需求分析基础上,完成对测试方案的制定。如,测试内容、测试目标、测试策略、测试方法等。 
    • 进行测试详细设计:这个阶段主要完成测试进程中,各项具体任务安排和实施的细节考虑。如,测试用例设计等。 
    • 测试执行与结果分析:根据静态测试的计划进行静态测试执行的过程,各项测试任务的完成,并提交测试工作交付物。 

    3. 静态测试的实施与执行 

    (1) 静态测试的实施 

    静态测试通常采用两种策略:人工静态分析借用工具静态分析。 
    人工静态分析发挥人的智力和具有的逻辑思维优势,在分析过程中也常借助专用的静态测试分析工具来辅助。目前,实际工作中基本都是采用两种方法的混合模式,既充分发挥了发挥人的智慧,又运用了机器(工具)分析的高效便捷。
    (2) 静态分析的过程有别于编译过程 
    编译的功能是不能替代测试的。虽然编译系统也能检查软件(程序)中的错 误,但其主要的作用是检查程序的语法等错误。这是因为编译系统并不具备软件测试的功能,并无针对性的去寻找特定的软件测试对象中的缺陷、错误的功效。
    而测试通常是要通过执行测试用例来实现的。同时,编译是无法检测到程序的逻辑错误或缺陷的。 
    (3) 代码检查 
    代码检查的内容主要包括:代码走查桌面检查代码审查等活动及过程。
    代码检查其功效是能快速找到软件缺陷或错误。测试业界实践表明,通过代码(通常是源代码)的走查过程,可检查到程序中 30-45%的程序逻辑设计及编码中的缺陷或者错误。代码检查在实际软件开发过程中被普遍采用,特别是针对组件(即
    单元)测试。 


    4.静态测试的结构分析方法 

    (1)以图形方式表现程序内部结构 
    静态结构分析主要以图形的方式来表达程序内部的结构关系。如,函数调用关系图,函数内部控制流图等。函数调用关系图是以直观的图形方式描述一个程序中各个函数的调用和被调用的关系; 函数内部控制流图以有向图来表达函数内部的程序控制逻辑。 

    (2) 以程序的控制流图显示程序函数的逻辑结构 
    程序的控制流图由多个节点和连接的边所构成。一个节点代表一条语句或数条语句,连接结点叫作边,边表示节点之间的控制流向。图 2 所示是一个控制流图的实例。 

                                                                  图 2 一个程序控制流图 

     (3)检查项 
    静态测试的检查项,主要有:代码风格和规则的审核;程序设计和结构的 
    审核;业务逻辑的审核。 
    (4) 代码的质量度量 
    针对软件的可测试性、可读性(可维护性),通常有 3 种不同的代码质量度量 
    参数。 
    Line(行)复杂度。Line 复杂度是以代码的行数作为计算度量的基准。
    Halstead(运算符与运算元)复杂度。Halstead 复杂度是以程序中使用到的运算符与运算元数量作为计数目标(直测指标),据此来计算程序的容量和工作量。 
    McCabe(圈)复杂度。它是将程序流程图结构转化为有向图结构(见图 2),以图形(有向图)为基础来衡量软件或程序的复杂度度量。 
    代码质量度量常常通过静态测试来获得,所以静态测试方法也称为静态分析,静态测试是对被测程序进行质量特性分析方法的总称。 
    (5)检查与规范、标准的一致性 
    通过静态测试工具可检查测试对象是否与应用的程序规范、标准的相一致,以检查软件程序是否遵循了大部分的编程规则与标准规范。以工具检查的优势是可快速并准确的帮助开发者与测试人员进行自动化检测过程,以发现被测对象与规范、标准的一致性(其后例举)。 

     

     

     

     

     

     
    主要参考文献 
    1.《软件测试教程(第 3 版)》,贺平,电子工业出版社,2014 
    2. 范根检查法(Fagan inspection) 
    * 范根检查法是一种正式的,结构化的评审方法。针对的评审对象包含软件开发生命周期中的需求说、
    系统设计、测试样例程序代码等大部分的软件开发中的输出物。 

    展开全文
  • 不少测试同行寻问我要测试技术交流群,所以,借CSDN平台发布一下:软件测试技术交流群(纯技术交流)。以下技术交流群为测试同行技术交流用,共同进步。1、自动化|性能测试技术交流群(1群):272819728

    不少测试同行寻问我要测试技术交流群,所以,借CSDN平台发布一下:软件测试技术交流群(纯技术交流)。

    以下技术交流群为测试同行技术交流用,共同进步。


    1、自动化|性能测试技术交流群(1群):272819728(已满)

    2、自动化|性能测试技术交流群(2群):226335503(已满)

    3、自动化|性能测试技术交流群(3群)226335317(推荐)


    展开全文
  • Golang测试技术

    千次阅读 2015-04-10 09:02:33
    Gerrand在Google I/O 2014的一次主题分享“Testing Techniques”,即介绍使用Golang开发 时会使用到的测试技术(主要针对单元测试),包括基本技术、高级技术(并发测试、mock/fake、竞争条件测试、并发测试、内/...
  • 测试技术一张图

    万次阅读 2020-10-05 22:46:29
  • 几种测试技术

    千次阅读 2018-07-24 16:28:03
    一、单元测试技术 1.定义:单元测试又称为模块测试(程序测试),即集中力量来检验软件设计的最小单位——模块。  单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。 2.目的:单元测试的...
  • 数据驱动测试技术

    千次阅读 2017-03-09 17:27:32
    数据驱动测试的概念 数据驱动测试是从数据文件(excel 文本文件 XML 文件 或者数据库)中读取测试数据,然后通过变量传入脚本中,既可以当测试...数据驱动测试技术的特点 (1)数据与测试脚本分离,从而可以在不修改
  • 测试技术总监需要具备哪些能力

    千次阅读 2019-04-11 21:02:59
    现把测试技术总监的要求分享给各位,一起交流。 由于我们主要做网络设备,所以相关技术要求以网络相关知识为主,至于其它领域的测试技术总监要求则可以类比。 我认为测试技术总监需要具备两大方面的能力。 测试...
  • 测试技术提升分享

    千次阅读 2019-10-12 18:26:41
    在腾讯课堂上分享测试技术相关的课程也有一段时间了,同时在博客(http://blog.sina.com.cn/u/1760715297)和微信公众号上也分享了不少相关文档。现在已经有相当关注度,也有很多同学加入了我们的QQ群(867446822)...
  • 白盒测试技术

    千次阅读 2008-12-19 10:22:00
    白盒测试技术作者:张元礼http://blog.csdn.net/vincetest 目 录Chapter 1 白盒测试理论1.1 白盒测试概念1.2 白盒测试目的1.3 白盒测试范围1.4 白盒测试发展Chapter 2 单元测试理论2.1 单元测试概念2.2 单元测试...
  • OWASP 测试指南 4.0-测试技术解释

    千次阅读 2016-10-12 12:24:20
    该部分提出可用于创建测试工程的各类高级测试技术。这里针对这些技术的具体实现方法并没有进行详细讨论,详情可参见后文。该部分旨在为下个后文所提出的测试框架提供上下文并突出某些技术在选择使用时应考虑的优点...
  • 软件测试技术学习总结

    千次阅读 2015-03-20 23:03:09
    一个开发人员不能自己测试一下自己开发的程序是件很尴尬的事,秉着对这句话的理解,最近学习了一下软件测试技术的基础知识,现在总结一下学习过程,供想学习了解一下软件测试的同学参考参考。
  • java单元测试技术

    千次阅读 2014-06-17 11:40:33
    摘要:本文针对当前业软开发现状,先分析了WEB开发的技术特点和单元测试要解决的问题,然后分别阐述了解决这些问题的单元测试技术,内容包括:JUnit、测试桩构建、访问数据库的Java代码测试、Struts框架测试、服务器...
  • ADC芯片参数测试技术解析

    千次阅读 2018-09-22 20:41:33
    作为模拟与数字之间的桥梁,模拟数字转换器(ADC)的重要性越来越突出,由此也推动了ADC测试技术的发展。本文首先介绍了ADC的测试,包括静态参数和动态参数测试,然后结合自动测试系统测试实例,详细介绍了 ADC芯片...
  • 测试技术

    千次阅读 2019-04-11 14:56:13
    使用到的技术栈 Java11 Maven(根据项目选择使用Maven还是gradle,大多使用Maven) gradle Spring Boot测试框架 Junit测试框架 spinage测试框架 Python接口自动化 环境准备 Python3.7 使...
  • web测试技术

    千次阅读 2008-06-14 17:33:00
    随着web应用的增多,新的模式解决方案中以web为核心的应用也越来越多,很多公司各种应用的架构都以B/S及web应用为主,但是有关WEB测试方面的内容并没有相应的总结,所以我在这里对web的测试方法和采用的测试技术进行...
  • 测试有道:微软测试技术心得

    千次阅读 2009-09-08 08:43:00
    本文节选自《测试有道:微软测试技术心得》一书 中国软件发展数十年,但是规模和产业层次一直处于发展初期。纵观其原因,主要是因为,软件人才和软件工程管理缺乏,尤其是对于大规模的软件产品研发的工程能力缺乏。...
  • 经典软件测试技术分类

    千次阅读 2013-06-28 13:14:08
    测试技术是指顺利完成测试的一系列相关过程,有很多可能的分类方式,表2-1就是其中的一种。表中列出了流行的测试技术,也按照上面的讨论对其进行分类:手工测试、自动测试、静态测试、动态测试、功能(黑盒)测试...
  • 白盒测试技术含量就比黑盒测试高? 最近在群里发现这个比较有意思,某人一说自己在做白盒测试,其余的人顿生景仰之情,急急称牛人乎,米多乎! 首先我们看看定义: 白盒测试也称结构测试或逻辑驱动测试,它是按照...
  • 【摘要】本文将从DevOps模式下对测试人员的活动的变化,以及常用的测试技术层面进行解读。 项目的软件开发模式主要经历瀑布模型、敏捷开发和DevOps这几个阶段,其中DevOps主要解决开发和运维、运营之间的隔阂,更...
  • 白盒测试技术-白盒测试理论篇

    千次阅读 2008-12-19 10:38:00
    白盒测试技术-白盒测试理论篇作者:张元礼http://blog.csdn.net/vincetest1.1 白盒测试概念白盒测试定义:白盒测试也称结构测试或逻辑驱动测试,是一种测试用例设计方法,它从程序的控制结构导出测试用例。...
  • 客户端GUI测试技术和自动化测试架构设计简谈 http://www.cnblogs.com/wiki-royzhang/p/3785033.html 客户端GUI测试技术和自动化测试架构设计简谈 客户端自动化特点 客户端的自动化,通常做过的人都不是很...
  • 第二篇,测试技术;第三篇,测试案例。 第一篇:理论篇 第一章:软件测试概论 第二章:软件测试基础 第三章:软件质量与评价 第四章:软件测试过程与管理 第二篇:测试技术 第五章:黑盒测试案例设计技术 ...
  • 白盒测试技术-单元测试理论篇

    千次阅读 2008-12-19 11:09:00
    白盒测试技术-单元测试理论篇作者:张元礼http://blog.csdn.net/vincetest 2.1 单元测试概念单元测试:单元测试又称模块测试,属于白盒测试,是最小单位的测试。模块分为程序模块和功能模块。功能模块指实现了一个...
  • 3. 黑盒测试技术测试用例设计 (1) 边界值测试 Ⅰ.边界值分析: 基本思想:使用输入的最小值,略高于最小值,正常值,略低于最大值,最大值;所以R,P的边界值为0,1,2,50,99,100,101, Ⅱ.边界值测试用例表:测试...
  • web应用程序测试方法和测试技术详述web应用程序测试方法和测试技术详述web应用程序测试方法和测试技术详述转自 my_sunway的专栏 QQ:34218067 chinjecn@yahoo.com.cn1. 概述l 随着web应用的增多,新的模式解决方案...
  • 测试技术的几个阶段及看法

    千次阅读 2018-01-22 15:37:04
    个人认为测试技术的发展经历了以下几个阶段: 一, 纯手工测试阶段 测试是从用户角度出发,去使用产品以检测是否符合预期的工作。所以最基本的测试技术也就是手工测试,根据需求文档,编写相应的测试用例。...
  • 测试技术方法

    千次阅读 2019-03-30 16:43:21
    如果其中一个的输入不能导致问题发生,那么集合中其它输入条件进行测试也不可能发现错误。等价类分为有效等价类和无效等价类。 有效等价类 有效等价类就是由那些对程序的规格说明有意义的、合理的输入数据所构成...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 86,751
精华内容 34,700
关键字:

测试技术