图文教程

从基础概念到工具实操,逐篇掌握测试技能。

517 篇内容

2018

(八)构造方法

构造方法用于初始化一个新建的对象, 如果你没有定议任何构造方法的形式, 程式会为你取一个不带任何参数的构造函数, 那么你产生类的对像时只能用不带参数的方法。 1.构造器必须与类同名(如果一个源文件中有多个类, 那么构造器必须与公共类同名) 2.每个类可以有一个以上的构造器 3.构造器可以有 0 个、 1 个或 1 个以上的参数 4.构造器没有返回值 5.构造 …

1 分钟阅读

再谈测试人员的核心竞争力

最近参加了公司组织的敏捷专场培训,与专家交流了一些测试相关的内容,这里分享一下关于测试人员核心竞争力的一些观点。 我的观点是测试人员的核心竞争力在于提前发现参与研发过程中的其他人员所无法发现的问题。这里有2个关键字,分别是 提前:问题发现的越早,解决的成本越低。如果1个需求在还未实现的时候就能发现需求的漏洞,那么这种问题的价值是最高的 别人无法发现:所有人都 …

1 分钟阅读

TDD实战(一)开发模式

TDD是测试驱动开发(Test-Driven Development)的英文简称,是敏捷开发中的一项核心实践和技术,也是一种设计方法论。TDD的原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。TDD虽是敏捷方法的核心实践,但不只适用于XP(Extreme Programming),同样可以适用于其他开发方法和过程。 – 百 …

1 分钟阅读

TDD实战(二)“井字游戏” 需求一

保证你会玩“井字游戏” 并理解它的规则。 先定义边界,以及将棋子放在哪些地方非法。 可将棋子放在3×3棋盘上任何没有棋子的地方。 将需求分成三个测试: 如果棋子放在超出了X轴边界的地方,就引发 RuntimeException 异常。 如果棋子放在超出了Y轴边界的地方,就引发 RuntimeException 异常。 如果棋子放在已经有棋子的地方, …

2 分钟阅读

TDD实战(三)“井字游戏” 需求二

现在处理轮到哪个玩家落子问题。 需要提供一种途径,用于判断接下来该谁落子。 将需求分成三个测试: 玩家 X 先下; 如果上一次是 X 下的,接下来将轮到 O 下。 如果上一次是 O 下的,接下来将轮到 X 下。 在这条用例中用到了 JUnit 的断言方法 assertEquals(),通过 nextPlayer() 判断下一个下棋的是否是 X 玩家。 对于当 …

1 分钟阅读

TDD实战(四)“井字游戏” 需求三

现在考虑这个游戏的获胜规则,这部分工作会比较麻烦。我们必须检查所可能获胜的情况,只要满足其中一个,就宣布相应玩家获胜。 最先在水平、锤直或对角线上将自己的3个标记连起来的玩家获胜。 首先定义play() 的默认返回值: 如果不满足获胜条件,则无人获胜。 这个用例很容易满足,修改 play() 方法如下: ** 执行 测试用例1 检查它是否运行通过。 处理各种 …

2 分钟阅读

TDD实战(五)“井字游戏” 需求三

继续实现需求3,检查所可能获胜的情况,只要满足其中一个,就宣布相应玩家获胜。 最先在水平、锤直或对角线上将自己的3个标记连起来的玩家获胜。 现在我们检查是否有垂直线完全被某个玩家占据。 一个玩家的棋子占据整条垂直线就赢了。 这个实现和前面一个类似,前面在水平方向上做检查,现在需要在垂直方向上做同样的检查。 ** 执行 测试用例1 检查它是否运行通过。 水平线 …

2 分钟阅读

TDD实战(六)“井字游戏” 需求四

如果出现平局如何处理。 所有格子都占满则为平局。 可以通过填满棋盘的所有格子测试平局结果。 检查是否为平局非常简单 — 只需要检查是否已占满整个棋盘,所以,可以通过遍历数组board实现。 ** 执行 测试用例1 检查它是否运行通过。 ** 执行 所有测试用例 检查它们是否全部运行通过。 虽然 isWin()方法与最后的个测试无关,但也可以重构。 我们无须检 …

2 分钟阅读

TDD实战(七)Jacoco 代码覆盖率

最后一节,和TDD没有直关系,我这里要介绍代码覆盖率工具 Jacoco 。 由于整个TDD项目由 Gradle构建,所以在build.gradle文件中添加 Jacoco 插件。 切换到TDD 项目目录。执行: 在项目...\TDD\build\reports\jacoco\test\html目录下生成index.html报告,通过浏览器打开。 看到这样一张 …

1 分钟阅读

DevOps/TestOps概念

