0


软件测试方法总结

一,软件测试的方法

1,白盒测试: 又称为结构测试或逻辑驱动测试,是一种按照程序内部逻辑结构和编码结构,设计测试数据并完成测试的一种测试方法。

2,黑盒测试: 又称为数据驱动测试,把测试对象当做看不见的黑盒,在完全不考虑程序内部结构和处理过程的情况下,测试者仅依据程序功能的需求规范考虑,确定测试用例和推断测试结果的正确性,它是站在使用软件或程序的角度,从输入数据与输出数据的对应关系出发进行的测试。

3,灰盒测试: 是一种综合测试法,它将“黑盒”测试与“白盒”测试结合在一起,是基于程序运行时的外部表现又结合内部逻辑结构来设计用例,执行程序并采集路径执行信息和外部用户接口结果的测试技术。

二,软件测试的设计步骤

1、需求分析、需求评审:需求分析和评审就是分析客户的需求可不可行,需要怎么进行测试。

2、编写测试计划:编写测试计划通俗一点讲就是什么人在什么时间做什么事,最后产出什么东西。测试人员要测试哪些模块、在什么期限内,提交哪些文档。

3、编写测试用例、用例评审:测试用例就是指导测试的文档,比如我们要测试商城登录、买东西等功能,通过测试方法和策略设计测试用例。评审就是评价审查,不能想当然该怎么测。不能只是输入正确的用户名和密码,能登录进去就完事了。作为软测工程师需要有破坏性,比如密码输错时怎么办,会不会有相应的报错等等。

4、执行测试、bug.回归测试:bug就是缺陷,发现bug之后,要提交给开发人员让他们去修改,然后进行回归测试,验证开发人员有没有改好。

5、编写测试总结报告:Bug都改好了之后,要编写测试总结报告,后面遇到问题的时候可以拿出数据说话。

三,开发过程测试流程

为了对设备及软件整体质量进行综合测试,有必要将单元测试阶段、硬件集成阶段、软件集成阶段、整机测试阶段以及验证测试阶段的测试项合并到测试大纲中。从整个系统开发的质量控制而言,开发和测试需要贯穿在整个过程中,设计测试项目和测试过程,都是系统质量控制所必须的。

综上所述,在系统设计开发的同时,有必要并行地从设计需求、设计和实施覆盖性、设计或需求变更等多个角度进行测试设计和实施。本测试大纲主要用于原型研发阶段的测试项和测试纲要编制,适宜于小批量情况下研发过程的测试验证。对于开发者,开发应该和测试是同时进行的。

1,模块测试

模块测试是针对软件设计的最小单位(程序模块或功能模块),进行正确性检验的测试工作。其目的在于检验程序各模块是否存在各种差错,是否能正确地实现了其功能,满足其性能和接口要求。各个单元模块具有较强的专业特性,单元测试阶段往往会由该模块的设计开发人员直接测试并给出测试结论。这种自测试方式带有隐患,难以发觉设计漏洞和接口控制漏洞,往往在交付给下一集成环节时暴露大量的功能和控制类问题。设计人员草率完成的接口设计和自测,总会在集成阶段引起集成功能异常。这类问题是直接影响系统质量和推进进度的关键因素。模块测试主要用于各个独立模块的功能测试和性能指标测试,一般一个单元模块由一人独立维护,具有相对独立的技术领域,对外有清晰的功能和控制接口。模块测试中可以作为单元测试目标的模块包括:

(1)硬件的独立板卡、电源模块、功放模块、天线模块、TR组件;

(2)软件的调制解调、信道编码、交织等组件、PL端xilinx官网IP或自搭建IP、软件C语言中的功能函数、PS与PL之间交互的AXI模块;

(3)硬件驱动的各类接口芯片驱动。

举例:ZYNQ PL通过GP接口传输256/128/48字节的数据到PS端,使用AXI交互模块

AXI交互长度

测试内容

测试方法

256字节

128字节

48字节

数据传输模块的连续性,保证做到不丢数

通过PL添加帧计数,PS端接收到的帧计数如果连续两包之差不等于1,则存在传输丢包的情况。

数据传输模块的可靠性,保证速度能达到

PS端通过计算接收的数据大小乘以包数除以固定的时间,计算出接收数据的速度,打印出数据传输的速度。

