基于单词天天背小程序的黑盒测试技术的研究与分析V4-

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

本科毕业设计(论文)
基于单词天天背小程序的黑盒测试技术的研究与分析
Research and Analysis of Black box Testing Technology Based on WeChat Mini Program
中文摘要
信息时代下互联网蓬勃发展,越来越多的软件产品逐渐问世,为了保障软件的质量,测试是必要的。

软件测试就是指在规定的条件下对程序进行测试实施操作,从而发现程序中所存在的问题,去衡量软件的质量,并对其进行评估,看是否能够满足设计的要求。

而黑盒测试则是非常重要的,黑盒测试即是功能测试,就是在用户的角度,去对软件进行输入数据,查看输出数据是否与输入相对应。

目前在软件测试中黑盒测试相当于基础,然而测试用例在黑盒测试中是位于核心的位置,在进行黑盒测试前根据需求文档进行测试用例的编写,并执行测试用例,能够在较短的时间内发现缺陷,保证软件的质量。

本课题主要内容以黑盒测试技术的研究与分析为主,以单词天天背微信小程序为实例,利用所学的测试用例的设计方法以及实习中所学到的测试用例设计方法相结合执行操作测试,从而进行对基于单词天天背微信小程序的黑盒测试技术的研究与分析。

关键词:黑盒测试测试用例软件测试
Abstract
With the rapid development of the Internet in the Information Age, more and more software products come out gradually. Software testing is to test and operate the program under the specified conditions, so as to find the problems in the program, to measure the quality of the software, and to evaluate it to see whether it can meet the design requirements.The black box test is very important. The black box test is the function test, which is to input data to the software from the user's perspective and check whether the output data corresponds to the input.At present, the black box test is equivalent to the foundation in the software test, but the test case is located in the core position in the black box test. Before the black box test, the test case is written according to the requirements document, and the test case is executed, which can find the defects in a short time and ensure the quality of the software.
The research and analysis of black-box testing technology is the main content of this paper, using the method of the design of the test case and the method of the design of the test case which we have learned in the practice to carry out the operation test, thus carries on the research and the analysis to the black box test technology which based on the word daily back Wechat applet.
Key words:Black box testing Test case Software testing
目录
第一章绪论 (1)
1.1课题研究背景 (1)
1.2课题研究意义与目的 (1)
1.3国内外研究现状 (2)
1.4创新思路 (2)
1.5课题研究的主要内容 (2)
1.6本章小结 (3)
第二章黑盒测试技术的研究 (4)
2.1软件测试中的黑盒测试 (4)
2.2黑盒测试的方法研究 (4)
2.3黑盒测试的流程研究 (5)
2.4黑盒测试与白盒测试的对比研究 (6)
2.5基于单词天天背小程序的黑盒测试技术的研究 (7)
2.6本章小结 (7)
第三章黑盒测试设计研究 (8)
3.1测试设计工具研究 (8)
3.2用例设计规范研究 (8)
3.3测试设计方法研究 (9)
3.3.1等价类划分法研究 (9)
3.3.2边界值分析法研究 (9)
3.3.3场景法研究 (10)
3.3.4因果图法研究 (11)
3.3.5判定表驱动法研究 (11)
3.3.6错误推测法研究 (12)
3.4创新测试用例方法研究 (12)
3.4.1探索式测试法的定义的研究 (12)
3.4.2探索式测试法的方法研究 (12)
3.4.3探索式测试法的优缺点 (14)
3.5本章小结 (15)
第四章基于单词天天背小程序的黑盒测试技术的分析 (16)
4.1测试需求分析 (16)
4.1.1功能需求分析 (16)
4.1.2业务流程分析 (16)
4.2测试计划 (20)
4.3测试用例设计 (22)
4.4测试脚本设计 (23)
4.5本章小结 (28)
第五章测试结果分析 (29)
5.1测试实施 (29)
5.2测试结果与分析 (32)
5.3测试产生的问题和解决方案 (35)
5.4本章小结 (35)
第六章总结与展望 (36)
6.1 结论与创新 (36)
6.2 后续研究展望 (36)
6.3 本章小结 (36)
参考文献 (37)
致谢 (38)
图表目录
图2-1 软件测试组成占比 (4)
图2- 2 测试用例设计方法 (5)
图 3 等价类划分法 (9)
图 4 边界值分析法 (10)
图 5 基本流与备选流 (10)
图 6 设计场景 (10)
图 7 设计测试用例 (11)
图 8 因果图 (11)
图 9 策略表 (11)
图 10 错误推测法 (12)
图 11 功能分析 (16)
图 12 切换计划 (17)
图 13 开始学习 (18)
图 14 错题本 (19)
图 15 切换模式 (20)
图 16 切换计划测试用例 (22)
图 17 开始学习测试用例 (22)
图 18 错题本测试用例 (23)
图 19 切换模式测试用例 (23)
图 20 切换计划测试脚本1 (24)
图21 切换计划测试脚本2 (25)
图 22 开始学习测试脚本1 (26)
图 23 开始学习测试脚本2 (26)
图 24 错题本测试脚本 (27)
图 25 切换计划测试脚本 (27)
图 26 测试实施流程图 (29)
图 27 连接真机1 (30)
图 28 连接真机2 (30)
图 29 脚本录制 (30)
图 30 测试结果报告 (31)
图 31 缺陷报告 (31)
图 32 测试结果 (32)
图 33 切换计划测试报告 (33)
图 34 开始学习测试报告 (33)
图 35 错题本测试报告 (34)
图 36 切换计划测试报告 (34)
表 1 测试进度 (20)
表 2 功能测试工作进度 (20)
表 3 测试资源 (21)
表 4 测试环境 (21)
表 5 测试工具 (21)
第一章绪论
1.1课题研究背景
从软件测试行业的崛起到如今,在信息时代快速发展的推动下,软件测试技术逐渐得到增强,方法也越来越多,但是针对每一款软件时,我们要选择合适的软件测试方法,因为这样可以让我们少走弯路,更加有效率。

