2013-12-21 21:56:55 u010929604 阅读数 2251
  • Qt Quick&QML阴影窗口和窗口移动

    Qt版本采用5.12.3,新版本有更多的QML控件 QML中,给无边框窗口添加阴影和鼠标拖拽移动功能。 注意:尽量不要使用无边框窗口,会一定程度破坏桌面软件的体验。

    422 人正在学习 去看看 胡剑波

软件是人类思维的产物,是群体性活动的结果,所以在软件开发的各个阶段都不可避免的会产生错误。例如,在需求分析时没有很好的理解用户的意图;在系统设计时对实体之间的关系没有正确地描述;在编码阶段出现了不易发现的逻辑错误;软件开发人员之间的配合出现失误等。尽管在每个阶段结束之前都对软件进行严格的技术评审,但经验表明审查并不能发现所有的差错。因此,软件编码完成后,在交付用户使用前,必须对软件进行严格的测试。软件测试是软件质量保证的关键步骤。

         所谓软件测试,是为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期结果),并利用这些测试用例去运行程序,以发现程序错误的过程。软件测试在软件生存周期中横跨两个阶段:通常在编写出每个模块之后对它做必要的测试(单元测试)。模块的编写者与测试者是同一个人。编码与单元测试属于软件生存周期的同一个阶段。在这个阶段结束之后,软件系统还要进行各种综合测试,这是软件生存周期的另一个独立的阶段,即测试阶段,通常由专门的测试人员承担这项工作。

         说了这么多,大家可能急切的想知道,软件测试到底包含哪些内容,下面我用一张思维导图给大家简单总结一下软件工程中软件测试阶段的一些理论和方法。


PS:由于图比较大,请用鼠标点击图中内容,拖到空白处即可在浏览器中查看

作为软件工程的一个必要阶段,软件测试有自己的理论和严格的方法,在进行测试的时候一定要重视起来,避免软件测试的随意性。另外,软件测试人员的经验也是十分重要的,一个经验丰富的测试人员能够显著提高软件测试工作的效率。

2018-04-02 09:11:53 qq_32274259 阅读数 142
  • Qt Quick&QML阴影窗口和窗口移动

    Qt版本采用5.12.3,新版本有更多的QML控件 QML中,给无边框窗口添加阴影和鼠标拖拽移动功能。 注意:尽量不要使用无边框窗口,会一定程度破坏桌面软件的体验。

    422 人正在学习 去看看 胡剑波

——《软件测试的艺术》

  

  1. 软件测试是什么?

    为了发现找到程序中的错误而执行的过程。暗示了软件测试是一个破坏性过程。成功的测试用例,通过诱发程序发生错误,进而可以在这个方向上促进软件质量的改进。

      

      

      

  2. 软件测试经济性

    黑盒测试(数据驱动或输入/输出驱动测试)->穷举输入法

    白盒测试(逻辑驱动或)->穷举路径测试

    穷举不可能达到,因此需要设计一定的测试策略。

  3. 软件测试重要原则:

      

      

(1)一个测试用例必须包括两个部分:对程序的输入数据的描述;对程序在上述输入数据下的正确输出结果的精确描述。

(4)保留测试用例,当程序其他部件发生更动后重新执行,这就是我们所谓的"回归测试"。

(9)错误总是倾向于聚集存在。 如果一个程序的某个部分远比其他部分更容易产生错误,为了使测试获得更大的成效,最好对这些容易存在错误的部分进行额外的测试。

  

1.测试显示缺陷的存在,但不能证明系统不存在缺陷

2.穷尽测试是不可能的,应设定测试终止条件

3.软件测试应尽早进行。

  

4.缺陷具有集群性

5.测试的杀虫剂悖论(测试用例及方法应定期修改)

6.测试的二八原则(80%的时间和资源重点测试20%的重要模块)

7.测试活动依赖于测试背景

2019-07-24 20:17:19 weixin_44356253 阅读数 110
  • Qt Quick&QML阴影窗口和窗口移动

    Qt版本采用5.12.3,新版本有更多的QML控件 QML中,给无边框窗口添加阴影和鼠标拖拽移动功能。 注意:尽量不要使用无边框窗口,会一定程度破坏桌面软件的体验。

    422 人正在学习 去看看 胡剑波

