测试开发更加侧重于自动化测试和测试工具的开发,需要较强的编程和技术技能,旨在提高测试效率。软件测试则更加侧重于手动和自动测试的执行,需要编写测试用例和报告缺陷,以确保软件的质量。
测试开发(Test Development):
职责:测试开发人员主要负责编写自动化测试脚本和测试工具,以确保软件的质量和稳定性。他们的工作重点是创建自动化测试套件,执行测试,分析测试结果,并与开发团队合作解决问题。
技能:测试开发人员需要具备编程和脚本编写的技能,通常使用编程语言(如Python,Java,C#等)来编写自动化测试脚本。他们还需要了解测试框架和测试工具,以便有效地执行自动化测试。
目标:测试开发的目标是提高测试效率,减少手动测试的工作量,并在软件开发周期的早期阶段发现和修复缺陷。
软件测试(Software Testing):
职责:软件测试人员负责执行测试用例,评估软件的功能、性能和安全性。他们的工作包括手动测试、验证和记录问题,确保软件符合规格和要求。
技能:软件测试人员需要了解测试方法和技巧,能够创建详细的测试计划和测试用例。他们通常不需要深入的编程技能,但需要熟悉测试工具和缺陷跟踪系统。
目标:软件测试的目标是验证软件是否满足规格要求,确保软件质量,以及提供反馈给开发团队,帮助他们改进产品。
抓包工具:Fiddler下载、安装、使用 教程
Selenium元素定位方法总结
CSS的基础知识讲解
什么是RESTful API?
RESTful API(Representational State Transfer API)是一种用于设计网络应用程序接口的架构风格。它是一种基于 HTTP 协议的架构,旨在促进系统之间的互操作性和可扩展性。RESTful API 的核心概念包括资源(Resources)、HTTP 方法(HTTP Methods)、状态(State)、无状态(Stateless)以及表述(Representation)。
HTTP状态码(HTTP Status Code)是用以表示网页服务器HTTP响应状态的3位数字代码。它由 RFC2616 规范定义的 ,并得到RFC 2518、RFC 2817、RFC 2295、RFC 2774、RFC 4918等规范扩展。
200 OK(成功):服务器成功处理了客户端的请求,并返回了请求的内容。这是最常见的成功响应状态码。
201 Created(资源创建成功):表示服务器已成功创建了新资源。通常在创建新用户账户或上传文件等情况下使用。
202 Accepted:表示服务器已接受了请求,但尚未完成处理。通常在异步处理场景中使用,客户端可以稍后通过其他方式获取结果。
204 No Content(没有内容返回,用于删除操作):表示服务器已成功处理了请求,但没有返回任何内容。通常用于表示删除操作成功完成,因为删除操作不需要返回任何额外的数据。
301 Moved Permanently:表示请求的资源已被永久移动到新的位置,客户端应更新其链接到新的 URL。
302 Found:表示请求的资源暂时被移动到另一个位置。客户端应继续使用原有的 URL。
400 Bad Request:表示客户端发送的请求无效,服务器无法理解或处理该请求。
401 Unauthorized:表示客户端未经身份验证,需要提供有效的身份验证凭证才能访问资源。
403 Forbidden:表示服务器理解请求,但拒绝访问。客户端没有权限访问该资源。
404 Not Found:表示请求的资源不存在,服务器未找到与请求的 URL 相对应的资源。
405 Method Not Allowed:表示服务器不支持请求中指定的方法(HTTP 方法),例如客户端尝试使用 POST 请求一个只允许 GET 的资源。
500 Internal Server Error:表示服务器遇到了意外的错误,无法完成请求。
503 Service Unavailable:表示服务器暂时无法处理请求,通常是因为服务器过载或维护中。客户端应稍后重试请求,以便在服务器恢复正常后获取响应。
Android 和 iOS 是两个最流行的移动操作系统。
Android:
开发者:Android 是由 Google 开发和维护的开源操作系统。开发者可以使用 Android SDK(软件开发工具包)来创建 Android 应用程序。
内核:Android 使用了 Linux 内核,这是一个开源的操作系统内核,提供了核心的系统服务和硬件驱动程序支持。
编程语言:Android 应用程序可以使用多种编程语言编写,包括 Java、Kotlin 和 C++。大多数应用程序使用 Java 或 Kotlin。
应用商店:Android 应用程序可以通过 Google Play 商店进行分发和下载。此外,还有其他第三方应用商店可供选择。
设备多样性:Android 运行在各种不同制造商的设备上,因此存在广泛的硬件和屏幕大小选择。
开放性:Android 是一个相对开放的操作系统,允许开发者更灵活地自定义应用程序和设备。
开发工具:Android 开发通常使用 Android Studio 这样的集成开发环境(IDE)。
iOS:
开发者:iOS 是由苹果公司开发和维护的操作系统,仅用于苹果的移动设备,如 iPhone、iPad 和 iPod Touch。
内核:iOS 使用了自家设计的内核,这使得它在苹果设备上运行时非常高效。
编程语言:iOS 应用程序主要使用 Objective-C 和 Swift 编程语言编写。Swift 是苹果公司开发的现代编程语言,逐渐取代了 Objective-C。
应用商店:iOS 应用程序可以通过 Apple App Store 进行分发和下载,这是唯一的官方分发渠道。
设备一致性:iOS 运行在苹果设备上,因此硬件配置和屏幕大小相对一致,这有助于应用程序的一致性和性能。
封闭性:iOS 是一个相对封闭的操作系统,苹果对应用程序的审核和控制非常严格,以确保用户安全和应用质量。
开发工具:iOS 开发通常使用 Xcode 这样的集成开发环境(IDE)。
确定测试目标:在开始自动化测试之前,首先要明确测试的目标和范围。确定要测试的功能、特性和优先级,以及哪些测试需要自动化,哪些需要手动执行。
选择自动化测试工具:根据项目的需求和技术栈,选择合适的自动化测试工具。常见的自动化测试工具包括Selenium WebDriver(用于Web应用程序测试)、Appium(用于移动应用程序测试)、JUnit、TestNG、PyTest等。
编写测试脚本:使用选定的自动化测试工具编写测试脚本。测试脚本应该覆盖项目中的关键功能和业务场景。编写测试脚本需要具备编程技能,根据测试用例编写测试步骤和断言,以验证软件的正确性。
组织测试套件:将测试脚本组织成测试套件,以便可以按照不同的测试类型和优先级运行测试。这可以帮助团队更灵活地执行测试并集中精力解决问题。
配置测试环境:配置测试环境,包括测试数据、测试数据库、浏览器/设备配置等。确保测试环境的稳定性和可重复性。
执行自动化测试:运行自动化测试套件,自动执行测试脚本。收集测试结果和日志以进行后续分析。
分析测试结果:分析测试结果,检查测试通过率和失败的测试用例。如果有测试失败,记录失败的详细信息,包括错误消息和堆栈跟踪。
修复缺陷:开发团队根据测试结果修复失败的测试用例中的缺陷。测试团队和开发团队之间需要紧密合作,以便及时解决问题。
持续集成:将自动化测试集成到持续集成(CI)/持续交付(CD)流程中,以便在每次代码更改后自动运行测试。这有助于快速发现和修复问题,并确保软件质量。
维护和更新测试脚本:随着项目的发展和需求的变化,需要定期维护和更新自动化测试脚本,以确保其与应用程序的最新版本保持同步。
JAVA_HOME:一个系统环境变量,它指向Java Development Kit(JDK)的安装目录。在系统变量中新建一个名为JAVA_HOME的变量,并将其值设置为JDK的安装目录路径。这是为了让系统知道在哪里可以找到Java开发工具。
Path:一个系统环境变量,它用于定义可执行文件的搜索路径。在Path中添加了%JAVA_HOME%\bin;可以让系统在执行命令时自动搜索到JDK的可执行文件(如java、javac等)。其将JDK的可执行文件目录包含在可执行文件的搜索路径中。
CLASSPATH:一个环境变量,用于指定Java类库的搜索路径,它告诉Java虚拟机(JVM)在哪里查找类文件。在系统变量中新建一个名为CLASSPATH的变量,并将其值设置为所需的类路径。比如设置%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;,它们分别指向JDK的类库和tools.jar文件,以便Java应用程序可以访问这些库和工具。
Path和CLASSPATH是两个不同的环境变量,它们在Java开发中具有不同的作用和用途。Path确保系统可以找到Java的可执行文件,而CLASSPATH确保JVM可以找到应用程序所需的类文件。
Path
作用:Path环境变量是操作系统级别的环境变量,用于指定系统在哪里查找可执行文件。当您在命令行中运行可执行程序时,操作系统会根据Path中的路径来查找这些程序。对于Java开发,将%JAVA_HOME%\bin;添加到Path中可以让系统识别并运行JDK中的Java工具和可执行文件,如java、javac等。
使用场景:Path主要用于配置系统的执行路径,以确保系统可以找到所需的可执行文件。它不涉及Java类的加载,只关注可执行文件的查找和执行。
CLASSPATH
作用:CLASSPATH环境变量是Java虚拟机(JVM)的环境变量,用于指定Java类加载器在哪里查找类文件。当Java应用程序运行时,JVM会根据CLASSPATH设置来查找和加载类文件。CLASSPATH用于定义Java应用程序的类路径,以告诉JVM在哪里查找和加载应用程序所需的类文件和库。
使用场景:CLASSPATH主要用于配置Java应用程序的类加载路径,以确保JVM可以找到应用程序依赖的类文件。它是Java开发中非常重要的环境变量,因为它决定了哪些类和库可以在应用程序中使用。
Linux三剑客(grep、sed、awk)
"Linux三剑客"是指在Linux/Unix操作系统上常用的三个文本处理工具,这三个工具通常结合使用,可以实现各种复杂的文本处理和数据分析任务,被广泛用于文本处理、日志分析、数据提取和报表生成等领域。因为它们的功能强大,所以被戏称为"Linux三剑客"。
grep:grep是"Global Regular Expression Print"的缩写,它是一种强大的文本搜索工具。grep用于在文件或文本流中查找指定的模式(正则表达式),并输出匹配的行。它经常用于日志分析、文本搜索和数据提取等任务。
sed:sed是"Stream Editor"的缩写,它是一种用于文本编辑的流式工具。sed可以对文本流进行各种编辑操作,如替换、删除、插入、转换等,通常使用基于正则表达式的规则来操作文本。
awk:awk是一种用于文本处理和报表生成的编程语言和工具。awk以文本的行为单位进行处理,可以根据特定的字段或列执行各种操作,如计算、过滤、格式化输出等。它的灵活性和功能强大,使其成为文本处理任务的理想工具。
grep 主要用于文本搜索,查找文件中的内容;而 find 主要用于文件系统搜索,查找文件名称和目录。
grep 用于在文件或文本中搜索指定的文本模式(正则表达式),并输出包含匹配模式的行。它的主要目的是文本搜索和匹配。find 用于搜索文件系统中的文件和目录,根据文件名、大小、权限等条件来查找文件。它的主要目的是查找文件和目录,而不涉及文本内容的匹配。