黑盒测试在软件测试这一专业当中仍处于主要部分,但是随着测试技术的快速发展,面对各种各样的软件,只测试简单的功能现在的趋势下是不怎么存在的,因此测试人员就得除了简单的功能测试问题外还得定位问题,所以我们需要黑盒测试技术的基础上不断研究分析并进行一定的创新,去提高测试效率以及质量,去发现更多的缺陷并定位问题。

1.2课题研究意义与目的
随着信息时代的快速发展,各类软件应用APP以及网站等越来越多,人们的生活已经离不开信息科技,然而一款软件的问世,是必须经过测试才能问世的,软件测试就是对被测应用进行测试,然后找到错误,再对应用进行质量评估,衡量质量。

而黑盒测试,则是软件测试中的经典测试方法,在国内现状是测试领域的基础,黑盒测试也叫做功能测试,即以手工的方式进行测试,看功能是否存在问题或错误。

在用户的角度,输入数据后查看输出结果。

通过黑盒测试,发现一些功能是否实现,界面是否有什么问题,输入及输出是否有问题等。

能够让我们的软件在被用户使用之前,首先在用户的角度发现软件所存在的问题,加以处理修改,从而确保软件的质量。

比如就以目前的一个单词天天背微信小程序来说,小程序的发布之前,我们必须经过测试,确保这个小程序能够正常使用以及操作后才会发布上线,并且发布前必须进行黑盒测试,因为黑盒测试为测试基础,目前来说也是主要的,高质量高效率的黑盒测试必须经过阅览需求文档后编写全面并且细致的测试用例,而测试用例需要考虑到等价类划分以及场景设计等方法,严格执行测试用例,将发现的缺陷编写成缺陷报告,再次进行回归。

高质量高效率的黑盒测试更能确保一款软件的质量保障。