1软件测试的任务目标与策略
任务目标:测试的根本目的就是为了发现尽可能多的缺陷。这里的缺陷是一种泛称,它可以指功能的错误,也可以指性能低 下,易用性差等等。因此,测试是一种“破坏性”行为。测试的目的是发现程序中的错误,是为了证明程序有错,而不是证明程序无错。即软件测试是为了“证伪” 而非“证真”。把证明程序无错当作测试目的不仅是不正确的, 完全做不到的,而且对做好测试没有任何益处,甚至是十分有害的。软件测试要设法使软件发生故障,暴露软件错误, 能够发现错误的测试是成功的测试,否则是失败的测试。
策略:
单元测试:单元测试是针对软件设计的最小单位––程序模块甚至代码段进行正确性检验的测试工作,通常由开发人员进行。
集成测试:集成测试是将模块按照设计要求组装起来进行测试,主要目的是发现与接口有关的问题。由于在产品提交到测试部门前,产品开发小组都要进行联合调试,因此在大部分企业中集成测试是由开发人员来完成的。
系统测试:系统测试是在集成测试通过后进行的,目的是充分运行系统,验证各子系统是否都能正常工作并完成设计的要求。它主要由测试部门进行,是测试部门最大最重要的一个测试,对产品的质量有重大的影响。
验收测试:验收测试以需求阶段的《需求规格说明书》为验收标准,测试时要求模拟实际用户的运行环境。对于实际项目可以和客户共同进行,对于产品来说就是最后一次的系统测试。测试内容为对功能模块的全面测试,尤其要进行文档测试。
2.白盒、黑盒测试方法的测试用例设计策略与方法
黑盒测试:又称功能测试 数据驱动测试 基于规格说明书的测试。黑盒测试是从用户观点,按规 格说明书要求的输入数据与输出 数据的对应关系设计测试用例,是根据程序外部特征进行测试。
方法有包括、等价类划分法、边界值分析法、错误推测法、因果图法、判定表、正交试验设计法等。
白盒测试:结构测试 玻璃盒测试 基于覆盖的测试. 根据被测程序的逻辑结构 设计测试用例;力求提高测试覆盖率;白盒测试是根据程序内部逻辑 结构进行测试。.
方法有:条件覆盖、.判定-条件覆盖多重条件覆盖、.路径测试。
① 在任何情况下都应该使用边界值分析的方法;
② 必要时用等价划分法补充;
③ 必要时再用错误推测法补充;
④ 对照程序逻辑,检查测试方案。可根据对程序可靠性的要求采用不同的逻辑覆盖标准,必要时补充一些测试方案。
3.软件测试步骤与方法
测试阶段划分
测试阶段划分:需求测试(重点)、单元测试、集成测试、系统测试(重点)、验收测试、回归测试
需求测试
定义:通过评审来测试需求(通过不同级别不同类型的评审来避免人员意见)
单元测试
定义:针对软件基本组成单元(软件的最小组成单元:函数,语句块等)来进行正确性检验的测试工作
目的:检测软件模块对《详细设计说明书》的符合程度
集成测试
定义:将所有模块按照《概要设计说明书》的要求组装成子系统或者系统,验证组装后的功能以及模块间接口是否正确的功能
目的:检测软件模块对《概要设计说明书》的符合程度
系统测试
定义:将已经集成好的软件系统,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员(用户)等其他系统元素结合在一起,在实际运行(使用)环境下,对计算机进行一系列的测试工作
目的:通过与《需求规格说明书》作比较,发现软件与系统需求定义不符合或与之矛盾的地方
回归测试
定义:软件在测试或其他活动中发现的缺陷经过修改后,应该进行回归测试(Regression Testing)
目的:验证缺陷得到了正确的修复,同时对系统的变更没有影响以前的功能
回归测试可以发生在任何一个阶段,包括单元测试、集成测试和系统测试
验收测试
在通过了系统内部测试及配置审查之后,就可以开始验收测试。
验收测试是以用户为主的测试,验收组应该由项目组成员、用户代表等组成。
验收测试原则在用户所在地进行,如经用户同意也在公司内模拟用户环境进行。
验收测试根据合同、《需求规格说明书》或验收测试计划对成品进行验收测试。
验收测试的结果有两种情况:
① 软件功能、性能等质量特征与用户要求的一致,软件可以接受;
② 软件功能、性能等质量特征与用户要求有差距,不被用户接受。
α测试
定义:用户在开发环境进行的测试,也可以是开发机构内部的用户在模拟实际操作环境下进行的测试。是可控制环境,开发测试人员可以修改控制的环境。α测试时,软件在一个自然状态下使用,开发者在旁,随时记录错误情况和使用中的问题。这是在受控的环境下进行的测试。
目的:评价软件产品的FLURPS(功能,局域化,可用性,可靠性,性能和技术支持)
β测试
定义:由软件的多个用户在一个或多个用户的实际环境下进行的测试。与α测试不同的是,β测试时开发者通常不在现场,因而,β测试是在开发者无法控制的环境下进行的软件现场应用。
单元测试,集成测试,系统测试的比较
测试方法不同
单元测试属于白盒测试
集成测试属于灰盒测试
系统测试属于黑盒测试
考察范围不同
单元测试主要测试单元内部的数据结构,逻辑控制,异常处理 等
集成测试主要测试模块之间的接口和接口数据传递关系,以及模块组合后的整体功能
系统测试主要测试整个系统相对于需求的符合度
评估基准不同
单元测试的评估基准主要是逻辑覆盖率
集成测试的评估基准是接口覆盖率
系统测试的评估基准主要是测试用例对需求规格的覆盖率
4.常用软件测试工具;
工具名称: WinRunner功能性测试
工具名称: LoadRunner 性能与负载压力
工具名称: SilkTest功能测试和回归测试
白盒测试工具 Jtest Jcontract Insure++ TrueTime
黑盒测试工具 WinRunner QARun QARun SilkTest SilkTest International Qaload
针对数据库测试的TestBytes,对应用性能进行优化的EcoScope等工具
5. 软件质量评估方法
软件质量要求包括6个主要特征
功能性:软件实现的功能达到要求的和隐含的用户需求以及设计规范的程度,
可靠性:软件在指定条件和特定时间段内维持性能的能力程
易使用性:用户使用该软件所付出的学习精力,
效率:在指定条件下,软件功能与所占用资源之间的比值,可维护性:当发现错误、运行环境改变或客户需求改变时,程序能修改的容易程度,
可移植性:将软件从一种环境移入另一种环境的容易程度。

