随笔分类 - 软件测试52讲
摘要:可扩展性,指的是网站的架构设计能够快速适应需求的变化,当需要增加新的功能实现时,对原有架构不需要做修改或者做很少的修改就能够快速实现新的业务需求。 衡量网站可扩展性设计优秀与否的主要标准,就是增加新功能的时候对原有系统的影响是否足够小。 提升网站可扩展性性的核心,就是降低系统各个模块和组件之间的耦合
阅读全文
摘要:可伸缩性和可扩展性的概念区别 可伸缩性翻译自 Scalability,指的是通过简单地增加硬件配置而使服务处理能力呈线性增长的能力。最简单直观的例子,就是通过在应用服务器集群中增加更多的节点,来提高整个集群的处理能力。 可扩展性翻译自 Extensibility,指的是网站的架构设计能够快速适应需求
阅读全文
摘要:网站高可用指的就是,在绝大多的时间里,网站一直处于可以对外提供服务的正常状态。业界通常使用有多少个“9”来衡量网站的可用性指标,具体的计算公式也很简单,就是一段时间内(比如一年)网站可用的时间占总时间的百分比。 造成网站不可用的主要原因有以下三大类: 服务器硬件故障; 发布新应用的过程; 应用程序本
阅读全文
摘要:从全局来看,网站的高性能架构设计包括两大部分内容:一是前端性能,二是后端服务器相关的性能优化和架构设计。 前端的高性能架构 参考第 31 篇文章《工欲善其事必先利其器:前端性能测试工具原理与行业常用工具简介》中的相关内容。 后端服务器的高性能架构 后端服务器的高性能架构,业内采用的最主要的技术手段是
阅读全文
摘要:为什么要懂得网站的架构设计? 测试工程师怎么学架构知识? 同样是对架构知识的学习和掌握,不同角色的工程技术人员都有不同的视角,需要了解和掌握的全局知识和细节程度也各不相同。以消息队列知识为例: 作为软件测试人员,你需要知道消息队列的基本原理以及在被测系统中的部署情况,同时应该知道如何访问消息队列或者
阅读全文
摘要:基于模型的测试,即 Model-Based-Testing,简称 MBT。 MBT,是自动化测试的一个分支。它是将测试用例的设计依托于被测系统的模型,并基于该模型自动生成测试用例的技术。其中,这个被测系统的模型表示了被测系统行为的预期,也可以说是代表了我们对被测系统的预期。 MBT 的基本原理 MB
阅读全文
摘要:渗透测试的定义 渗透测试指的是,由专业安全人员模拟黑客,从其可能存在的位置对系统进行攻击测试,在真正的黑客入侵前找到隐藏的安全漏洞,从而达到保护系统安全的目的。 渗透测试的常用方法 有针对性的测试;外部测试;内部测试;盲测;双盲测试。 执行渗透测试的步骤 规划和侦察 安全扫描 获取访问权限 维持访问
阅读全文
摘要:传统软件测试的主要短板 传统软件测试的方法、理念,因为测试用例数量持续增加而导致的用例维护成本高、测试过程低效、缺乏有效的回归测试用例选取机制等等一系列的问题,而有些力不从心。于是,精准测试应运而生了。 所谓精准测试,就是借助一定的技术手段、通过算法的辅助对传统软件测试过程进行可视化、分析以及优化的
阅读全文
摘要:Test-Driven Development,通常简称为 TDD。 在开发人员实现功能代码前,先设计好测试用例的代码,然后再根据测试用例的代码编写产品的功能代码,最终目的是让开发前设计的测试用例代码都能够顺利执行通过。 TDD 的优势 保证开发的功能一定是符合实际需求的。 更加灵活的迭代方式。 保
阅读全文
摘要:什么是探索式测试? 首先,探索式测试是一种软件测试风格,而不是一种具体的软件测试技术。 其次,探索式测试强调独立测试工程师的个人自由和责任,其目的是为了持续优化其工作的价值。 最后,探索式测试建议在整个项目过程中,将测试相关学习、测试设计、测试执行和测试结果解读作为相互支持的活动,并行执行。 探索式
阅读全文
摘要:大型全球化电商的测试基础架构设计 **大型全球化电商网站全局测试基础架构的设计思路,可以总结为“测试服务化”。**也就是说,测试过程中需要用的任何功能都通过服务的形式提供,每类服务完成一类特定功能,这些服务可以采用最适合自己的技术栈,独立开发,独立部署。 统一测试执行服务 测试执行的发起是通过 Re
阅读全文
摘要:基于 Docker 实现的 Selenium Grid 测试基础架构 为了降低 Selenium Node 的维护成本 引入统一测试执行平台的测试基础架构 测试用例的版本化管理。 测试用例采用和开发一致的版本号。 提供基于 Restful API 的测试执行接口供 CI/CD 使用。 不直接在 CI
阅读全文
摘要:什么是测试执行环境? 狭义的测试执行环境,单单指测试执行的机器或者集群。 广义的测试执行环境,除了包含具体执行测试的测试执行机以外,还包括测试执行的机器或者集群的创建与维护、测试执行集群的容量规划、测试发起的控制、测试用例的组织以及测试用例的版本控制等等。 一般情况下,中大型企业在测试基础架构上的投
阅读全文
摘要:什么是测试基础架构? 测试基础架构指的是,执行测试的过程中用到的所有基础硬件设施以及相关的软件设施。因此,我们也把测试基础架构称之为广义的测试执行环境。通常来讲,测试基础架构主要包括以下内容: 执行测试的机器;测试用例代码仓库; 发起测试执行的 Jenkins Job;统一的测试执行平台; 测试用例
阅读全文
摘要:测试数据准备的 2.0 时代 2.0 时代的 Builder Pattern(生成器模式)在提供了最大限度的数据灵活性的同时,还保证了使用上的最大便利性,并且维护成本还非常低。如果不考虑跨平台能力的话,Builder Pattern 已经是一个接近完美的解决方案了。 测试数据准备的 3.0 时代 3
阅读全文
摘要:全球大型电商企业中关于准备测试数据的最佳实践。 测试数据准备的 1.0 时代 在 1.0 时代,准备测试数据最典型的方法就是,将测试数据准备的相关操作封装成数据准备函数。 数据准备函数暴露全部参数 第一种是,直接使用暴露全部参数的数据准备函数,虽说灵活性最好,但是每次调用前都需要准备大量的参数,从使
阅读全文
摘要:准备测试数据的痛点 在测试用例执行过程中,创建所需的数据往往会耗时较长,从而使得测试用例执行的时间变长; 在测试执行之前,先批量生成所有需要用到的测试数据,就有可能出现在测试用例执行时,这些事先创建好的数据已经被修改而无法正常使用了的情况; 在微服务架构下,测试环境本身的不稳定,也会阻碍测试数据的顺
阅读全文
摘要:测试数据创建的基本方法 从创建测试数据的维度来看,测试数据准备方法主要可以分为四类: 基于 GUI 操作生成测试数据; 通过 API 调用生成测试数据; 通过数据库操作生成测试数据; 综合运用 API 和数据库的方式生成测试数据。 基于 GUI 操作生成测试数据 很少直接使用基于 GUI 的操作生成
阅读全文
摘要:传统的企业级软件企业如何开展性能测试工作。 性能测试的类型 性能基准测试 Performance Benchmark Test 性能基准测试,会基于固定的硬件环境和部署架构(比如专用的服务器、固定的专用网络环境、固定大小的集群规模、相同的系统配置、相同的数据库背景数据等),通过执行固定的性能测试场景
阅读全文
摘要:阶段 2:录制并增强虚拟用户脚本 从整体角度来看,用 LoadRunner 开发虚拟用户脚本主要包括以下四个步骤: 识别被测应用使用的协议; 录制脚本; 完善录制得到的脚本; 在两个事务之间加入思考时间(Think Time); 对界面输入的数据做参数化(Parameterization)操作; 完
阅读全文