1.3国内外研究现状
在国外,软件测试是十分重要的,特别是在开发大型系统软件的IBM、Microsoft 等公司,开发和测试人员所占据的比例甚至能达到1:4,软件测试技术中的自动化测试正在飞速发展,正朝着通用化、标准化、网络化和智能化方向发展[1],并开发出大量的测试工具,而黑盒测试虽然是软件测试中的主要部分,但在国外黑盒测试相对少用,侧重于自动化测试工具。

在国内,软件测试也逐渐从一个新兴产业发展起来,越来越多公司重视软件测试,但是技术上仍不完善,测试人员也相对较少,国内软件企业的人员比例则仅仅为5:1。

自动化测试技术也逐渐发展,并且逐渐被广泛应用,但是现在国内现状来说还是比较侧重于黑盒测试这种相对于基础的测试方法,很多公司都以黑盒测试为主要的测试方法。

1.4创新思路
黑盒测试从用户角度出发,不需要了解程序内部的代码及实现,根据用户使用操作进行各个功能点的测试,效率相对低下,我做了一下几点创新:
1、根据需求文档,熟悉利用等价类划分、有效类划分以及场景设计等方法设想更多正常以及不正常的测试用例,并且用思维导图方式编写
2、利用探索式测试法
3、创建简单明了的缺陷,将缺陷按照ID、所在模块、操作步骤、预期结果以及实际结果进行精简描述贴上Bug截图
1.5课题研究的主要内容
本课题主要内容是对黑盒测试技术的研究与分析,并分析出黑盒测试目前在软件测试中的重要性以及作用,针对对于实例“单词天天背”这个微信小程序来进行实践后展开的一个黑盒技术的研究与分析,通过实践的研究与分析,将黑盒测试技术中测试用例方法的设想进一步提升,融合等价类划分、边界值划分以及场景设计法等设想出高质量的测试用例,严格执行测试用例,推高软件质量。

本课题研究与分析主要集中在以下几方面:
1、黑盒测试技术的定义
2、黑盒测试在软件测试中的重要性以及作用
3、黑盒测试中测试用例的方法
4、黑盒测试技术的研究与分析总结
1.6本章小结
在互联网盛期时代,软件测试中的黑盒测试技术地位虽然重要,但是随着时代发展,不规范不完善的黑盒测试技术是会被自动化测试工具所替代的,所以我们要指定规范的黑盒测试方法,并对黑盒测试方法进行一定的创新,完善黑盒测试技术。

第二章黑盒测试技术的研究
2.1软件测试中的黑盒测试
软件测试方法就是指测试软件的方法,而黑盒测试是软件测试的主要部分,是一种比较经典、传统的测试方法,在软件测试中来说相当于基础,黑盒测试是以客户的需求为标准,去进行测试实施,查看软件的功能是否达到。

图2-1 软件测试组成占比
如上图占比图可知,在软件测试中主要分为白盒、黑盒还有灰盒测试,灰盒测试就是黑盒和白盒的混合,在软件测试中黑盒测试是很重要的,黑盒测试主要是界接口、数据的输入、操作还有逻辑,是较为完善的一种测试方法,所以在测试行业来说黑盒测试在软件测试中占比较大,被广泛运用。

2.2黑盒测试的方法研究
黑盒测试也叫功能测试,即以手工方式实施测试操作,然而想要达到较为高质量、高效率的测试效果,那么测试的方法是很讲究的,把所有可能的输入都进行测试,才能检测出程序中所有的错误。

所以我们要不断地在用户角度设想出更多合法、有效的输入,以及不合法、无效的输入。

将所有可能都测试出来,保证软件无缺陷是不可能的,所以我们需要有针对性的测试,设计好完善的测试用例,规范执
行测试用例。

黑盒测试当中设计测试用例较为常见的方法有以下六种,如:等价类划分、边界值、场景、错误推测、因果图、判定表驱动。

