持续集成:自动化测试篇
- 格式:docx
- 大小:15.95 KB
- 文档页数:3
软件开发岗位实习报告:软件测试自动化与持续集成一、实习背景和目标在软件开发的过程中,软件测试起着至关重要的作用。
而软件测试自动化和持续集成则是当前软件开发领域的热门话题。
因此,我在实习期间选择了软件测试自动化与持续集成作为我的实习方向,并希望通过实践掌握相关知识和技能,提升自己在软件开发领域的竞争力。
二、实习内容与工作环境我被分配到了软件开发团队中的测试小组,负责开发和维护自动化测试框架,并利用该框架编写测试脚本,并与持续集成系统进行集成。
这个团队采用敏捷开发方法,每两周进行一次迭代开发。
我们使用Jenkins作为持续集成工具,利用Git作为版本控制系统。
我在实习期间主要使用Java和Python进行测试脚本的编写。
三、软件测试自动化的实践在实习初期,我主要进行了软件测试自动化框架的学习和搭建。
我们使用了Selenium WebDriver作为测试框架,该框架可以模拟用户的操作行为,以自动化的方式进行测试。
我学习了Selenium WebDriver的基本使用方法,包括元素定位、表单操作、页面跳转等内容。
通过编写测试用例,我逐渐掌握了使用Selenium WebDriver进行测试的技巧。
在熟悉了基本的测试方法后,我开始着手编写具体的测试脚本。
根据产品需求文档和设计文档,我分析了各个功能模块的测试用例,并将其转化为测试脚本。
测试脚本的编写过程中,我充分利用了Selenium WebDriver提供的各种API,比如点击、输入、判断元素是否存在等,来模拟用户的操作过程。
同时,我也学会了使用断言来验证测试结果的正确性。
在实践过程中,我遇到了许多挑战和问题。
比如,有时候页面的元素定位会发生变化,导致之前编写的测试脚本无法正常运行。
为了解决这个问题,我学习了XPath和CSS选择器等元素定位方法,并灵活运用它们来保证脚本的稳定性。
四、持续集成的实践除了软件测试自动化,我还参与了持续集成的实践。
我们使用Jenkins作为持续集成工具,每个开发人员在提交代码后,都要触发Jenkins的构建过程,以保证代码的质量。
软件测试中的持续集成和持续交付测试持续集成和持续交付测试在软件开发过程中起着至关重要的作用。
持续集成是指将开发人员的代码持续集成到主干代码库中,通过自动化构建和测试来确保代码的质量和稳定性。
持续交付则是指将软件交付给用户的过程更加频繁和快速,以便及时满足用户需求并快速改进。
在软件测试中,持续集成和持续交付测试是不可或缺的环节。
通过持续集成和持续交付测试,可以及时发现和解决代码中的问题,确保软件的质量和稳定性。
持续集成测试主要围绕以下几个方面展开:首先是自动化测试。
为了实现持续集成,需要编写大量的自动化测试用例,以确保代码的质量。
这些自动化测试用例可以在代码变更后立即运行,及时发现潜在的问题。
其次是持续集成环境的搭建和维护。
持续集成需要一个稳定的环境来运行自动化测试用例,包括构建工具、版本控制系统、自动化测试工具等。
测试团队需要确保这些环境的稳定性和可靠性。
另外是持续集成的频率和及时性。
持续集成测试需要保持频繁和及时,以便及时发现和解决问题。
通常每次代码变更都会触发持续集成测试,确保代码的质量和稳定性。
在持续交付测试方面,主要涉及以下几个方面:首先是持续交付流程的优化。
持续交付需要一个完善的流程来确保软件的及时交付,包括需求分析、开发、测试、部署等环节。
测试团队需要不断优化这些流程,提高交付的效率和质量。
其次是自动化部署和测试。
持续交付需要实现自动化的部署和测试,以确保软件能够快速、稳定地交付给用户。
自动化部署和测试可以减少人为错误,提高交付的可靠性。
另外是持续交付的监控和反馈。
持续交付之后,测试团队需要对软件进行监控,及时发现问题并反馈给开发团队进行修复。
持续交付的监控和反馈是保证软件质量和稳定性的重要环节。
总之,持续集成和持续交付测试在软件开发过程中起着至关重要的作用。
通过持续集成和持续交付测试,可以提高软件的质量和稳定性,满足用户需求,加快软件交付的速度,从而带来更好的用户体验和更高的竞争力。
如何将自动化测试与持续集成集成随着软件开发的不断发展,自动化测试和持续集成成为了软件开发中不可或缺的一部分。
自动化测试可以帮助开发团队快速检测代码的质量,避免因为人为错误导致的浪费;持续集成可以使得开发团队可以频繁地将代码集成到一个共享的代码库中。
那么如何将自动化测试和持续集成集成起来呢?## 自动化测试在软件开发过程中,自动化测试的目的是帮助开发团队检测代码中的错误,缺陷和性能问题。
自动化测试可以预防和减少人为错误发生,提高软件质量。
自动化测试的流程一般包括以下几个阶段:### 1.测试计划和用例设计在这个阶段,开发团队需要明确测试的目标和范围,并根据需求设计出相关的测试用例。
### 2.测试开发测试开发的过程是编写各种测试脚本、用例等内容。
### 3.测试执行和结果分析在测试执行的过程中,测试人员可以使用自动化框架进行测试,收集测试结果,发现错误和缺陷。
之后需要对测试结果进行分析,以便开发团队明确发现了哪些问题。
## 持续集成持续集成是通过自动和频繁地构建和测试代码来集成开发人员所做的工作,并且在开发机器上建立一个共享代码库的过程。
持续集成的优点在于:- 错误更早的被发现- 更快速的反馈- 更快的业务上线周期持续集成包括以下几个阶段:### 1.代码版本控制与管理代码管理是开发团队将软件开发的每个阶段抽象出来的一种方式。
常用的代码管理工具包括Git,Subversion等。
### 2.代码构建和自动化代码构建是将代码从代码库中取出来,构建成软件最终可以运行的形态。
构建需要包括编译,打包,部署,测试等过程。
### 3.集成测试在集成测试阶段,开发团队需要对系统整体进行测试和验证。
## 如何将自动化测试与持续集成集成将自动化测试和持续集成集成起来,可以提高软件开发的效率和质量。
以下是集成自动化测试和持续集成的一般步骤。
### 1.准备测试环境自动化测试需要使用到一些自动化测试框架和工具,例如Selenium,Cucumber等。
持续集成与自动化测试随着软件开发行业的不断发展,持续集成和自动化测试成为了现代软件开发过程中不可或缺的一部分。
持续集成(Continuous Integration)是指将团队成员开发的代码频繁地集成到主干代码仓库中,以保证软件开发的高效和质量。
自动化测试(Automated Testing)则是通过编写自动化脚本来执行测试,并验证软件的功能和性能,以提高测试效率和准确性。
1. 持续集成的意义持续集成通过持续地将开发人员的代码进行集成,帮助团队快速发现和解决bug,降低集成时的冲突和错误率。
它可以及早发现代码质量问题,并保证软件的稳定性和可靠性。
通过自动化构建和测试流程,持续集成能够减少手动工作量,提高开发团队的效率。
2. 持续集成的工作流程在持续集成的工作流程中,一般需要以下几个步骤:a. 代码提交:开发人员将自己的代码提交到主干代码仓库中。
b. 编译构建:持续集成服务器自动从代码仓库中获取最新的代码,并进行编译构建。
c. 自动化测试:在构建完成后,自动运行相应的测试脚本进行功能和性能测试。
d. 部署和发布:通过自动化脚本将经过测试的软件部署到测试环境或生产环境中。
e. 反馈与修复:如果在测试过程中发现了问题,开发人员及时修复并重新提交代码。
3. 自动化测试的价值自动化测试能够提高测试的效率和准确性,减少人为的错误和遗漏。
它可以快速执行大量测试用例,并自动生成测试报告,帮助开发团队及时发现和解决问题。
自动化测试还可以保证在频繁的迭代和持续集成过程中,软件的可靠性和稳定性。
4. 自动化测试的实施步骤实施自动化测试一般需要以下几个步骤:a. 确定测试范围:根据需求和业务场景,确定需要进行自动化测试的功能模块和核心流程。
b. 选择合适的测试工具:根据需求和技术栈,选择适合的自动化测试框架和工具,如Selenium、Appium等。
c. 编写测试脚本:根据测试需求和测试工具的语法规范,编写相应的测试脚本。
自动化测试与持续集成自动化测试与持续集成在软件开发领域中扮演着重要的角色。
它们不仅可以提高软件质量和效率,还可以减少测试工作的人力投入和时间成本。
本文将详细介绍自动化测试和持续集成的概念、优势,以及实现它们的方法和步骤。
一、自动化测试的概念和优势1. 自动化测试是指利用工具和脚本来自动执行测试用例和验证软件功能的过程。
2. 自动化测试可以帮助开发团队快速执行大量的测试用例,减少人为错误和遗漏的风险。
3. 自动化测试能够提高测试的准确性和一致性,降低手工测试的主观性和人为因素的影响。
4. 自动化测试可以节省测试的时间和成本,从而加快软件交付的速度,提高团队的工作效率。
二、持续集成的概念和优势1. 持续集成是指将开发者的代码频繁地集成到主干代码中,并经过自动化构建和测试的过程。
2. 持续集成可以帮助开发团队快速发现和解决代码集成问题,减少集成的风险和复杂性。
3. 持续集成可以促进团队成员之间的协作和沟通,加快开发周期,提高软件交付的速度。
4. 持续集成可以提供实时的反馈和报告,帮助团队更好地了解软件质量和进展情况。
三、实现自动化测试和持续集成的方法和步骤1. 选择合适的自动化测试工具和框架,例如Selenium、Appium、JUnit等,根据项目需求和技术栈进行选择。
2. 编写测试脚本和用例,在自动化测试工具的支持下执行,并验证软件的功能和性能。
3. 配置和管理测试环境,包括测试服务器、数据库、网络等,保证测试的稳定性和可靠性。
4. 创建持续集成的流水线,包括代码集成、构建、自动化测试、部署等环节,可以使用工具如Jenkins、GitLab等。
5. 设置触发条件和时间点,例如每次代码提交、定时触发等,保证持续集成的频率和即时性。
6. 监控和分析构建和测试的结果,及时发现和解决问题,例如错误日志、测试报告等。
7. 定期进行性能和负载测试,保证软件的稳定性和可靠性,并对测试环境进行优化和调整。
总结:自动化测试和持续集成是现代软件开发中不可或缺的一部分。
使用Jenkins实现持续集成与自动化测试随着软件开发的日益复杂,传统的手动测试已经无法满足快速迭代和质量要求的需要。
为了提高软件开发的效率和质量,持续集成和自动化测试成为了软件开发过程中必不可少的环节。
在这篇文章中,我们将介绍如何使用Jenkins来实现持续集成和自动化测试。
一、什么是持续集成持续集成是一种软件开发实践模式,其核心思想是在整个开发过程中,频繁地将代码集成到主干分支,并通过自动化构建和测试来确保每次集成都是可靠的。
这种模式可以在开发周期的早期发现和解决问题,减少集成错误所带来的风险,并加快软件的交付速度。
二、为什么选择JenkinsJenkins是一个开源的持续集成工具,它提供了丰富的插件和功能,可以帮助开发人员实现自动化构建、自动化测试、自动化部署等任务。
以下是几个选择Jenkins的原因:1. 开源免费:Jenkins是一个开源软件,可以免费使用和定制,节省了软件开发成本。
2. 强大的插件生态系统:Jenkins有一个庞大的插件生态系统,涵盖了各种不同的工具和技术,可以轻松地与版本控制系统、构建工具、测试框架等集成。
3. 易于使用和扩展:Jenkins提供了直观的用户界面和丰富的文档支持,使得使用和扩展变得简单易懂。
4. 平台支持广泛:Jenkins可以在各种操作系统上运行,包括Windows、Linux、Mac OS等,同时也支持各种云平台。
三、Jenkins的基本概念在开始使用Jenkins之前,有几个基本的概念需要了解:1. 任务(Job):任务是Jenkins中最基本的概念,一个任务对应着一项特定的工作,比如构建代码、运行测试、部署应用等。
2. 构建(Build):构建是指通过编译和打包源代码生成可执行的软件或者库的过程。
Jenkins可以自动触发构建,并提供了丰富的构建选项和环境配置。
3. 流水线(Pipeline):流水线是一种可用于定义、可重用的构建过程的方式。
如何进行持续集成和自动化测试持续集成(Continuous Integration)和自动化测试(Automated Testing)是现代软件开发中非常重要的环节。
它们可以提高团队的效率,并保证软件质量。
本文将介绍如何进行持续集成和自动化测试,以及如何应用合适的工具和技术来实现。
一、持续集成的概念和原则持续集成是一种开发实践,要求开发者将代码频繁地集成到主干代码库中。
它的目的是通过尽早地发现和解决问题,最大限度地减少集成过程中的冲突和错误。
持续集成的原则包括:1. 尽早提交代码:开发者应该尽早地提交代码,不等到代码被积累起来再一次性提交。
2. 自动化构建:通过构建工具(如Maven、Gradle等)自动执行编译、测试和打包等任务。
3. 频繁集成:开发者应该频繁地将代码集成到主干代码库,最好是每天或每个工作任务结束后。
4. 快速反馈:持续集成需要快速反馈,通过自动化测试和构建过程来提供准确和及时的问题报告。
二、持续集成的步骤1. 版本控制:使用版本控制工具(如Git、SVN等)来管理代码,确保团队成员都使用相同的代码版本。
2. 自动化构建:使用构建工具来自动执行编译、测试和打包等任务。
常用的构建工具有Jenkins、Travis CI等。
3. 自动化测试:编写自动化测试脚本,覆盖功能测试、单元测试、集成测试等多个层次的测试。
常用的自动化测试框架有JUnit、TestNG 等。
4. 集成和部署:将代码集成到主干代码库,并自动部署到测试环境或生产环境中。
可以使用持续集成工具来实现自动集成和部署,如Jenkins、TeamCity等。
5. 快速反馈:通过自动化测试和构建过程提供快速反馈,及时发现和解决问题。
三、自动化测试的概念和类型自动化测试是使用脚本和工具来执行测试任务的过程,相比手动测试,它具有更高的效率和准确性。
常用的自动化测试类型包括:1. 单元测试:针对软件的最小可测试单元(如函数、方法)编写测试用例。
自动化测试中的持续集成与持续测试在软件开发领域,自动化测试已成为提高产品质量与开发效率的重要环节。
为了确保测试的准确性和效率,持续集成与持续测试成为了自动化测试中的核心概念。
本文将介绍什么是持续集成与持续测试,它们的意义以及如何在自动化测试中应用这些概念。
一、什么是持续集成与持续测试持续集成是一种软件开发实践方法,通过频繁地将代码集成到主干分支,使得团队成员能够更早地发现代码集成引起的问题,并且可以立即进行修复。
持续集成的目标是保持代码的稳定性和可靠性,同时提高软件开发团队的整体效率。
持续测试是持续集成的重要组成部分,它确保在频繁地集成代码的同时,测试也是连续进行的。
通过持续测试,可以在代码集成之后自动执行一系列测试用例,确保新添加的代码没有破坏系统的功能和稳定性。
持续测试的目标是提供即时反馈,减少测试延迟,并加速问题的解决。
二、持续集成与持续测试的意义1. 问题早发现:通过持续集成与持续测试,可以及早发现并解决代码集成引起的问题,避免问题扩散到整个系统,提高代码的稳定性和质量。
2. 自动化流程:持续集成与持续测试的实施需要构建自动化的流程,包括自动化构建、自动化测试用例执行等。
这有助于减少人工干预带来的错误,并加快软件发布的速度。
3. 可追溯性:持续集成与持续测试的每个过程都有详细的记录,可以追溯到具体的代码提交和测试结果。
这对于问题的排查和团队协作非常重要。
4. 增强团队合作:持续集成与持续测试要求团队成员频繁地合并代码和测试,这促进了团队的合作和沟通,提高了开发效率和整体质量。
5. 快速反馈:持续测试通过自动化的方式提供即时反馈,使得开发人员可以快速获知代码的质量和稳定性,促使及时的改进和修复。
三、在自动化测试中应用持续集成与持续测试1. 自动化构建:利用构建工具(如Jenkins)实现自动化构建,通过构建脚本将代码从版本控制系统中获取并编译。
每次代码提交后,都会触发自动化构建过程,确保代码的一致性和可编译性。
VSCode实现代码自动化测试与持续集成随着软件开发的不断发展,代码自动化测试和持续集成成为开发过程中不可或缺的一环。
Visual Studio Code(以下简称VSCode)作为一款功能强大的开发工具,提供了丰富的插件和扩展,使得代码自动化测试与持续集成变得更加便捷高效。
本文将介绍如何利用VSCode实现代码自动化测试和持续集成的基本流程和具体操作。
一、准备工作在使用VSCode进行代码自动化测试和持续集成之前,首先需要确保以下几项准备工作的完成:1. 安装VSCode和相关插件在官方网站(https:///)下载并安装最新版本的VSCode。
启动VSCode后,点击左侧的扩展图标,搜索并安装下列插件:(插件名)2. 配置代码仓库将代码仓库克隆到本地,并确保本地仓库与远程代码库保持同步。
可以使用Git等工具进行仓库的管理和操作。
二、代码自动化测试代码自动化测试是为了确保代码的质量和稳定性,同时减少人工测试的工作量。
通过VSCode提供的插件和扩展,可以方便地进行代码自动化测试。
1. 配置测试框架在项目根目录下创建测试文件夹,并在其中选择一种适合项目的测试框架,如JUnit、Mocha等。
按照框架的要求进行配置和安装。
2. 编写测试用例在测试文件夹中编写各种测试场景的测试用例,覆盖代码中的各种分支和功能点。
编写测试用例时,可以使用VSCode提供的代码补全、自动格式化等功能,提高编写效率。
3. 运行测试利用VSCode提供的插件,在编辑器中选择要运行的测试文件或特定的测试场景,并运行测试。
VSCode会自动执行测试代码并显示测试结果。
4. 分析测试结果根据测试结果,查找和修复代码中的问题。
可以利用VSCode提供的插件,对测试覆盖率进行分析和审查,进一步提高代码的质量。
三、持续集成持续集成是为了在代码变更后,及时地自动构建、测试和部署应用程序,以确保应用程序在不同环境中的稳定性和一致性。
通过VSCode提供的插件和扩展,可以轻松实现持续集成。
持续集成与自动化测试的实现持续集成(Continuous Integration)和自动化测试是现代软件开发过程中非常重要的环节,它们的实现可以提高开发团队的工作效率、减少出错风险,并保证软件的质量。
本文将从持续集成和自动化测试的基本概念开始介绍它们的实现过程。
持续集成是指将开发者的代码持续地集成到一个共享的代码库中,并通过自动化构建、测试和部署的过程进行验证。
实施持续集成的关键是使用一个版本控制系统(如Git)来管理代码,并建立一个自动化的构建管道来触发构建和测试流程。
下面是实施持续集成的一般步骤:1.版本控制:将代码存放在一个共享的代码库中,团队成员可以随时获取和提交代码。
2.构建脚本:编写一个脚本,用于自动化构建软件。
在脚本中,可以定义构建所需的依赖、编译代码、打包软件等操作。
3.自动化测试:编写自动化测试脚本,用于验证代码的正确性。
可以使用各种测试框架和工具来编写单元测试、集成测试、端到端测试等不同类型的测试脚本。
4.持续集成服务器:配置一个持续集成服务器,用于监听代码库的变化,并触发构建和测试流程。
持续集成服务器可以周期性地或在代码提交时自动触发构建和测试流程。
5.自动化构建:持续集成服务器在触发构建时,会执行构建脚本,自动编译和构建软件。
6.自动化测试:在构建完成后,持续集成服务器会执行自动化测试脚本,验证代码的正确性。
测试脚本可以运行在不同的环境中,例如模拟器、容器等。
7.测试报告和部署:持续集成服务器会生成测试报告,显示测试结果的统计信息和详细信息。
如果所有的测试通过,可以将软件部署到目标环境中。
自动化测试是持续集成过程中的一个重要环节,它可以提供快速、可靠的反馈,帮助开发团队尽早发现和解决问题。
以下是实施自动化测试的一般步骤:1. 选择测试框架和工具:根据项目的需求和技术栈,选择适合的测试框架和工具。
例如,Java项目可以使用JUnit或TestNG,JavaScript项目可以使用Mocha或Jasmine等。
持续集成:自动化测试篇
前言
如果组件A\B\C的可靠性都为90%,是否说明了A\B\C组成的系统整体可靠性为90%?其实不是,实际结果是90% * 90% * 90%* = 73%。
大部分软件系统都由几百个甚至几千个对象组成,如果包含了100个组件的线性系统,每个组件的可靠性均为99%,那么整个系统的可靠性只有37%。
如果想要构建一个在服务层面承诺到达100%或接近100%的软件系统,则必须在单个对象层面上确保可靠性。
如果不能从最低层面确保并测量可靠性,就不可能在系统层面上达到要求。
这就要求我们在每当系统发生变更时测试都必须执行,并且这些测试不单单是单元测试,还应包括组件测试、系统测试等,在日常的开发过程中,反复进行多种测试无疑是枯燥乏味的,在CI系统中包含持续测试则能让你轻松解决这一烦恼。
自动化单元测试
“单元测试”是验证软件系统中所有小元素的行为,这些小元素通常都是一个类。
有时单元测试和被测试的类之间一对一的关系也会被放大,因为一些测试的类耦合程度较高。
单元测试没有外部依赖关系,不会依赖于文件系统和数据库。
因为编码和看到单元测试之间的时间很短,所以单元测试是一种有效的除错方法。
在进行持续集成过程的单元测试时,可以利用NUnit或JUnit单元测试框架,让单元测试自动化。
真正的单元测试应该少于1秒的时间内完成。
如果花费的时间较长就需要检查一下,它是否失败了,或者它实际是一个组件级测试。
配置自动化测试需要一些代价,但是执行这些测试的资源代价可以忽略不计。
自动化组件测试
“组件测试”或“子系统测试”验证的是系统的各个部分,可能需要安装整个系统或某些外部依赖关系,如数据库、文件系统、网络终端等。
典型的组件测试需要底层数据库支持,甚至可能跨越架构边界,这些测试涉及更多对象,每个测试的代码覆盖率也更大,通常比单元测试需要花更长的时间,如果用到数据库可以使用DbUnit\NDbUnit实现自动化。
组件测试执行的时间比较长,可以作为次级构建的一部分来执行或定期执行。
自动化系统测试
“系统测试”允许整个软件系统,需要完整安装系统,系统测试比组件测试执行时间更长,通常涉及多个组件。
如果事先已成功执行单元测试和组件测试,则已解决一些底层问题,只需要计划定期执行这个耗时较长的测试就可以。
也可以作为次级集成构建的一部分,在下班后或夜间执行。
自动化功能测试
“功能测试”也称为“验收测试”,从用户的角度测试应用程序,意味着测试将模仿用户行为,通常是自动化测试套件中执行时间最长的。
开发者测试分组
通过将测试分组,按不同的时间间隔来执行较快(如单元测试)和较慢的(如组件测试)测试,顺序可以设置为:单元测试、组建测试、系统测试、功能测试。
可以“告诉”CI系统在恰当的时候执行每一类测试,构建次数完全可管理,测试定期执行,而不是当它们需要很长时间执行时就抛弃它们。
为缺陷编写测试
开发者测试和CI可以减少缺陷发生的频率,但是缺陷仍然会产生。
我们通常在发现缺陷时,会需要找出缺陷代码、隔离有问题的代码,并修复它。
但是,一个可促进质量提升的流程并不止于此。
步骤应如下:
1)编写一个会失败的测试用例,不断执行这个测试(在修复缺陷的过程中),直到测试不在失败为止。
2)在这种情况下,很难正确地使用一个断言编写将会失败的测试。
因此,断言可能不会加入,及时测试用例不再失败时,也不会加入断言。
测试用例不一定是通过了,只是没有失败而已。
3)在这个过程的某个时刻,需要知道修复将怎样影响代码的行为,在尝试编写会失败的测试时,需要猜想修复可能是怎样的。
4)当被测试代码进行修复后,失败的测试可以工作了,蛋挞并没有真正验证行为的变更。
为了修复缺陷,我们需要破坏测试。
5)直到被测试的代码确信已被修复,在执行测试,这次它会失败。
6)在修复我们的测试用例时,我们断言新的行为。
我们断言当无效的单词传递给findword方法时,会返回null,我们需要断言不会抛出异常了。
整个流程中,我们做了两件事:首先,缺陷被更正了;其次,我们有了一个回归测试,真正地断言了修复后的正确行为,防止缺陷再次发生。
根据新的缺陷编写测试,增加代码覆盖率,确保缺陷不会再次出现。
组件测试可重复
利用数据库测试框架确保数据处于“已知状态”,有利于组件测试可重复。
测试用例限制断言
将测试用例限制为一个断言,减少追踪测试失败原因花费的时间。