性能测试主要测试哪些方面,性能测试主要测试哪些方面内容

9 0 2024-07-30
做测试开发都需要学习哪些技术?现如今,随着互联网技术飞速的发展,当一个网站或者产品做出来,头一个想到的就是测试,那么软件测试都学习什么技术呢?其实啊,对于任何工程产品(注意是任何工程产品)都可以使用以下两种方法之一进行测试。黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。白盒测试……

做测试开发都需要学习哪些技术?

现如今,随着互联网技术飞速的发展,当一个网站或者产品做出来,头一个想到的就是测试,那么软件测试都学习什么技术呢?其实啊,对于任何工程产品(注意是任何工程产品)都可以使用以下两种方法之一进行测试。

黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。

白盒测试:已知产品的内部工作过程,可以经由测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。

性能测试主要测试哪些方面,性能测试主要测试哪些方面内容
(图片来源网络,侵删)

软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试或数据驱动测试。黑盒测试主要是为了发现以下几类错误:

1、是否有不正确或遗漏的功能

2、在接口上,输入是否能正确的接受?能否输出正确的结果?

性能测试主要测试哪些方面,性能测试主要测试哪些方面内容
(图片来源网络,侵删)

3、是否有数据结构错误或外部信息(例如数据文件)访问错误?

4、性能上是否能够满足要求?

5、是否有初始化或终止性错误?

性能测试主要测试哪些方面,性能测试主要测试哪些方面内容
(图片来源网络,侵删)

软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。以在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。白盒测试主要是想对程序模块进行如下检查:

测试开发需要学习一系列技术,包括以下几个方面:

  1. 编程语言:测试开发人员需要掌握至少一种编程语言,用于编写自动化测试脚本和工具。常见的编程语言包括:
  • Python:Python是一种简洁而易读的脚本语言,在测试领域有广泛应用。它提供了丰富的工具和库,如unittest和pytest,可用于编写自动化测试脚本。
  • Java:Java是一种广泛使用的面向对象编程语言,特别适合在大型项目中进行测试开发。JUnit是Java中常用的单元测试框架。
  1. 自动化测试框架:自动化测试框架可以帮助测试开发人员更高效地编写和执行自动化测试脚本。常见的自动化测试框架包括:
  • Selenium:Selenium是一个用于Web应用程序的自动化测试框架。它支持多种编程语言,并提供了丰富的API和工具,用于模拟用户行为、执行测试用例和生成测试报告。
  • Appium:Appium是一个用于移动应用程序的自动化测试框架。它支持多种移动操作系统,并提供了与Selenium类似的API,用于编写跨平台的移动应用自动化测试脚本。
  1. 版本控制系统:版本控制系统用于管理和跟踪测试代码的变更和版本。最常用的版本控制系统是Git,它可以帮助测试开发人员协作、合并代码和管理代码库。
  2. 软件测试基础知识:测试开发人员需要了解软件测试的基本原理和方法,包括:
  • 测试计划和测试策略:制定测试计划和策略,确定测试范围和目标,并规划测试资源和时间。
  • 测试设计技巧:学习测试设计技巧,如边界值分析、等价类划分和路径覆盖等,以编写高效和全面的测试用例。
  • 缺陷管理:了解缺陷管理流程和工具,包括缺陷报告、跟踪和验证等。
  • 性能测试:掌握性能测试的基本概念和工具,如负载测试和压力测试,以确保应用程序在不同负载下的稳定性和性能。

举例来说,一个测试开发人员可以使用Python编写Selenium自动化测试脚本,使用Git进行版本控制,并基于测试计划和测试策略设计和执行测试用例。他们还可以使用性能测试工具,如JMeter,来评估应用程序的性能。总之,学习这些技术将有助于测试开发人员提高测试效率并确保软件质量。

1、数据结构、网络、操作系统、数据库基础知识;

2、前端:最起码jquery吧,MMVM的起码懂一个React/Angular/VUE,至少会发个POST请求到后端吧;

3、数据库:MySQL、Mongo不用多说吧,其他时序数据库influxdb辅助;

4、操作系统:Linux必备;

5、中间件:Redis,Zookeeper、tomcat起码得会吧;

6、编程语言Java系的:

(1) 打包Maven;

(2) 开发框架Spring/SpringBoot/SpringCloud;

(3)单元测试:JUnit/TestNG;

(4)mock:mockito,powermock等;

这个问题,我正好有一点资格回答一下,因为之前曾在国内某互联网大厂做过测试开发实习生。实习了差不多3个月的时间吧,所以测试开发的基本工作都是有一些了解的,我就我接触到简单的谈一下。

编程语言

一般都是喜欢用脚本Python。因为测试开发的主要工作,我觉得还是自动化测试比较多吧。但是这个自动化测试分为两块,第一就是客户端,第二个就是服务端了。我实习的时候是在客户端组,所以用到的一些东西都是按照客户端来讲。

2.框架

如果是做客户端或者web自动化测试,用的比较多的就是appium自动化测试框架,我之前实习也是用的这个框架,非常好用。而且这个框架还有一个可视化软件,可以帮我们看一些元素的信息,如resource-id等,让自动化测试更简单

3.思维

测试的话,一般为了保证我们的测试质量,我们都需要将各种情况都要考虑到,这就要要求我们qa的思维要比较严密,考虑问题要全面。

4.计算机相关的基础知识

qa为什么要懂计算机基础知识呢?例如数据库、计算机网络呢?可能有的人会疑惑。因为我们自动化测试的时候,经常需要设计一些测试用例,我就举个简单例子,比如现在需要你去测试某个后端API,你需要写一些case,那么如果你不懂数据库,怎么写case?还有就是我们经常在定位bug的时候,需要使用chaless等工具抓包,然后分析body数据;这就要求我们懂网络、数据库等基础知识

5.开发知识

 首先,测试开发并不是所有测试人员进阶路线,更适合那一小撮对开发技术有热情的测试。测试开发其实是一个相对小众需求,尤其是大多数中小型互联网公司基本不需要这样的职位,因为有很多开源的测试工具和测试平台供大家使用。

测试开发应该具备自动化测试技术,但不局限于次,也应该具备平台和工具的开发能力。后者对很多公司来说并不是刚需,当然,很多测试也达不到这个水平。以我最近几年在测试工作中已经比较注重编程能力的锻炼和使用了,真的着手开发工作时仍然补了不少开发知识,尤其是前端开发技术。

  我也不知道我们老大怎么想的,招来几个人来专门做测试开发,也许他以前只带过开发团队觉得测试团队太low,必须招几个测试开发充场面。因为我们公司其实规模并不大!

  这一年,我们也走了很多弯路,虽然,我们已经很注重需求分析和使用体验了,但仍然开发出来的一些功能彻底废了。

  现在的核心工作是通过平台整合研发测试流程,你也许会说,JIRA、禅道都挺好用的不需要搞什么平台!我们公司也在用JIRA,而且是付费的,关键是并不完全贴合我们公司的研发测试流程。

  如果有一个平台可以把需求管理、接口管理、开发测试环境维护、版本管理、缺陷管理、自动化测试执行、性能测试全部串起来,提高研发效率5%,而且只需要投入两三个测试开发,是不是很划算?随着技术团队的不断扩大,这个收益也会进一步放大。我们还省掉了JIRA的费用。

  在你享受开源测试工具的便利时,正是由一些测试开发贡献的,如 airtest、httpRunner、uiautomator2等。

  测试开发需要什么技术?

  当然是开发技术!