数据传输模块的稳定性,确保能长时期运行

将本模块多运行几个小时,看是否有越界等错误,长时间实践才能保证它的稳定性

2,集成测试:

集成测试是模块测试的多级扩展,是在模块测试的基础上进行的一种有序测试。旨在检验软件模块之间的接口关系,以期望通过测试发现各软件模块接口之间存在的问题,最终把经过测试的模块组成符合设计要求的软件。集成测试阶段主要用于系统中具有技术类似性模块形成分子系统的集成过程中和集成后测试。单元的集成过程往往具有一定的顺序特性,每增加一个模块,系统的功能可能是叠加式的,也可能是完全革新的。因此,集成测试需要作为分子系统设计的一部分。

集成测试的质量控制要点,在于每个模块集成后,一个分子系统功能变化的验证,集成测试需要跟随集成顺序。在集成测试大纲拟制时,重点设计的即是集成顺序和测试顺序。在实际的系统集成推进过程中,每个模块或者分子系统到位的时间不一样,一般无法等到每个模块都完成测试后进行。因此,集成和集成测试是根据系统的层次结构或者模块连接关系,从内向外迭代式进行的。

举例:

集成测试目标

集成测试内容

软件功能函数、PS与PL之间交互的AXI模块、中断测试;

确定函数的输入输出接口,写完函数后,自己模拟输入变量判断输出内容是否是预期功能。判断函数的地址是否正确,内存有无越界,是否是野指针,输入参数是否合法,输出参数或返回值是否正常。

配置中断,使用VIO进行触发。

对AXI交互模块进行连续性,稳定性测试。

软件接口测试

  1. CAN:上电后做一个收发校验,环路测试,能CAN1对CAN2发送,对错误信息进行打印。
  2. 串口:对各个串口进行进行验证的时候,判断有几路串口,分析串口的解帧功能是否正常。上电之后,连上串口,通过串口进入我们的系统进行各种操作。
  3. 网口:我们的上位机一般都是通过网口与我们的板卡进行通信。判断网口是否正常,连接网线后,对我们设置的IP地址进行ping,能ping通即为正常。TCP与UDP模式的正常与否,我们在上位机设置模式后,通过TCP&UDP测试工具对其进行测试。
  4. DDR:对相应的地址进行一个写数的操作,一直写,可以读出我们DDR的大小。
  5. AD:我们采集的时候会设置先采递增数,去读我们的寄存器是否有数以及数是否正常,再判断AD模块以及逻辑是否正常。正常以后在切换到采集实数,通过上位机波形判断是否正常。

调制解调、信道编码、交织等PL模块、PL端xilinx官网IP或自搭建IP

增加VIO进行变量输入,ILA在线抓取数据,设置触发变量进行在线触发。对IP核进行稳定性和数据连续性的测试。

硬件驱动的各类接口芯片驱动

在ubuntu编译.ko文件并加载驱动到硬件,用main中测试例程调用驱动接口测试。

3,系统测试:

是为判断系统是否符合要求而对集成的软、硬件系统进行的测试活动、它是将已经集成好的软件系统,作为基于整个计算机系统的一个元素,与计算机硬件、外设、某些支持软件、人员、数据等其他系统元素结合在一起,在实际运行环境下,对计算机系统进行一系列的组装测试和确认测试。

系统测试目标

系统测试内容

系统工作流程测试

按照协议,在main中进行对串行的流程和并行的线程进行测试。上电之后会对各个接口进行使能处理,也就是selectmap,而当我们selectmap之后,会发现我们的一些接口的回执信息报错。那么我们就需要判断我们自己的代码以及逻辑那边是否正常。读取寄存器,判断读出来的数是否正常。离散线:上电之后进行对应的使能操作,从对应的寄存器进行读取,判断它是否正常。

软硬件稳定性测试

是否数组或内存有越界,速度变慢,野指针造成的内存没用被释放。

环境测试中高低温测试,耐压测试,防水防雷防尘防爆测试

温度电压:我们从BIT信息中获取以后,然后读取寄存器,看对应的值是否正常。提供器件的正常工作温度范围内最高温和最低温环境来检验设备是否还能正常启动,各个硬件是否还能正常工作。密封后进行淋水操作和全浸泡,测试系统功能。

