首页 > 其他分享 >软件测试(功能、接口、性能、自动化)详解

软件测试(功能、接口、性能、自动化)详解

时间:2024-01-15 11:58:52浏览次数:24  
标签:性能 接口 测试用例 测试 自动化 详解 软件测试

软件测试(功能、接口、性能、自动化)详解

前言:

软件测试是软件开发过程中不可或缺的重要环节,它用于验证软件的质量、可靠性和性能是否符合预期。软件测试涵盖了多个方面,包括功能测试、接口测试、性能测试和自动化测试。

一、软件测试功能测试

测试用例编写是软件测试的基本技能;也有很多人认为测试用例是软件测试的核心;软件测试中最重要的是设计和生成有效的测试用例;测试用例是测试工作的指导,是软件测试的必须遵守的准则。

黑盒测试常见测试用例编写方法

1、等价类

选取少数有代表性的数据,这一类数据等价于这一类的其它值;找出最小的子集,可以发现最多的错误;特性:必须设计的用例;涵盖了大部分情况;

2、边界值

所谓边界条件,是指输入和输出等价类中那些恰好处于边界、超过边界、或在边界以下的状态 ;特征:选择一个或多个元素,以便等价类的每一个边界都经过了测试;与仅仅关注输入条件不同,还需要考虑结果空间(输出等价类)设计测试用例;

3、因果图

输入条件的组合进行分析。用一个系统的方法选择出高效的测试用例集;

分析思路:

a、分析规格说明描述,确定原因和结果,并赋予标识符;

b、分析规格说明语义,找出原因与原因之间,原因与结果之间关系,画出因果图;

c、有些原因与原因之间,原因与结果之间组合不会出现,用记号表明约束或限制条件;

d、因果图转换为判定表;

e、判定表的每一列作为依据,设计测试用例;

4、判定表驱动法

分析和表达多逻辑条件下执行不同操作的情况的工具 ;略过因果图的绘制,直接列出所有组合进行筛选;

5、正交实验法

利用因果图来设计测试用例时, 输入原因与输出结果之间的因果关系,有时很难从软件需求规格说明中得到;往往因果关系非常庞大,以至于测试用例数目巨大,为了有效地、合理地减少测试的工时与费用,可利用正交实验设计方法进行测试用例的设计。

6、功能图法

一个程序的功能包括静态和动态说明。动态说明描述输入数据的次序或转移的次序,和业务流程紧密对应。静态说明描述了输入输出条件之间的对应关系。对于面向市场的产品,其逻辑复杂、组合庞大,必须用动态说明来补充功能说明。 功能图设计方法:功能图方法使用功能图形象地表示程序的功能说明,并机械地生成功能图的测试用例。我们在不同文档中看到的“状态迁移图”、“流程图”、“菜单树”,在一定程度上都是功能图的不同表现,不同测试人员可能对具体方法的使用稍有不同。

7、场景实验法

现在的软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。该方法可以比较生动地描绘出事件触发时的情景,有利于测试设计者设计测试用例,是测试用例更容易理解和执行。

8、错误推断法

基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法;更多的与用户的使用习惯及测试程序中的常见问题为主。

9、需求转化

根据需求,执行需求分析,并编写测试用例。

10、设计文档

参照设计文档,可以理解软件系统内部设计流程及处理机制,对比写好的测试用例,可以在对应功能及模块处新增;

11、探索式测试

无限创意的测试点,永无止境的探索测试;我们要在测试的最前沿发挥洞察力、技术及应变措施,找出产品的缺陷;

二、软件测试接口测试

1、什么是接口测试?

接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。

2、为什么要做接口测试?

a) 如今的系统复杂度不断上升,传统的测试方法成本急剧增加且测试效率大幅下降,接口测试可以提供这种情况下的解决方案。