计划阶段:
完成<单元测试计划>
设计阶段
设计测试用例集
执行阶段
执行用例,记录缺陷,反馈给开发人员,同时跟踪缺陷的纠正
评估阶段
评估测试的完备性和覆盖性,最好给出测试对象一-个可度量的评价
总结阶段
生成测试报告

2018-05-29 11:33:51 Andrea_Chi 阅读数 127
  • Qt Quick&QML阴影窗口和窗口移动

    Qt版本采用5.12.3,新版本有更多的QML控件 QML中,给无边框窗口添加阴影和鼠标拖拽移动功能。 注意:尽量不要使用无边框窗口,会一定程度破坏桌面软件的体验。

    422 人正在学习 去看看 胡剑波

软件测试的心理学:

作者给出的定义是  测试是为发现错误而执行程序的过程

开发是创造性的 而测试是破坏性的

两个角色对于 成功的测试和不成功的测试 的定义往往相反。


软件测试的经济学:

黑盒测试

白盒测试

这两部分其实都是介绍了一点皮毛没有涉及到具体设计和理论。

软件测试的原则:

1.测试用例中一个必须部分是对与其输出或结果的定义

这部分ok

2.程序员应当避免测试自己编写的程序,注意测试和调试的区别

这部分ok

3.编写软件的组织不应当测试自己编写的软件

书中提到的更经济的方式是第三方进行测试,比如外包或者其他部门这种

4.应当彻底检查每个测试的执行结果

5.tc编写不仅应当根据有效和预期的输入情况,而且也应当根据无效和未预料到的输入情况

6.检查程序是否未做其应该做的只是一半 另一半是检查程序是否做了其不应该做的

7.避免tc用后即弃,除非软件是一次性的

8.计划测试工作时不应默许假定不会发生错误

9.程序某部分存在更多错误的可能性,与该部分已发现错误的数量成正比

10.软件测试是一项极富创造力。极具智力挑战性的工作


我看到的另外一个版本的测试7原则

1.穷尽测试是不可能的

一方面case天文数字,一方面roi考虑

2.测试是为了证明存在错误

不是为了证明软件没有错误

3.缺陷群集效应

问题多的地方可能隐藏了更多问题

4.杀虫剂效应

tc要不断的维护

5.不存在缺陷谬误

如果不满足需求 功能再没有缺陷也没用

6.测试上下文相关,不同测试背景选用不同的测试策略

web测试安全测试 移动测试 数据库测试 压力测试 功能测试 性能测试策略差异

7.尽早测试

测试左移



2019-05-30 11:07:37 weixin_44322157 阅读数 67
  • Qt Quick&QML阴影窗口和窗口移动

    Qt版本采用5.12.3,新版本有更多的QML控件 QML中,给无边框窗口添加阴影和鼠标拖拽移动功能。 注意:尽量不要使用无边框窗口,会一定程度破坏桌面软件的体验。

    422 人正在学习 去看看 胡剑波

其他测试类型的概念

在这里插入图片描述

回归测试

软件功能修改后,对软件进行重新测试以确认修改没有引入新的错误或导致其他部分产生错误
回归测试的重心在关键模块重点功能组件。

Monkey测试

也称搞怪测试。用一些随机、稀奇古怪的方式来操作软件,以测试软件的健壮性和稳定性

冒烟测试

硬件板卡验证术语
软件上则用于确认代码中的更改会按预期运行,且不会破坏整个版本的稳定性

A/B测试

多用于互联网行业,通过为页面提供2个版本给用户使用并记录相关的用户行为数据,来确定更优化设计的一种测试方案。
实施要点:
多个方案并行
每次测试仅改动一个变量
按照某种规则进行优胜劣汰
测试工具:
在这里插入图片描述

没有更多推荐了,返回首页