图2- 2 测试用例设计方法
测试用例设计的方法有很多,但是常见的主要有上图所示这几种,其中最为常用的有边界值分析法、等价类划分法以及场景设计法,边界值分析法;等价类划分法,输入有效与无效的数据进行对比,检验出更多的可能性与情况。

场景设计法设想出各种正常与不正常的操作场景,对程序进行验证,发现更多罕见的错误操作;因果图法、判定表驱动法以及错误推测法用作辅助,能够发现更多程序上所存在的错误。

2.3黑盒测试的流程研究
1、测试计划
测试计划就是根据需求文档,对需求文档进行分析后开始编写的测试计划,根据测试计划中所分配、安排的时间、使用的工具、人员所负责的工作、功能测试的标准来进行开展测试工作,查看程序是否符合测试计划中需求的要求,制定一个完善的测试计划能够大大提高测试效率。

2、测试设计
测试设计就是通过分析测试计划和需求文档,然后划分功能点,分为一个个可以执行操作的程序,对这些程序结合测试用例设计方法设计出完善的测试用例,这会影响到测试的结果,所以必须重视。

3、测试开发
测试开发就是软件在编码的时候所作的测试工作,在开发人员提供的测试环境等基础上进行测试用例的编写。

可用思维导图工具进行用例的编写,细化分明每个子功能的操作步骤,备注其操作步骤下的运行环境以及状态;对每一个操作中数据的输入与预期输出进行描述。

4、测试执行
执行测试就是对已经设计好了的用例进行执行操作,在执行测试用例的过程中对发现的问题判断缺陷等级,并描述缺陷记录好,方便后续开发人员的修复,另外还要进行跟踪管理。

5、测试评估
测试评估就是经过执行测试后,对测试的覆盖率以及缺陷报告进行分析,在被测软件达到一个稳定的程度,对测试结果进行总结评定,看看软件是否满足测试标准,达到预期结果。

2.4黑盒测试与白盒测试的对比研究
软件测试主要方法为黑盒测试和白盒测试,黑盒测试主要是在客户需求文档的基础上,对软件进行功能测试,看看是否达到客户需求的要求,白盒测试主要是应用的结构与算法。

白盒测试是在测试实施过程的前期,而黑盒测试则是测试实施过程的后期。

一个程序有外部与内部两个结构,而黑盒测试主要在于程序的外部结构,黑盒测试的作用是检测功能、界面显示情况、是否有错误、数据结构等是否有错误。

并且黑盒的优点就是相对简单,不用考虑程序的代码,只是在用户的角度出发,更加易于发现错误,黑盒测试对需求文档进行分析的基础上进行测试,易于发现哪些功能已实现,因此做自动化测试时相对简单;黑盒测试的缺点在于代码覆盖率较低。

白盒测试就是相当于一个可以看得见的盒子,根据应用内部结构设计测试用例。

在不同的地方查看是否存在问题,查看实际结果跟预期结果是不是一致的。

白盒测试的优点在于能够提高代码的覆盖率,快速地发现代码中所存在的问题;而缺点在于程序运行会有许多不同的路径,没办法将所有的路径都进行测试,并且是基于代码的测试,没办法知道是否与设计相符,所以有可能会遗漏一些功能需求,并且系统比较大的时候测试开销会很大[2]。

黑盒测试与白盒测试主要的区别就是黑盒测试不涉及到程序结构,根据需求文档设计测试用例,但是不能将代码全部进行测试,而白盒测试则是在于程序内部的逻辑结构,用程序结构设计测试用例,对所有逻辑路径进行测试[3]。

本次课题选择黑盒测试技术研究主要因为目前国内软件测试领域中黑盒测试仍占主要部分,作为测试人员来说,黑盒测试是基础,研究黑盒测试技术有助于测试人员技术上的扎根更稳,并且黑盒测试技术需要不断创新,所以研究黑盒测试是个不二选择。