b) 接口测试相对容易实现自动化持续集成,且相对UI自动化也比较稳定,可以减少人工回归测试人力成本与时间,缩短测试周期,支持后端快速发版需求。接口持续集成是为什么能低成本高收益的根源。

c) 现在很多系统前后端是分离的,从安全层面来说:

1)、只依赖前端进行限制已经完全不能满足系统的安全要求(绕过前面实在太容易), 需要后端同样进行控制,在这种情况下就需要从接口层面进行验证。

2)、前后端传输、日志打印等信息是否加密传输也是需要验证的,特别是涉及到用户的隐私信息,如身份证,银行卡等。

3、如何做接口测试

a、根据后端开发提供的接口测试文档进行接口测试验证

如图:

然后根据接口文档输入url,参数,查看响应是否正确

b、在没有接口文档的情况下,使用抓包工具进行接口数据抓取,抓包工具:fiddler

三、软件测试性能测试

1、性能测试领域分析

根据对项目背景,业务的了解,确定本次性能测试要解决的问题点;是测试系统能否满足实际运行时的需要,还是目前的系统在哪些方面制约系统性能的表现,或者,哪些系统因素导致

系统无法跟上业务发展?确定测试领域,然后具体问题具体分析。

2、用户场景剖析和业务建模

根据对系统业务、用户活跃时间、访问频率、场景交互等各方面的分析,整理一个业务场景表,当然其中最好对用户操作场景、步骤进行详细的描述,为测试脚本开发提供依据。

3、确定性能目标

前面已经确定了本次性能测试的应用领域,接下来就是针对具体的领域关注点,确定性能目标(指标);

比如:

①登录请求到登录成功的页面响应时间不能超过2秒;

②报表审核提交的页面响应时间不能超过5秒;

③文件的上传、下载页面响应时间不超过8秒;

4、性能测试脚本的编写

性能测试工具:loadrunner、jmeter

这里使用jmeter,因为loadrunner安装包太大不够轻便。

jmeter性能测试,就是通过接口对服务器进行高并发访问的,所以脚本的编写的就和接口测试的时候差不多,输入url,参数等

四、软件测试自动化测试

1、ui自动化测试

a、web端ui自动化测试、一般是使用python+selenium,定位页面元素然后通过浏览器驱动,模拟人进行页面操作,实现web端ui自动化测试

b、移动端ui自动化测试、一般是使用python+appium,通过调用Android的jdk,获取app页面元素,模拟人进行app操作,实现移动端ui自动化测试

2、接口自动化测试

接口自动化测试一般使用的是python+requests,或者httpx。这里博主使用的requests,因为比较简单。简单的例子,如图:

 作为一位过来人也是希望大家少走一些弯路,在这里我给大家分享一些自动化测试前进之路的必须品,希望能对你带来帮助。(WEB自动化测试、app自动化测试、接口自动化测试、持续集成、自动化测试开发、大厂面试真题、简历模板等等),相信能使你更好的进步!

留【自动化测试】即可【自动化测试交流】:574737577(备注ccc)icon-default.png?t=N5K3http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=xrACvWJXqJX1zlrdpQu410GFpbypQM25&authKey=ZHry%2F41soNTOmie3GU2BfmuFo%2B%2F0lNcCbQ62NLvSFggrELMILy5YGF73ayPbg5bs&noverify=0&group_code=574737577

 

 

  文章知识点与官方知识档案匹配,可进一步学习相关知识 Python入门技能树首页概览386807 人正在系统学习中 领取资料,咨询问题+小助理 微信名片

标签:性能,接口,测试用例,测试,自动化,详解,软件测试
From: https://www.cnblogs.com/atu168/p/17965066