四,常见五种软件测试用例设计方法

1,等价类划分法

  顾名思义,等价类划分,就是将测试的范围划分成几个互不相交的子集,他们的并集是全集,从每个子集选出若干个有代表性的值作为测试用例。 等价类的划分,最关键的是子集的划分。非数字还可以继续划分子集:字母,特殊字符。

举例:测试一个用户名是否合法,用户名的定义为:8位数字组成的字符。 我们可以先划分子集:空用户名,1-7位数字,8位数字,9位或以上数字,非数字。 然后从每个子集选出若干个有代表性的值:

(1)空用户名:“” (无效等价类实例,指对于软件规格说明而言,没有意义的、不合理的输入) (2)1-7位数字:”234” (无效等价类实例) (3)8位数字:”00000000” (有效等价类实例,能检验程序是否实现了规格说明中所规定的功能和性能) (4)9位或以上数字:”1234567890” (无效等价类实例) (5)非数字:”abc&!!!” (无效等价类实例)

2,正交实验法

  用语言描述正交实验法会很抽象难懂,就是在各因素互相独立的情况下,设计出一种特殊的表格,找出能以少数替代全面的测试用例。其中,上面所说的特殊表格就是正交表,是按照一定规则生成的表。虽然说是特殊的表格,实际表现形式跟一般的表格没有什么区别,正交表的主要特征是,“均匀分布,整齐划一”,正是因为“均匀”的,所以才能以少数代替全部。利用正交实验设计测试用例的步骤:

(1)、提取功能说明,构造因子--状态表。

(2)、加权筛选,生成因素分析表。对因子与状态的选择可按其重要程度分别加权,可根据各个因子及状态的作用大小,出现频率的大小以及测试的需要,确定权值的大小。

(3)、利用正交表构造测试数据集。利用正交实验设计方法设计测试用例,比使用等价类划分,边界值分析,因果图等方法有以下优点:节省测试工作工时;可控制生成的测试用例数量;测试用例具有一定的覆盖率。

举例:

游戏账号注册的一个窗口。我们可以看到要测试的控件有3个:邮箱地址、密码、验证码,也就是要考虑的因素有三个;而每个因素里的状态有两个:填与不填。 选择正交表时分析一下:(1)、表中的因素数>=3;(2)、表中至少有3个因素数的水平数>=2;(3)、行数取最少的一个。

3,边界值分析法

大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。选出的测试用例,应选取正好等于、刚刚大于、刚刚小于边界的值。边界值可以算是为了配合等价类而加的一个限制条件,一般会根据略小于最小值、略大于最大值、等于最小值/最大值进行边界值的一些验证;关于区间型数据边界值的测试,大多都是略小于最小值和略大于最大值是不满足要求的,中间的数据是满足需求的。

举例: 购买一个宝箱,一次性最多只能购买5个,以边界值的标准可选取5个(正好等于)、6个(刚刚大于)、4个(刚刚小于),3个(正常值)作为边界值来测试。

4、判定表法

  又称为策略表,基于策略表的测试,是功能测试中最严密的测试方法。该方法适合于逻辑判断复杂的场景,通过穷举条件获得结果,对结果再进行优化合并,会得到一个判断清晰的策略表。

  举例:对于功率大于50马力的机器,并且维修记录不全或已运行10年以上的机器,应给予优先的维修处理。

  条件桩:

C1:功率大于50马力吗? C2:维修记录不全吗? C3:运行超过10年吗?

  动作桩:

A1:进行优先处理 A2:作其他处理

5,错误推测法

错误推测法是指:在测试程序时,人们可以根据经验或直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的测试用例的方法。 这种方法没有固定的形式,依靠的是经验和直觉。没有确定的步骤,很大程度上是凭经验, 结合以往测试经验和直觉设计软件在功能和流程上可能存在的各种错误,进行容错性测试。

举例:

输入数据为零或输出数据为零时容易发生错误的情况,所以可选择输入值为零的例子,以及使输出值为零的例子;

标签: unit testing python c++

本文转载自: https://blog.csdn.net/wangjie36/article/details/124393541
版权归原作者 寒听雪落 所有, 如有侵权,请联系我们删除。

“软件测试方法总结”的评论:

还没有评论