2.5基于单词天天背小程序的黑盒测试技术的研究
近年来,微信小程序方便广大人民群众的日常生活,推动广大人民群众的科技使用以及扩展学习途径以及质量,推广出各种学习上的小程序,如“单词天天背”小程序,在这种网络遍布各地时期,网站以及各种软件或者小程序普遍进入盛期,在各种网站、软件等产品问世的推动下,软件测试随着被推动发展,此时测试中的黑盒测试方法作为测试的主要方法,黑盒测试技术被国内众多企业广泛运用。

一、黑盒测试原理:
黑盒测试是在用户角度,输入数据后查看输出数据,检测每一个功能能不能正常使用。

二、测试流程:
1、需求:对产品经理给到的需求文档进行分析;
2、测试计划:分析需求文档后开始预估测试所需要的时间、人力等进行分配与时间安排;
3、测试用例设计:分析需求后对被测产品划分功能点,结合等价类划分、场景设计、边界值划分等方法设计出合理的测试用例;
4、执行测试:按照测试用例上的详细步骤执行测试用例;
5、记录执行测试结果,追踪、管理缺陷:对Bug进行缺陷等级划分,待缺陷修复后进行回归测试;
6、线上用户体验。

2.6本章小结
黑盒测试在软件测试技术中是十分重要的,黑盒测试技术的核心就是测试用例的设计,测试用例设计的方法有很多,需要结合各种测试用例设计的方法去设计测试用例,不断设想更多的不合法操作去提高软件的质量,当然除此之外,缺陷的管理也是十分重要的,要确切缺陷的修复,在回归测试中严格执行。

第三章黑盒测试设计研究
3.1测试设计工具研究
目前市面使用的测试设计工具有很多,包含Appium、Selenium、Loadrunner、JMeter、Airtest以及Postman等。

Appium是一款移动应用自动化测试开源工具。

Appium自动化测试工具的优点在于支持跨平台;支持多种语言;支持Windows桌面平台上的原生、移动Web和混合应用[4]。

缺点在于兼容性差,如:高版本与低版本手机的切换;输入法必须用Appium 的自带输入法;长时间运行不太稳定;对安卓的toast组件无法操作。

Selenium是一款网站应用自动化测试工具,主要用于测试兼容性。

Selenium的优点在于操作方便,容易上手;支持跨域;代码容易转换生成其他语言的用例代码。

缺点在于只支持Mozilla Firefox;录制脚本回放时稳定性不强。

Loadrunner是一款测试性能的负载自动化测试工具,主要用于测试性能。

Loadrunne r的优点在于简单易懂,操作方便;预测结果概率在0到1。

缺点在于预测结果呈“S”型,很多区间的变量变化对目标概率的影响没有区分度,无法确定阀值[5]。

JMeter是一款压力测试自动化测试工具,主要用于压力测试。

JMeter优点在于测试脚本不需要编程,维护方便;不依赖界面;可以跳过页面限制。

缺点在于无法测试验证页面;断言功能不够强;脚本无法判断是否正确运行。

Airtest是一款基于图像识别和poco控件识别的一款UI自动化测试工具。

Airtest 的优点在于支持屏幕录制方式、截图、代码进行脚本录制;操作简单易懂,容易上手;工具界面与手机屏幕实时;支持IOS、Android、H5;缺点在于支持语言以Python 为主,有局限性。

Postman是一款接口测试自动测试工具,Postman的优点在于简单易懂,实用且美观;调试方便。

缺点在于无法实现脚本与脚本的串联调用;API场景测试单一。

以这六种测试用例设计工具,本次课题我选用了Airtest这款UI自动化测试工具,因为Airtest的安装以及配置相对简单,操作也比较容易上手,连接真机进行脚本录制简单快捷,有测试报告,实用性较高。

3.2用例设计规范研究
测试用例的设计对整个测试工作十分重要,决定着测试的成败,所以设计好一个完善的测试用例是很重要的,测试人员要学会如何设计出最完善的测试用例。