相关文章

  • 软件测试常考面试题-软件测试面试宝典(一篇足矣)
    软件测试常考面试题-软件测试面试宝典(一篇足矣) 介绍解决锻炼思维问题的思路和方法,从不同角度分析问题,让思维变强大,变宽广的同时在测试方面进行学习和方法的拓展,也会分享读书心得和问题思考。 问:软件测试的原则?答:软件测试的八个原则_山鬼谣弋痕夕的博客-CSDN博客_软件测试......
  • 分享一份软件测试项目实战(web+app+h5+小程序)
    分享一份软件测试项目实战(web+app+h5+小程序)大家好,我是谭叔。本次,谭叔再度出马,给大家找了一个非常适合练手的软件测试项目,此项目涵盖web端、app端、h5端、小程序端,可以说非常之全面。缘起在这之前,谭叔已经推出了九套实战教程。但是,这些教程以web测试和接口测试为主,没有app......
  • 在职阿里6年,一个29岁女软件测试工程师的心声
    在职阿里6年,一个29岁女软件测试工程师的心声简单的先说一下,坐标杭州,14届本科毕业,算上年前在阿里巴巴的面试,一共有面试了有6家公司(因为不想请假,因此只是每个晚上去其他公司面试,所以面试的公司比较少)其中成功的有4家,另外2家失败的原因在于:1.对于系统知识的了解不够全面,在最后......
  • 软件测试/测试开发全日制|Pytest测试框架Fixture作用域详解
    前言Pytest的fixtrue是存在作用域的,比如作用域为函数级别,那么没执行一条用例,就会重新执行一次fixtrue,如果是类级别,那么多个类执行时会在去执行fixture。fixture的作用域有5个,分别是:function,class,module,package,session。有了这些作用域我们可以不用重复的去执行fixture,从......
  • 软件测试/测试开发/全日制|Pytest如何使用autouse实现自动传参
    Pytestfixture之autouse使用写自动化用例会写一些前置的fixture操作,用例需要用到就直接传该函数的参数名称就行了。当用例很多的时候,每次都传这个参数,会比较麻烦。fixture里面有个参数autouse,默认是Fasle没开启的,可以设置为True开启自动使用fixture功能,这样用例就不用每次都去传参......
  • 软件测试/测试开发全日制|Pytest中yield的用法详解
    前言在之前的介绍中,我们已经介绍了fixture的简单用法,但其实fixture还提供了两种非常优雅高效的写法,来完成测试执行前的处理操作与执行后的处理操作,即使用yield或addfinalizer来实现。本文我们将介绍使用yield来实现操作。yield在fixture中的关键字yield主要有两个作用:yield代替retu......
  • html之marquee详解
    html之marquee详解 该标签不是HTML3.2的一部分,并且只支持MSIE3以后内核,所以如果你使用非IE内核浏览器(如:Netscape)可能无法看到下面一些很有意思的效果该标签是个容器标签语法:<marquee></marquee>以下是一个最简单的例子:代码如下:<marquee><fontsize=+3color=red>Hel......
  • 并发重要知识点—线程池详解
    https://blog.csdn.net/qq_40270751/article/details/78843226 创建线程的另一种方法是实现Runnable接口。Runnable接口中只有一个run()方法,它非Thread类子类的类提供的一种激活方式。一个类实现Runnable接口后,并不代表该类是一个“线程”类,不能直接运行,必须通过Thread实例才......
  • 详解UDP协议
    UDP(UserDatagramProtocol,用户数据报协议)是一种无连接、简单、轻量级的传输层协议,用于在计算机网络上发送数据。与TCP(TransmissionControlProtocol,传输控制协议)不同,UDP不提供可靠性、顺序传输和错误恢复,但由于其轻量级的特性,适用于一些实时性要求较高的应用场景。以下是UDP协议......
  • 第一周-transformer详解
     第一周-transformer详解一、搭建教程的环境49.3.1使用Transformer构建语言模型-第1步_哔哩哔哩_bilibili1安装conda详解见blogs2创建python指定环境$condacreate-nmyenvpython=3.6.6$condaactivatemyenv3创建指定的torch环境$condainstallpytorch=1.3.1 -......