天下大势分久必合合久必分,早期的软件开发只有软件工程师一人完成,为了提高效率逐渐实行分工模式:开发、测试、运维。不同角色担任不同的任务。分工越来越细之后带来了问题也越来越突出,那就是各角色之间的沟通成本越来越高。而全栈工程师、DevOps/TestOps相关职位和概念的提出,本质就是把不同的工作集中在一个人身上,或者让一个人涉及到更多方面的工作,从而来降低这 …

1 分钟阅读

我是如何测试hello world的

回顾一下问题,对于下面这种简单的hello world代码,我们应该怎么测试呢? 下面是我的一些思路,抛砖引玉。 注意:下面的代码均在python2.7中运行通过,python3可能无法运行 第一种方式很容易想到,上面的代码没有办法很好的进行测试是因为我们不太好去自动判断输出。 如果能够拿到具体的输出,然后判断输出是否符合预期,这样测试就相对容易了。 这里我 …

1 分钟阅读

开课通知:性能测试从入门到精通班

课程目标: 性能专项测试培训,通过压力测试工具(jmeter/locust)/siege等了解性能测试的基本原理及性能测试流程。 学会目前主流的性能测试类型:web性能测试及接口性能测试。 我们能学到什么 学会使用主流性能测试工具:jmeter/locust/siege等 学会使用linux及进行linux环境搭建和性能监控 学会性能测试的流程和方法,能够自 …

1 分钟阅读

如何测试hello world

最近在跟敏捷专家聊到了单元测试的相关内容。 我的问题主要集中在如何推广单元测试。 我们发现在很多团队,开发人员并不是十分愿意去写单元测试,我认为主要的原因是学习写单元测试是有成本的,很多开发同学并不愿意投入时间去专心研究如何去写单元测试。 敏捷教练的观点是单元测试很容易写,稍微学一学就会了,比如开发刚开始写hello world的时候就可以顺便写个单元测试用 …

1 分钟阅读

2017

如何衡量测试人员的产出

我们在这几个月里将测试人员下放到了项目组,由项目经理统一管理,项目经理具有一定的考核建议权。 实行一段时间之后我们发现在某些项目中,有些测试人员一直处于工作量不是很饱和的状态。由于人员的工作是由项目经理安排,而大部分项目经理是不太关注测试活动的,所以安排的工作难免流于形式,没办法充分调动起测试人员的工作积极性。这样就造成了在一些项目里,测试同学经常会某段时间 …

1 分钟阅读

Android测试(一):在Android中测试App

原文:https://developer.android.com/training/testing/index.html 测试你的App是开发过程中的重要组成部分。通过对应用程序持续的运行测试,你可以验证程序的正确性、功能和可用在发布之前。 测试还提供了以下优点: 快速反馈失败。 开发周期的早期问题检测。 安全地重构代码,让你优化代码而不用担心回归。 稳定开 …

1 分钟阅读

Android测试(二):Android 测试基础

原文:https://developer.android.com/training/testing/fundamentals.html 用户在不同的级别上与你的应用产生交互。从按下按钮到将信息下载到他们的设备上,因此,你应该在迭代开发应用程序时测试各种用例和交互。 当你的应用程序进行扩展时,你可能会发现需要从服务器获取数据,与设备的传感器进行交互,可以还需要 …

1 分钟阅读

Android测试(三):Android 单元测试

原文:https://developer.android.com/training/testing/unit-testing/index.html 单元测试是你的应用程序测试策略的基本测试。 通过针对您的代码创建和运行单元测试,你可以轻松验证各个单元的逻辑是否正确。 在每次构建之后运行单元测试可帮助你快速捕获并修复由代码更改引入到应用程序的软件回归。 单元测 …

1 分钟阅读

Android测试(四):Local 单元测试

原文:https://developer.android.com/training/testing/unit-testing/local-unit-tests.html 如果你的单元测试没有依赖或者只有简单的Android依赖,则应该在本地开发机器上运行测试。这种测试方法非常高效,因为它可以帮助你避免每次运行测试时将目标应用程序和单元测试代码加载到真机或模拟 …

1 分钟阅读

Android测试(五):Instrumented 单元测试

原文:https://developer.android.com/training/testing/unit-testing/instrumented-unit-tests.html Instrumented 单元测试是在真机和模拟器上运行的测试,它可以利用Android框架API和支持的API(如Android测试支持库)。如果你的测试需要访问工具信息(例 …

2 分钟阅读

Android测试(六):Android UI自动化测试

原文:https://developer.android.com/training/testing/ui-testing/index.html 用户界面(UI)测试可以确保你的应用程序满足其功能要求,并达到用户最可能成功采用的高质量标准。 UI测试的一种方法是简单地让人类测试人员在目标应用程序上执行一组用户操作,并验证其行为是否正确。 但是,这种手动方法可能 …

1 分钟阅读