在测试行业中设计测试用例的规范如下:
一、根据需求文档提到的功能模块进行划分,细分到各项子功能都具有可操作性
二、结合《概要设计》和《详细设计》,对每个子功能进行测试用例的设计,选一些有代表性的数据进行测试,其中我们要遵守设计测试用例的原则:
1、对一般的功能进行正常操作下的输入跟输出;
2、对一些特殊的子功能要考虑它的正常功能(合理、有意义的数据)以及不合理、无意义的数据;
3、可以根据经验和直觉对一些比较容易出错的子功能进行预测。

三、编写测试用例,描述各测试用例。

四、设计好大概的测试用例后,将测试用例的操作步骤详细化。

本次毕业设计选用了需求文档分析,随后分功能点罗列出来,再进行测试项的细化,添加操作步骤以及测试预期结果。

3.3测试设计方法研究
3.3.1等价类划分法研究
等价类划分法主要分为有效和无效等价类,有效等价类就是指正常的、有意义的输入,而无效等价类则是不正常的、无意义的输入(即不正确的输入值);优点在于能够将大部分可能性的代表数据输入进行测试,缺点在于仅仅限制在数据的输入,大多用于输入限制;
图 3 等价类划分法
3.3.2边界值分析法研究
边界值分析法就是对数据的边界值进行测试,经常被用于输入框的长度限制
图 4 边界值分析法
3.3.3场景法研究
场景法设计就是通过设想场景来对被测软件进行用例编写,按照正常的操作场景,在每一步接下来的操作过程中会出现的错误操作作为场景,从而提高测试效果。

场景法由基本流和备用流形成;基本流为正常操作步骤的实施,备用流则是各种在每个流程步骤中可能会出现的错误操作。

1、第一步我们来确定基本流和备选流:
图 5 基本流与备选流
2、第二步我们根据基本流和备选流来确定场景
图 6 设计场景
3、第三步我们来设计测试用例
图 7 设计测试用例
3.3.4因果图法研究
因果图法就是用图解来表示输入的各种组合关系,写出判定表,从而设计相应的测试用例,适合于检查程序输入条件的各种复杂组合情况。

先画因果图,将其转成判定表,再根据判定表来编写测试用例。

图 8 因果图
3.3.5判定表驱动法研究
判定表驱动法也叫做策略表,是黑盒测试中最严密的测试方法。

这个方法适合在复杂的场景下使用,通过穷举条件获得结果,再对结果进行结合,优化分析,得出一个判断清晰的策略表
图 9 策略表
3.3.6错误推测法研究
错误推测法就是通过测试的经验和直觉来推测程序中的可能存在的错误。

图 10 错误推测法
3.4创新测试用例方法研究
3.4.1探索式测试法的定义的研究
我们在执行完测试用例,或者测试一些没有测试用例的需求,或者线上自由测试时,如果漫无目的、没有条理,缺乏方针地盲目测试,就会浪费很多时间,效率低下,Bug发现率也不高。

这里探索式测试就适用于我们,它有很多指导方法可以指导我们怎么去发现更多的缺陷和验证功能,保证良好的测试覆盖率。

探索式测试是一种重要的测试方法。

探索式测试就是“探索”,它强调了我们在测试中的未知因素和我们对被测系统进行主动学习的过程,它还强调测试设计和测试执行的同时性。

探索式测试强调的是思维发散,一次的测试过程必须遵循SMART 原则,在一定的时间周期内围绕测试目标做探索式测试,并根据测试结果进行分析,不断优化调整测试方向[7]。

3.4.2探索式测试法的方法研究
3.4.2.1基础类方法
1、指南测试法
指南法就是分析需求文档、用户手册等,按照操作进行的测试,检验产品功能是否按照需求预期实现。

2、反叛测试法
输入不可能的、不合法数据,检验程序对于异常输入数据的处理能力。

包括非法输入内容和错误的输入顺序。

相关文档
最新文档