




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
广东东软学院本科生毕业设计(论文)基于黑盒测试的移动应用测试设计与实现Testing
Design
and
Implementation
in
Mobile
Application
Based
on
Black
box
Testing中文摘要国内近几年在移动通信领域进步十分迅速,尤其是在通信技术方面的突破较为显著。移动通信终端产业在国内以及国际当中形成了发展的多元化,极大的推动了手机领域的进步。在此背景下,所有生产商都必须确保质量水平,以此提升竞争力。不管是在市场投放、具体设计或是需求定位等方面,全部需要制定完善的质量控制体系,而这些基本上都离不开移动应用的测试环节。通过软件测试能够起到显著增强软件稳定性的作用。本文通过对移动应用的测试进行了详细且全面的分析,同时结合实际案例以及理论研究的方式,制定了部分具备实践价值的优化方案,同时对于实际当中容易出现的问题以及注意事项进行了总结。其中包括通过和黑测试的手段,来设计移动应用的测试方案以及测试计划。对于黑盒测试而言,测试目标具备的相关人员、运转详情以及内部构造全部存在未知性,需要按照规格的标准化水平来进行功能验证,用例设计的相关测试、执行以及测试结果的分析,以及测试工具包括自动化工具的使用等等。关键词:黑盒测试软件测试移动应用AbstractIn
recent
years,
China
has
made
rapid
progress
in
the
field
of
mobile
communication,
especially
in
the
field
of
communication
technology.
The
mobile
communication
terminal
industry
has
formed
a
diversified
development
at
home
and
abroad,
which
has
greatly
promoted
the
progress
of
the
mobile
phone
field.
In
this
context,
all
manufacturers
must
ensure
the
quality
level
to
enhance
competitiveness.
No
matter
in
the
aspects
of
market
launch,
specific
design
or
demand
positioning,
all
need
to
develop
a
perfect
quality
control
system,
which
are
basically
inseparable
from
the
mobile
application
testing
link.
Software
testing
can
significantly
enhance
the
stability
of
software.
In
this
paper,
through
a
detailed
and
comprehensive
analysis
of
mobile
application
testing,
combined
with
practical
cases
and
theoretical
research
methods,
some
optimization
schemes
with
practical
value
are
formulated,
and
the
problems
and
precautions
in
practice
are
summarized.
Including
through
and
black
test
means,
to
design
mobile
application
test
plan
and
test
plan.
For
the
black
box
test,
the
related
personnel,
operation
details
and
internal
structure
of
the
test
target
are
all
unknown,
and
the
functional
verification
needs
to
be
carried
out
according
to
the
standard
level
of
the
specification,
the
relevant
test,
execution
of
the
use
case
design
and
the
analysis
of
the
test
results,
as
well
as
the
use
of
the
test
tools
including
the
automation
tools,
etc.Keywords:BlackboxtestingSoftwaretestingAmobileapplication目录第一章 绪论 绪论1.1课题研究背景及意义由于研发移动应用软件的规模不断提升,自然会有在软件当中出现更多的错误情况,造成移动应用软件产生错误的因素相对较多,主要包括系统规模庞大、超大型关系数据库、数据通信、分布式应用、服务器/客户构造、图形用户界面、复杂的软件构造、模糊的应用需求、交流误解以及缺乏交流等,导致系统以及软件当中复杂水平大幅提升。此外,移动应用软件的研制实际上会以“思维活动”的形式进行,开发、设计以及分析软件系统全部都需要采用模拟大脑思维的方式,由于人的通讯以及工作全部都会存在一定程度的不足,因此目前来说是一定会存在错误的。设计软件方面有概率出现错误,而描述需求同样会存在片面性或是错误:哪怕能够正确的进行设计,但是进行编码的过程中同样有概率会产生错误。此外,所有开发人员都存在不同的思维方式以及变成习惯,无法对其实现标准化,由此导致错误产生的概率进一步提升。而通过软件测试能够有效的提升其质量水平,作为软件工程当中十分关键的内容。通过软件工程制定的标准化设计分析手段,修复已经出现的问题或是降低问题出现的概率,最大化的降低程序内产生的错误的频率。从技术的角度来保障软件的安全性以及稳定性。因此,在目前软件产业日益蓬勃的背景下,研发软件时采用软件测试技术的必要性也在不断增加。对于开展软件项目而言软件测试作为其中非常关键的组成部分,是目前大多数开发软件企业的共识。在开发软件的所有步骤以及阶段当中全部都会要运用到软件测试,而不是简单的作为最后一个开发阶段。不管在开发任意阶段缺失了软件测试都可能会产生巨大的隐患。在软件测试当中,其完整的生命周期主要包括由建立相应的测试需求直至问题报告提交,详细的来说能够划分成六个环节:运行维护、测试软件、程序编码、设计软件、分析需求、问题的规划以及定义。这里面测试软件环节作为核心内容,能够有效的提升软件质量水平。1.2国内外研究现状自20世纪互联网信息技术被广泛推广以来,全球多个国家和企业都投入了大量的金钱和人才去研发和生产与互联网相关的产品,而移动互联网则是这个时代最受关注的领域之一。以华为、小米、苹果等热度极大的平板电脑以及智能手机逐渐成为了生活当中的必需品,而QQ、微信、微博、Facebook等聊天软件也逐渐改变着人们日常生活中的沟通方式。移动应用的用户市场正在不断扩大,基于移动应用的测试越来越重要。在上世纪八十年代,国外的软件测试已经逐渐形成规模,向着标准化和规范化发展并且开始出现各种各样的测试工具和相关的测试理论以及方法论。软件测试技术发展至今天我国还是远远落后于欧美等发达国家。不管在测试性能以及功能方面,或者在终端平台方面,欧美国家都比我们早涉及。但是对比PC平台,目前的移动应用测试技术还未成熟,还需要进一步的发展。因为欧美等发达地区以及国家较早开展软件测试技术的研发,因此国内对于测试机制、测试工具、测试方法以及在软件开发中从业软件测试人员所占比例等方面都与国外有着较大的差距。但随着我国加大力度扶持软件行业发展以及不断地与国外软件公司进行合作,国内软件企业也逐渐重视软件测试。而在移动应用测试领域,目前国内外情况基本相同均在起步阶段,但是近几年来我国移动应用数量呈爆发式的增长,用户需求的不断提高以及行业竞争的持续增强,都极大的推动了移动应用测试的进步。1.3课题研究的主要内容软件进行测试秉承的核心价值实现时为了帮助实现高品质的软件产品。实现这一目标的方式主要包括两个:在产品进行开始时进行品质改良,在产品完成之后做产品测试与评价确保产生与设计要求相符。本文主要以软件测试概念为基础进行实际地检测项目分析,同时将移动应用进行测试的流程和采用的方法进行详细介绍,结合实际的移动应用测试项目——Teachee移动端,将移动应用测试工作更加细致化,完美化。希望这篇论文能为以后的软件测试尤其是移动应用测试的新手们提供理论框架的帮助。1.4本章小结随着目前移动应用大量出现,对于移动应用使用的品质也会更要求达到更高层次的价值。因此对产品进行测试从而保障品质实现,是未来必定受到关注的探讨方向。本文以实际移动应用的检测为核心,进行测试流程系统化、细致化地检测,并且根据目前比较科技化的测试工具以及研究思路、理论进行更高层次地测试。这对现阶段移动应用测试行业而言具有理论指导价值与实践价值。
测试设计方法研究2.1黑盒测试黑盒测试是以需求为基础的一种检测,也可以叫做功能测试或数据驱动测试。即为针对产品需要实现的功能进行测试,确保其中所实现的功能指标能够与预期要求相符,其主要是确保程序外部结构的实现,而比较忽视内部逻辑[1]。进行黑盒测试会将GUI界面与软件产品所具有的功能实现进行测试,并且其检测会直接以程序接口为测试的进入点,其功能的实现主要时以需求为主,确保数据的接受与信息的输出恰当。黑盒测试需要确保下述错误问题被发现及解决:功能错误或遗漏、界面错误、数据结构或外部、初始化和终止错误。图1就是黑盒测试的示意图。图SEQ图\*ARABIC1黑盒测试示意图本课题将通过对实际的移动应用项目进行黑盒测试,因为在移动应用测试中,用的最多的是黑盒测试方法,该测试方法主要依据需求规格说明书。同时黑盒测试具有两个显著特点:1.黑盒测试与软件的具体实现过程无关,在软件实现的过程发生变化时,测试用例仍然可以用;2.黑盒测试用例的设计可以和软件实现同时进行,这样能够减少总的开始时间[2]。进行黑盒测试会将GUI界面与软件产品所具有的功能实现进行测试,采用测试方式主要是等价类划分法、边界值分析法、场景法等方法进行用例编写[3]。2.2移动应用测试的组织与管理进行移动应用项目的检测,需要参考到该移动应用所包含的所有角色内容的实现,因此也就要对其进行分工。检测项目的人员主要包括了:测试项目经理、测试执行工程师、开发工程师、产品经理、测试执行主管等,他们所代表的角色与方向时不同,因此测试过程中不同角色对于移动应用的重点把握不同,由此可以发现项目中不同层面需要改进的内容[4]。其中测试执行工程师针对测试用例进行检测,需要对开发以及检测中存在的问题进行沟通,并且依据自身的优秀工作经历以及工作能力,为出现的检测疑问进行可行的解决方案地确定。测试执行主管针对编写测试用例、测试环境的维护、报告和跟踪所发现的问题情况进行负责。在完成其工作时,需要依据其中存在的检测难易度以及进度进行调配,并且确保检测进程的顺利完成,且在完成之后撰写检测报告。测试执行主管还是基层人员的管理人,属于测试工程师的直接领导。测试项目经理主要负责与产品经理和开发工程师进行沟通确定需求可行性,安排测试组中的测试人员担任不同角色进行不同的任务。在移动应用开发项目中,首先由产品经理、开发工程师、测试经理共同确定需求内容和判断需求可行性,然后通过产品经理完成需求说明书分发给开发工程师和测试经理。测试经理安排测试执行主管对需求进行用例编写等工作,等到移动应用开发完成,测试执行主管和测试执行工程师将执行测试用例,及时向开发人员报告和跟踪发现的问题。开发完成问题修复后,测试执行主管和测试执行工程师验证问题,执行完所有用例后有测试执行主管总结测试报告,发送给产品经理、开发工程师和测试经理。2.3移动应用测试的测试方法设计移动应用测试方法与其他平台的软件测试一样,可以分为很多种类,其主要的分类方式包括如下几方面。.从是否需要执行被测软件的角度来看,可分为静态测试和动态测试。.从测试是否针对系统的内部结构和具体实现算法的角度来看,可分为白盒测试和黑盒测试。.从测试范围角度来看,可分为单元测试、集成测试、系统测试等等。.从测试目标角度来看,可分为性能测试、功能测试、可靠性测试等等。.从测试采用的工具角度来看,可分为自动测试、手工测试等。进行测试的方式以及技术非常丰富,主要由测试对象或者是测试软件的组织进行选择,抑或依照检测工具进行选择。不管使用何种方法,均需要实现的核心目标是确保软件需求和实际达成的结果保持兼容性与一致性[5]。本课题进行测试的移动应用——Teachee是一款在线直播教育类软件,在不能覆盖源代码的情况下使用黑盒测试。使用系统测试验证Teachee中主要功能是否可用。同时进行自动化测试,通过编写与执行黑盒测试自动化脚本验证软件中主要功能是否正常和每个模块之间跳转是否正常。2.4移动应用测试工具研究随着现在各种各样的移动应用不断的出现,针对移动应用的测试工具也越来越多,目前在移动应用测试中比较常用的测试工具有以下几款:1、Appium,这是一款开源的UI级自动化测试工具,它的工作方式与后台运行的服务器相似。Appium的优点:支持多种编程语言编写自动化脚本、不需要在移动设备上安装任何东西、均能支持Android和IOS的自动化测试。Appium的缺点:只支持UI测试、不能跨应用测试,不同的移动应用需要编写不同的脚本。2、Robotium,这是安卓平台下一款自动化测试工具。Robotium的优点:易上手,能快速编写测试脚本、有丰富的API库、能自动处理安卓的activities。Robotium的缺点:只支持java语言、不能跨应用测试。3、Testdroid,它是一款基于云的移动应用测试工具,主要测试安卓和IOS的手机游戏。Testdroid的优点:节省应用开发和运营成本、相比其他云测平台支持较多框架、有自己的移动应用脚本录制工具。Testdroid的缺点:没有性能监控、不支持安全测试、众包测试。在本课题的黑盒自动化测试环节中,选用了Appium测试工具去运行自动化测试脚本,因为Appium支持多种编程语言写出来的脚本,同时不需要在移动设备上安装任何软件,能做到高效率地编写和执行自动化脚本。2.5移动应用测试特点及分类移动应用测试方法和技术相较于其他软件测试方式,同样存在众多分类方式,其分类主要是依据侧重点来进行分类,部分依据测试对象进行分类,部分依据测试工具而进行分类。其中包括有静态测试与动态测试;依据系统构造与功能的实现方式分类为集成测试、系统测试、单元测试和验收测试等;依据测试目的进行分类,包括性能测试、功能测试等;依据测试工具分类包括自动测试、手工测试等。进行检测均需要实现的核心目标是确保软件需求和实际达成的结果保持兼容性与一致性。依据技术进行分类包括黑盒测试、白盒测试及静态测试和动态测试。移动应用测试属于较为特别的一项检测,其主要软件地设计、分析以及编码后,进行硬件环境分析,其需要实现的目标和普通检测一样,均是为了找出软件中存在的不足,并且对问题进行解决,从而提升软件的品质。手机系统无法保障其安全性可能会出现灾难性地后果出现,即便是存在安全性以外的问题,也可能导致重大的经济损害。所以,对于移动应用而言,其需要具备更高的安全性。因此在测试时需要严格把控每个环节,确保产品具备绝对可靠性。移动应用测试相较于普通软件而言,其具备自身特点包括:1、移动应用测试需要处于特定的硬件环境下才能运行软件。2、移动应用测试除了要保证其软件在特定环境下运行的高可靠性,还需确保软件系统的实时性。3、移动应用产品为实现高可靠性,不允许内存在运行时存在泄漏等问题产生,所以除继续拧软件的GUI测试、性能测试、覆盖分析测试是同普通软件测试一样都不可或缺之外,必须进行内存的测试。4、移动应用和一般软件产品存在很大不同,在移动应用和硬件集成测试完成之后,并不意味着测试全部完成,还需在产品首次制作出来时,进行产品的严格检测。2.6本章小结移动应用的测试方法能根据测试特点的不同能分为有很多种,其中最常用的就是黑盒测试。在移动应用测试的组织与管理中需要合理的安排测试人员执行用例编写与执行的工作,及时报告与跟踪问题。目前大部分的移动应用测试工具都用于自动化测试上,在黑盒自动化测试中使用Appium测试工具对于初学者来说是比较容易上手的。
基于直播软件的测试需求分析3.1系统架构分析目前,大多数大学生学习的方式是利用智能手机实现网络同步学习,并且学生使用智能手机能够不分时间地域地进行学习,在网络上通过直播软件同样是进行线上地问题详解,其同样可以对问题进行专业化剖析。同时比较重要的是老师可以获得更多时间与空间,而学生也能更加便利地学习。因此现阶段一个大趋势就是进行校园直播教学APP的研制。对于老师而言可以使用直播平台来完成实时直播,学生可以在直播中学习并且实时更新动态与问题,并且学生在网络平台上可以将自己的想法与知识内容与更多的人分享。从结构上分,该系统主要包括客户端、服务器端、数据库三部分。客户端分为两个角色使用,一个是教师,一个是学生角色。主要功能为直播,课程搜索与展示,聊天,以及系统设置。流媒体服务器进行直播的拉流,应用服务器用于普通数据的交互。两者相互搭配,精细分工提高效率。数据库选用MySQL数据库,为整个系统提供数据的存储。客户端与服务器端会有很多信息,比如直播表、录播信息等等,都需要在数据库中进行存储。该直播教育软件分为电脑端和移动端,通过电脑端登录的用户身份均为老师,具有创建课程、直播授课、开发课程回放权限等功能。通过移动端登录的用户身份均为学生,学生具有添加课程、查看课程表、进入课程等功能,同时不能使用老师身份特有的功能。3.2移动端功能模块分析3.2.1登录注册用户填写手机号和验证码后进入APP,用户填写的账号与验证码必须正确和有效才能登陆成功。只有在用户进行登录之后,我们才允许用户进行高级操作,比如上传头像,设置自己的昵称等高级工作。当用户输入手机号码和验证码的过程中,手机号码只弹出纯数字键盘。当用户在登录页面的时候,账号和验证码是明文的状态。点击登录按钮之后,会进行如下依次判断:账号号码格式是否符合常规;验证码是否有效和正确。然后根据用户输入的内容进行判断,然后给出提示,分别为:号码格式不对,请重新输入正确的号码;验证码格式错误,请输入正确的验证码。图SEQ图\*ARABIC2注册登陆流程图3.2.2课程模块 学生可以在首页和课程表中看到老师的课程以及课程状态,在首页和课程表页面都能进入老师的课程以及观看课程回放。课程状态分为三种:未开播状态、已开播状态、已结束状态。课程未开播时,学生不能进入课程中,只有距离开课时间还有10分钟学生点击加入课程则能进入课程。课程已开播,学生在首页和课程表中看到开播课程旁标注了“直播中”的提示,学生能直接点击加入课程。课程已结束,学生在首页和课程表中看到已结束课程的“加入”按钮变为“回放”按钮,点击按钮能看到课程回放。图SEQ图\*ARABIC3课程模块流程图3.2.3首页模块学生登录APP后首先进入的是首页,首页中能显示最近的课程,课程已开始点击课程则能进入课程,课程已结束点击课程则能观看回放。首页中还有能跳转到课程表的按钮和个人中心按钮,点击相关按钮就能跳转到相关页面,点击返回则会回到首页中。图SEQ图\*ARABIC4首页模块操作流程图3.2.4个人中心用户正常登陆APP后在首页点击左上角“更多”按钮拉起侧边栏,点击侧边栏右上角的“编辑”按钮进入个人中心,在个人中心用户能够修昵称和头像,修改昵称中填入敏感字词等,点击保存时会提示修改失败并要求重新修改昵称。修改头像中上传非法图片同样会保存失败并要求重新上传。图SEQ图\*ARABIC5个人中心操作流程图3.2.6互动聊天在课程直播间中聊天是及时在线提问,用文字或者连麦的方式,定点为学生答疑解惑,即用线上一对一来模拟线下的实时解答问题。教学互动,老师跟学生可以进行语音和文字的直接沟通。当学生出现问题时,可以及时进行提问问题,然后老师可以进行讲解。在提问之前,学生先进行文字上面的提示,直接点击右下角麦克风发送连麦请求,老师通过请求后则可以和学生进行视频连麦解答学生的问题。图SEQ图\*ARABIC6互动聊天流程图3.3本章小结本章对Teachee移动端进行需求分析,因为Teachee有PC端和移动端,老师想要创建课堂和直播课堂必须登录PC端,移动端登录的用户身份都是学生不具备创建课程和直播授课等功能,所以需求分析主要以学生的身份对Teachee移动端各个模块进行需求分析。基于移动应用测试设计与实现4.1移动应用测试流程 本课题移动应用测试流程安排如表1所示。表SEQ表\*ARABIC1测试流程安排步骤动作执行人执行内容要求1需求分析何柱彬分析Teachee移动端需求对Teachee移动端各个功能模块进行分析2测试环境搭建何柱彬安装Appium自动换测试工具,进行相关的软件安装和环境部署安装自动化测试所需软件并对其进行验证3测试设计何柱彬编写Teachee移动端测试用例以及自动换脚本编写设计每个模块的测试用例和编写脚本4测试实施何柱彬执行测试用例顺利执行所有测试用例5测试结果何柱彬记录测试用例执行的情况对测试用例执行的结果进行分析4.2移动应用测试工作安排移动应用测试的工作安排需要根据当前项目的测试计划、需求说明书和当前项目进度等方面进行安排和调整。测试工作安排的内容要包括每个测试环节所需时间和测试人员。本课题的移动应用测试工作安排如表2所示,共需要23个工作日。表SEQ表\*ARABIC2测试工作安排步骤动作执行人进度测试工时(人/天)1分析需求何柱彬2020年2月15日12编写测试计划何柱彬2020年2月16日13编写测试用例何柱彬2020年2月20日44制定测试执行计划何柱彬2020年2月24日35执行测试用例何柱彬2020年2月27日36编写自动化测试脚本何柱彬2020年2月28日17执行自动化测试脚本何柱彬2020年3月3日48分析功能测试结果何柱彬2020年3月6日39编写测试报告何柱彬2020年3月9日34.3测试资源4.3.1人力资源 测试资源,主要指的是待检测手机、相关设施、检测工具以及人员等,确定好检测计划这后,需要保证测试资源均准备好,不然可以会在检测过程中出现混乱,最后导致检测进度被拖累。确定好测试计划以及用例编写和资源准备之后,才是进行之后的测试阶段。本次移动应用测试项目所需人力资源如下:表SEQ表\*ARABIC3人力资源角色姓名测试工时(人/天)负责内容测试人员何柱彬23编写用例、执行测试4.3.2测试环境进行检测的环境主要分类成两大模块:首先是进行软件与硬件环境的检测,其次时进行内部与外部的环境检测。其中进行手机软件检测主要是针对历史说句以及网络设施等方面;进行硬件的检测主要指SIM卡、计算机和自带附件等的检测;进行外部检测主要是由客户参与到项目的检测工作;进行内部检测主要是有检测工作人员参与到检测工作;在检测时需要对人员进行培训,从而实现可控安稳的环境,使得检测可以尽可能节约更多时间,从而又可以确保所有BUG均被发现并准确解决。其后,完成检测工作则主要时以构建其稳定的检测环境为基础的,因此进行好的环境规划及把控,对于提升效率以及实现高品质软件有很大作用。依据开发角度而言,进行检测环境的构建以及开发测试用例是需要共同进行的,部分时候还会出现构建测试环境更加耗费时间的情况,因此在检测估计时期就需要进行充分考量,不然之后可能存在风险问题。本次移动应用测试相关的软件信息和硬件信息如下:表SEQ表\*ARABIC4软件与硬件信息软件信息(相关软件、操作系统等)【开发工具】:操作系统:Windows10开发工具:Eclipse、jdk1.7【测试工具】:操作系统:Windows10测试工具:Appium自动化测试工具【测试手机】:操作系统:Android测试手机:小米8屏后指纹版、vivoXplay5【需要测试的移动应用】:操作系统:Android测试移动应用:Teachee【数据库】:操作系统:Windows10数据库软件:Mysql硬件环境(网络、设备等)【电脑设备】:CPU:i7-8750H处理器2.0GHz内存:16G硬盘:2TB显示器:HDMI显示器4.3.3搭建自动化测试环境本次测试的自动化环境搭建分为四个部分:第一:安装和验证node.js;第二:Java、Androidsdk环境配置;第三:Appium环境配置。首先从官网上下载node的安装包,点击node.exe后根据安装提示完成安装。完成安装后在cmd中输入node-v,会出现图7中信息证明node安装成功。图SEQ图\*ARABIC7node版本查看第二是下载并安装jdk,jdk安装完后需要配置环境变量才能正常使用,jdk环境变量配置操作如下:1、新建JAVA_HOME环境变量,变量值是自己安装JDK的路径,如:D:\Java\jdk1.7.0;2、新建CLASSPATH环境变量,输入值:%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar3、找到PATH变量,添加如下值:%JAVA_HOME%/bin;%JAVA_HOME%/jre/bin;到这里,jdk的环境变量已经配置好了,接下来在cmd中输入java-version后出现如图8中的显示则证明jdk环境配置成功。图SEQ图\*ARABIC8jdk安装验证接下来是下载并安装Androidsdk,和安装jdk一样Androidsdk也需要配置环境变量才能正常使用,Androidsdk环境变量配置操作如下:1、新建ANDROID_HOME环境变量,变量值是sdk的安装路径,如:D:\android-sdk\sdk2、在PATH变量中添加如下值:%ANDROID_HOME%\tool和%ANDROID_HOME%\platform-tools配置好Androidsdk环境后,安卓手机开启开发者模式后连接到电脑,在cmd中输入adbdevices查看手机连接状态,如图9所示手机已连接到电脑。图SEQ图\*ARABIC9手机连接情况进入Androidsdk安装目录下的tools目录中,找到uiautomatorviewer工具点击打开出现图10画面,通过使用uiautomatorviewer工具截取手机画面,点击画面中的UI组件可以显示选中组件的属性。在编写自动化脚本时需要用到这些控件属性,写出针对不同UI控件的用例代码。图SEQ图\*ARABIC10手机画面截取最后是安装Appium,点击安装文件,根据提示完成安装,桌面会出现Appium的图标,点击Appium图标会出现如图11所示的窗口,这个时候Appium还不能正常使用,需要进入PATH变量中添加Appium目录下bin文件的路径。在cmd中输入Appium-doctor,出现如图12中的提示:ALLCheakweresuccessful,说明Appium能正常使用了。Appium是用.net进行开发的,所以安装Appium前需要先安装.netframework,否则Appium安装过程中会报错。图SEQ图\*ARABIC11Appium启动窗口图SEQ图\*ARABIC12Appium环境验证4.4测试设计4.4.1登录注册模块用例设计根据登录注册模块的需求分析,手工测试需要对登录注册页面中的:区号选择按钮、手机号输入框、验证码发送按钮、验证码输入框、登录按钮、隐私政策等进行不同场景的测试对比测试结果。自动化测试中则需要对登录注册页面中各个控件进行点击测试,查看每个控件点击后是否跳转正常,页面中输入框则进行自动输入测试。登录注册模块主要用例设计如图13所示,具体的登录注册模块测试用例请参考附录一。图SEQ图\*ARABIC13登录模块主要用例设计登录注册模块编写的自动化测试脚本如图14所示:图SEQ图\*ARABIC14登录注册模块自动化脚本4.4.2首页模块用例设计根据首页模块的需求分析,手工测试需要测试首页中在不同场景下显示的课程情况,还需要对首页中点击各个按钮能否跳转到相应模块进行测试。在自动测试中需要对首页中各个控件进行点击测试查看能否跳转到相应页面。首页模块主要用例如图15所示,具体的首页模块测试用例请参考附录二。图SEQ图\*ARABIC15首页模块主要用例设计首页模块的自动化测试脚本如图16所示:图SEQ图\*ARABIC16首页模块自动化脚本4.4.3课程模块用例设计根据课程模块的需求分析,手工测试需要对未开课、正在开课、课程已结束这三种状态进行测试,查看未开课时是否能够进入课堂,正在开课时是否能进入课程、课程已结束后是否能观看回放。自动化测试中则需要测试点击“加入课程”按钮能否跳转到课程直播间中,点击“回放”按钮是否能跳转到课程回放画面中。课程模块主要用例如图17所示,具体的课程模块测试用例请参考附录三。图SEQ图\*ARABIC17课程模块主要用例设计课程模块的自动化测试脚本如图18所示:图SEQ图\*ARABIC18课程模块自动化脚本4.4.4个人中心模块用例设计根据个人中心模块的需求分析,手工测试需要对昵称进行输入测试,输入不同格式的昵称,查看能否正常显示;上传不同格式头像,查看能否上传成功并显示。自动化测试中需要点击昵称,输入已设定好的昵称,点击保存能否跳转回个人中心页面。点击头像,查看能否拉起相册和摄像头选项按钮。个人中心模块主要用例如图19所示,具体的个人中心模块测试用例请参考附录四。图SEQ图\*ARABIC19个人中心模块主要用例设计个人中心模块的自动化测试脚本如图20所示:图SEQ图\*ARABIC20个人中心模块自动化脚本4.4.5互动聊天模块用例设计根据互动聊天模块的需求分析,手工测试需要对课程中互动聊天栏输入框进行输入验证,查看输入不同格式内容是否能显示成功。不同场景下点击连麦申请按钮的测试。自测化测试则只需测试点击互动聊天栏中是否成功拉起输入框,点击发送已经设置好消息测试是否发送成功以及点击连麦申请后查看连麦按钮的状态变更。互动聊天模块主要用例如图21所示,具体的互动聊天模块测试用例请参考附录五。图SEQ图\*ARABIC21互动聊天模块主要用例设计互动聊天模块的自动化测试脚本如图22所示:图SEQ图\*ARABIC22互动聊天模块自动化脚本4.5本章小结本章对移动应用测试的流程、测试工作安排和测试资源进行了说明,详细介绍了Appium自动化测试环境搭建步骤。根据第三章对Teachee移动端的需求分析,总结了每个模块的测试点,根据每个模块的测试点进行用例编写和自动化脚本的编写。编写用例要做到用尽可能少的用例最大限度地区覆盖每个功能点,同时要考虑好每个功能点在不同场景下的情况,根据不同场景去区分用例的优先级[7]。移动应用测试实施与结果分析5.1测试实施在移动应用开发和测试用例设计完成后,就会进入测试用例执行阶段。在用例执行阶段,需要执行者执行每条用例,同时根据测试得出的实际结果与用例预期结果进行对比来判断用例能不能过。对于不能通过的用例需要进行问题记录并记录在测试报告中,等待更新版本再进行回归测试。图SEQ图\*ARABIC23测试执行的阶段模型5.2测试结果及分析在测试执行完毕后,即进入测试总结阶段。在移动应用测试结果报告中需要将每个模块的执行的用例数进行汇总,分别记录每个模块的通过的用例数和失败的用例数,并标明通过率是多少,在每个模块测试结果中备注在测试中发现的问题,本次测试结果如图24所示,总共设计和执行了64条用例,60条用例通过,4条用例失败,发现4个缺陷,总通过率为93.75%。自动化测试中根据模块编写和执行了5份脚本,各个模块控件覆盖率达到100%。在接下来的小节中对每个模块的测试结果进行分析。图SEQ图\*ARABIC24Teachee各模块测试结果5.2.1登录注册模块测试结果分析 登录注册模块共设计和执行14条测试用例,13条用例通过,1条用例失败,发现1个缺陷,通过率为93%。图25是执行用例时发现的问题。自动化脚本对登陆注册模块所有控件的点击测试覆盖率达100%并能顺利运行。图26是登录注册模块主要用例测试结果。图SEQ图\*ARABIC25登录注册模块缺陷图SEQ图\*ARABIC26登录注册模块主要用例测试结果5.2.2首页模块测试结果分析 首页模块共设计和执行15条测试用例,14条用例通过,1条用例失败,发现1个缺陷,通过率为93.33%。图27是执行用例时发现的问题。自动化脚本对首页模块所有控件的点击测试覆盖率达100%并能顺利运行。图28是首页模块主要用例测试结果。图SEQ图\*ARABIC27首页模块缺陷图SEQ图\*ARABIC28首页模块主要用例测试结果5.2.3课程模块测试结果分析课程模块共设计和执行11条测试用例,11条用例通过,0条用例失败,发现0个缺陷,通过率为100%。自动化脚本对课程模块所有控件的点击测试覆盖率达100%并能顺利运行。图29是课程模块主要用例测试结果。图SEQ图\*ARABIC29课程模块主要用例测试结果5.2.4个人中心模块测试结果分析个人中心模块共设计和执行13条测试用例,13条用例通过,0条用例失败,发现0个缺陷,通过率为100%。自动化脚本对个人中心模块所有控件的点击测试覆盖率达100%并能顺利运行。图30是个人中心模块主要用例测试结果。图SEQ图\*ARABIC30个人中心模块主要用例测试结果5.2.5互动聊天模块测试结果分析 互动聊天模块共设计和执行15条测试用例,14条用例通过,1条用例失败,发现1个缺陷,通过率为93.33%。图31是执行用例时发现的问题。自动化脚本对首页模块所有控件的点击测试覆盖率达100%并能顺利运行。图32是互动聊天模块主要用例测试结果。图SEQ图\*ARABIC31互动聊天模块缺陷图SEQ图\*ARABIC32互动聊天模块主要用例测试结果5.3本章小结本章通过对Teachee移动端中各模块测试结果进行分析后得出,移动应用的测试用例编写时需要考虑多个场景,这样能是移动应用在不同场景下执行用例,尽可能地找到移动应用中的一些较隐蔽的缺陷。最后向大家展示了测试结束后需要完成的测试总结报告应包括执行测试用例总数、成功用例和失败用例以及相关问题的描述,同时展示了缺陷描述中需要填写的信息。总结与展望6.1总结本课题对移动应用测试进行黑盒测试的毕业设计项目到这里已经完成了,期间用了三个多月的时间从书籍和网络上查阅关于黑盒测试和移动应用测试的相关理论知识,使我对黑盒测试和移动应用测试的领域有了更深地了解,通过结合学习到的测试知识和自己对测试领域的理解,使我得以完成本课题中关于移动应用黑盒测试相关章节的内容编写。通过三个月时间进行移动应用测试项目的实践,使我对移动应用黑盒测试有了更加深入了解,明白了想要做好移动应用的黑盒测试并没有想象中的那么简单。首先需要有耐心地去对移动应用进行详细的需求分析画出每一个模块的流程图。在用例编写方面要尽可能地去考虑到每个场景的预期结果,有时候还需要借助画思维导图去明确每个功能的场景,避免出现同一场景中重复测试相同功能点的错误,还要做到用尽可能少的用例去覆盖更多的功能点和测试场景,做到科学设计测试用例节省测试时间和人力成本。在测试执行阶段需要耐心和细心地执行每一条测试用例,认真对比用例中预期结果和实际结果是否有偏差,遇到缺陷必须第一时间进行记录,其中要记录发现缺陷的模块、发现时间、优先级和严重程度、问题描述、实际结果和预期结果等内容。在测试结果报告中要标好用例的总数,通过的用例数和失败的用例数以及通过率,有发现缺陷是,还要在测试报告中相应模块进行备注。在本次移动应用测试项目实践中,还用到了自动化测试,自动化测试也分黑盒和白盒测试。本次选用了黑盒自动化测试,利用Appium自动化测试工具,实现对本次移动应用中的功能点进行点击和输入测试,做到完全覆盖到每个模块中的所有控件。与手工测试相比自动化能够提高执行效率,但是手工测试能够在更多的场景中进行测试比自动化测试更能发现缺陷。当然两者之间谁也不能完全替代其中一方。在移动应用黑盒测试中手工测试和自动化测试相结合,能够更大限度地覆盖测试点,发现更多的缺陷。6.2后续研究展望本文在研究方面获得初步的成果,但依旧还有更多的内容需要深入研究,尤其时针对移动应用黑盒的测验方面还存在众多问题需要我们深入探讨。因此之后研究的核心还是会更多地放在研究测验工具与白黑盒方面。现阶段我国用于这方面检测的工具比较缺乏。因此在当前科技迅速发展使其,需要有更多的人钻研到这一模块的自动化检测工具,从而实现更加有效的研究工作,并且做到自动化特色,实现更高品质的软件研制,另外对于黑盒进行检测从而实现更好地检测覆盖面。6.3本章小结本章通过对课题中移动应测试项目进行总结,给出了自己在移动应用黑盒测试中每一个阶段的心得体会以及一些注意事项。通过本次移动应用测试项目,得出了关于黑盒自动化测试和手动测试的优缺点,以及两个之间的关系。黑盒测试是每个软件测试人员必须掌握的基础内容,同时也是考核软件测试人员的标准要求。参考文献[1]樊茜,何雨昂,黄葵,杨帆,温力.伺服软件的复杂时序测试用例设计方法[J].电子技术与软件工程,2019(24):47-49.[2]施莹超.计算机软件测试技术与开发应用探讨[J].信息与电脑(理论版),2019,31(21):88-89+92.[3]魏鑫,安鹏伟,赵菲,高米.黑盒测试技术方法在大气数据计算机软件测试中的应用[J].导航定位与授时,2018,5(05):107-111.[4]张杰.黑盒测试理念指导下的软件测试研究[J].电脑迷,2018(06):84.[5]陈建锋.软件测试发展趋势研究[J].无线互联科技,2019,16(19):41-42.[6]范海燕.动态软件测试中的白盒测试和黑盒测试探讨[J].南方农机,2018,49(18):76.[7]林勤花.黑盒测试用例设计方法及综合应用[J].电子测试,2018(17):88-89.[8]王彤.关于软件功能测试技术的几点思考[J].信息与电脑(理论版),2019,31(17):60-61.[9]宋丽.黑盒测试在环境质量监测系统测试中的应用[J].电子技术与软件工程,2019(12):54-56.[10]周健,辛中臣.无人机系统软件黑盒测试内容研究[J].信息系统工程,2019(04):160+163.[11]王崇刚.Selenium在B/S架构软件中黑盒测试的自动化实现[J].科技传播,2018,10(23):162-163.[12]袁瑞铭,巨汉基,汪萍萍,宋锡强,丁恒春,刘岩.基于黑盒测试技术的智能电能表软件测试方法研究[J].电测与仪表,2018,55(22):135-139.
附录附录一:登录注册模块具体用例用例标题步骤编号测试步骤期望结果实际结果不同国家手机号1在登录页面选择中国区号,输入正确的中国号码点发送能正常收到验证码2在登录页面选择印度区号,输入正确的印度号码点发送能正常收到验证码3在登录页面选择美国区号,输入正确的美国号码点发送能正常收到验证码4在登录页面选择英国区号,输入正确的英国号码点发送能正常收到验证码号码输入页面异常场景1手机号输入页面断开网络后,输入正确的电话号码后点发送页面有网络异常提示2登录页面恢复网络后,输入正确的电话号码能正常进入下一步,并收到验证码3手机号输入页面设置弱网,输入正确的电话号码能正常进入下一步,并收到验证码4输入手机号码后,切后台/锁屏,切回来/解锁查看页面仍然在手机号登录页面,手机号码保留,区号显示正常验证码检查1手机号登录页面输入正确的手机号码后,在验证码输入栏,输入少于6位的数字登录按钮置灰不可点2验证码页面输入字母、字符等无法输入字符、字母,只支持输入数字3输入验证码后,回删或修改验证码可正常删除或修改已输入的验证码,删除或修改后可继续输入4输入错误的验证码页面有验证码错误的提示语5倒计时结束后点重新发送可重新发送验证码,手机可收到短信验证码;发送按钮显示60s倒计时,倒计时过程中按钮置灰不可点6验证码超时后(超过10min未验证),再次输入收到的验证码提示验证码已失效请重新发送验证码页面异常场景1输入正确的验证码后断开网络点登录页面有网络异常提示2恢复网络后,输入正确的验证码能正常进入下一步3设置弱网,输入正确的验证码能正常进入下一步4输入部分验证码后,切后台/锁屏,切回来/解锁查看页面仍然在验证码输入页面,已输入的验证码保留5输入验证码后,杀进程重启重启后进入首页,可重新进行手机号登录昵称修改检查1新用户注册页面,输入正确的手机号和验证码后进入昵称修改页面,未输入点确认按钮提示昵称输入不能为空,仍停留在当前页面2输入英文字母、空格、特殊字符、emoji表情、其他语言(如中文)字符等不支持特殊字符、emoji表情、其他语言字符等,支持英文字母和空格输入3输入超过20个字符后继续输入超过20个字符后不能继续输入4已有用户注册昵称为A,新用户注册昵称时也填写为A后点确定可正常进入首页,允许有重复的昵称昵称修改异常情况1新用户注册页面,输入正确的手机号和验证码后进入昵称修改页面,输入昵称后断网点确认提示网络异常,不会进入下一步2恢复网络后点确认能正常进入首页,首页状态显示正常3昵称输入页面杀进程重启重启后拉起昵称修改页面,输入昵称后能正常进入首页不同设备登录同一账号1在不同移动端设备登录同一手机账号多台设备上不可正常登录同一账号,后登录的设备会踢掉之前登录过的设备2PC端和移动端登录同一手机账号多台设备上不可正常登录同一账号,后登录的设备会踢掉之前登录过的设备同一账号不同端登录1账号A在PC上注册登录,登录后添加课程和修改昵称头像等,然后在Android端登录后查看首页数据账号A在Android端登录后首页不显示创建的课程,只显示需要学习的课程,且头像和昵称正常展示2账号B在App上注册登录,登录后加入课程和修改昵称头像等,然后在PC端登录后查看首页数据账号B在PC端登录后首页不显示加入的课程,只显示创建的课程,且头像和昵称正常展示昵称违规处理1用户设置的昵称违规,查看违处罚后的昵称显示系统默认随机四个字母作为昵称多次重新获取验证码1验证码等待倒计时结束后点重新发送重新发送后可正常收到短信验证码2重复步骤1超过10次,等待倒计时结束后,再次重新发送每次重新发送后都可以正常收到短信验证码附录二:首页模块具体用例用例标题步骤编号测试步骤期望结果实际结果课表排序1老师更改课表时间,学生刷新最近课程表排序更新,规则:未开始>已结束,未开始/已结束中按离现在时间越近展示越靠前2进入课程表检查排序按开始时间正序排列,正在进行的和未开始的特殊颜色标记3老师更改课表时间为其他日期,学生刷新原日历下课程表当前日期下不显示该课程4学生切换到对应日期显示该课程5学生修改本地手机时间,刷新最近首页中课程与课程表课程时间显示不变,显示月-日开始时间--结束时间,如“March13th14:30--15:30”课程名检查1教师端课程名设置中英文、特殊字符、他国文字、emoji表情等,学生端检查显示可正常显示2课程名超长50个字符(目前最长只能20个字符),学生端检查最近课程/课程表中课程超出屏幕自动截断,适配小屏手机3课程名为空或空格,学生端检查可正常显示4学生端最近课程表、课程表、课堂内、回放中分别检查课程名与老师名课程名显示相同,与老师端名字一致
课堂内、回放顶部显示:课程名(老师名)5老师端修改课程名,学生端刷新后检查最近课程与课程表课程名更新,与老师端一致课程表更新1开课前10分钟老师修改课程名、老师名、课程时间,学生检查最近课表与课程表学生端课程及时同步,信息同老师端修改后内容2学生已加入课程,开课前10分钟,老师取消课程,学生未刷新点击最近课表与课程表该课程无法加入课程3课程取消,学生刷新课表被取消课程从课表中移除4学生已进入课堂,老师取消课程学生端退出课堂,提示老师已取消课程课程表展示1学生已加入多个课程,进入课程表,检查信息展示:课程名、老师名、开始-结束时间、课程状态2切换日历检查课程表排序课程列表详情:展示选中日期的课程,排序规则按开始时间正序排列,正在进行的和未开始的特殊颜色标记3上下滑动可流畅滑动浏览课程列表老师名检查1老师端昵称设置中英文、特殊字符、他国文字、emoji表情等,学生端检查显示可正常显示2老师昵称超长20个字符,学生端检查最近课程/课程表中课程超出屏幕自动截断,适配小屏手机3老师昵称为空或空格,学生端检查可正常显示4老师端修改昵称,学生端刷新后检查最近课程、课程表、课堂内、回放老师名更新,与老师端名字一致课程表数量1今天无课程,首页点击课程表进入日历默认显示本周今日,课程表为空,显示默认背景图“Theteacherisstillpreparingthelesson”2切换到已添加小于5个课程日期显示当天所有课程,按开始时间正序显示3切换到课程大于20个的日期显示当天所有课程,按开始时间正序显示4上下滑动浏览正常加载,浏览顺畅5来回切换日期正常加载该日期对应课程课表日历默认时间1修改本地时间为明天,点击课程表进入日历日历显示与手机本地时间为准,默认显示本周今天2修改本地时间为昨天,点击课程表进入日历日历显示与手机本地时间为准,默认显示本周今天3修改本地时间为去年,点击课程表进入日历日历显示与手机本地时间为准,默认显示本周今天4修改本地时间为明年,点击课程表进入日历日历显示与手机本地时间为准,默认显示本周今天添加课程失败1点击首页JoinLiveClass,输入已添加过的课程添加失败,toast提示“Youhavealreadyaddedthecourse!”2输入不足8位的课程码,点击Join添加失败,toast提示“Oops!Wrongclasscode,pleasetryagain!”3输入需邀请才能加入的课程,点击Join添加失败,toast提示“Failedtojointheclass.Pleasecontacttheteacherforqualification!”4未输入任何课程码,点击Jointoast提示“Theclasscodecannotbeempty!”5首页点击JoinLiveClass进入添加课程页,点击顶部返回/安卓back键返回首页加入课程非法输入1输入错误或非数字课程码,点击Join添加失败,非数字无法输入,toast提示“Oops!Wrongclasscode,pleasetryagain!”2首页点击添加课程入口,课程码从第二位开始输入非首位为空,后续光标无法聚焦输入3首页点击添加课程入口,复制超长数字粘贴,点击Join超出自动截断,不存在课程toast提示“Oops!Wrongclasscode,pleasetryagain!”4添加课程页面,输入全0课程码,点击Join添加失败,toast提示“Oops!Wrongclasscode,pleasetryagain!”课表时间1老师端创建课程,开始时间分别为:0分钟、1小时内、24小时内、跨天、某个月最后1天跨天、某年最后1天跨天,学生端检查最近课程、课程表课程开始时间与结束时间与老师端一致,跨天日期显示+12老师端修改课程开始/结束时间,学生端刷新最近课程、课程表课程时间更新,与老师端一致3学生修改本地手机时间,刷新最近课程、课程表,检查课程时间课程时间不变,与老师端一致附录三:课程模块具体用例用例标题步骤编号测试步骤期望结果实际结果断网操作1断网点击Join提示网络异常,请重试2断网点击replay提示网络异常,请重试3断网进入课程表切换日历页面空白,显示“ThisisnoNetwork”4断网刷新最近课程、课程表页面空白,显示“ThisisnoNetwork”5恢复网络刷新课程表、最近课表成功加载课程表,显示课程信息与老师端一致课程已满员1老师创建课程限制2人,学生已添加课程,课堂中已有2名,学生A点击最近课程/课程表Join加入失败,toast提示“Theclassisfull,pleasetryanotherclass!”2A已在课堂内,退出课堂后,已满员,A点击Join同上3课堂中有人退出不满,A点击Join可进入课程课堂中退出1进入正在直播课堂,点击返回退出课堂弹窗提示是否确认离开2进入未开播课堂,点击返回退出课堂弹窗提示是否确认离开3点击【否】关闭提示框,停留在课堂内4点击【是】退出课堂,返回上一页课程结束2课程时间到,老师点击结束,学生端检查学生停留在课程内,画面显示未开播界面,主屏幕显示“TeacherturnedoffCamera”3学生点击返回按钮退出课堂返回至首页(无弹窗挽留页面)4课程拖堂超1小时,自动结束,学生端检查在课程强制结束前1分钟,学生端toast提示”课程即将结束“”Classiscomingtoanend“5拖堂达1小时,课程强制结束结束该课程,所有学生跳转至App首页学生前后台切换1直播中,学生在课堂内,切后台放置1分钟内心跳结束前回直播界面直播课堂界面加载正常,音视频同步、共享主界面画面同步2学生在课堂内,锁屏1分钟内再回到直播界面直播课堂界面加载正常,音视频同步、共享主界面画面同步3学生课堂内切换到其他程序,该程序使用音视频,如:微信视频、QQ音乐等学生切换其他程序时,保留声音继续授课进入回放1首页最近课程,点击Relay
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 24628-2025医疗保健产品灭菌生物与化学指示物测试设备
- 农村个人房屋售卖合同范本
- 买卖注册公司合同范本
- 出租钢琴合同范例
- 倒板合同范本
- 出口经营合同范本
- 个人租车协议合同范本
- 医疗器械借用合同范本
- 制做安装合同范本
- 别墅门订购合同范本
- GB/T 7631.5-1989润滑剂和有关产品(L类)的分类第5部分:M组(金属加工)
- GB/T 41326-2022六氟丁二烯
- GB/T 19470-2004土工合成材料塑料土工网
- GB/T 18913-2002船舶和航海技术航海气象图传真接收机
- 高中教师先进事迹材料范文六篇
- 烹饪专业英语课件
- 3d3s基本操作命令教程课件分析
- 人教版三年级语文下册晨读课件
- 传染病防治法培训讲义课件
- 河南大学版(2020)信息技术六年级下册全册教案
- 法律方法阶梯实用版课件
评论
0/150
提交评论