描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302523734丛书名: 高等学校软件工程专业系列教材
第1篇单元测试与集成测试实验
实验1语句和判定覆盖测试设计
实验2条件覆盖和条件组合覆盖测试设计
实验3修正条件/判定覆盖测试设计
实验4基于JUnit的单元测试
实验5基于CppUnit的单元测试
实验6基于JavaScript的单元测试
实验7基于PMD的静态测试
实验8基于Jenkins的集成测试
第2篇Web应用的系列测试实验
实验9Web应用的功能测试
实验10Web应用的性能测试
实验11Web应用的安全性测试
第3篇移动App的系列测试实验
实验12移动App功能与兼容性测试
实验13移动App功能自动化测试
实验14移动App代码反编译安全测试
实验15移动App敏感信息安全测试
第4篇验收测试及其框架解析实验
实验16基于Fitnesse的验收测试实验
实验17开源测试框架Fitnesse的解析
实验18搭建虚拟测试环境
实验19系统安装/卸载和兼容性测试实验
附加案例
教材中源代码
附录AJava环境配置
附录B邮件服务器搭建
附录CSVN环境安装配置
附录D关于JeeSite
《软件测试方法和技术》已经出版整整十年了,从第1版到现在的第3版,深受几百所大学教师的喜欢,也获得不少殊荣,如被评为“十二五”普通高等教育本科国家级规划教材、上海市普通高等学校优秀教材。但在《软件测试方法和技术》作为教材使用的过程中,教师们总感觉实验的辅导不够,缺少一本实验辅助教材,毕竟软件测试是一门实践性很强的专业课程。软件测试的教学需要加强对学生动手能力的培养,而这恰恰需要借助课程相关的实验来实现。通过实验使学生更好地理解所学的测试方法和技术,将来在工作中也可以更好地应用这些方法和技术。为此,我们组织业界工程师来编写这本实验教材,作为《软件测试方法和技术》教材的有力补充,从而使软件测试教学达到更佳的效果。
如今,软件开发模式从传统的瀑布模式已转向敏捷开发模式,软件开发和软件测试越来越趋于融合,这也意味着不仅专职的测试人员要开展软件测试工作,而且开发人员也要从事测试相关的工作。从这个角度看,单元测试就显得更为重要,在软件测试教学中需要进一步加强。况且,在校的大学生对业务的感受比较少,但他们对代码更熟悉、更感兴趣,更容易接受单元测试,这和业界的需求也正好一致。为此,本实验教材重视单元测试,为单元测试共设计了7个实验,不仅包括逻辑覆盖(如语句覆盖、判定覆盖、条件覆盖、MCDC等)的测试设计、动态测试等实验,而且包括静态测试分析工具的实验。考虑到大多数学校开设了C/C 、Java编程的课程,动态测试工具选择了JUnit和CppUnit。在敏捷开发中,持续集成是最重要的、优秀的开发实践之一,为此增加了基于Jenkins的集成测试实验作为集成测试的关键实验。所以,在第1篇单元测试与集成测试实验中共设计了8个实验,分别是:
实验1: 语句和判定覆盖测试设计
实验2: 条件覆盖和条件组合覆盖测试设计
实验3: 修正条件/判定覆盖测试设计
实验4: 基于JUnit的单元测试
实验5: 基于CppUnit的单元测试
实验6: 基于JavaScript的单元测试
实验7: 基于PMD的静态测试
实验8: 基于Jenkins的集成测试
目前,Windows应用越来越少,而Web应用、移动App应用成为主流,所以在系统测试中主要以Web应用、移动App应用作为测试的对象(案例),开展系统的功能测试、性能测试、安全性测试、兼容性测试等。这类实验不仅要求学生能够进行测试分析、测试设计,而且要求学生能够开发自动化测试脚本,借助测试工具来完成测试脚本的执行与结果分析。从测试分析与设计的方法、思路上看,在不同的平台上(Web、移动App、Windows桌面、Mac OS桌面等)系统的功能性测试和非功能性测试基本是一致的。如果学生要开展Windows或Mac OS桌面的系统测试实验,也可以参照Web应用、移动App应用的相关实验,并利用网络资源,做到举一反三,完成相应的实验。如果确实有困难,可以发邮件到[email protected]提出问题,我们会给予解答。根据大家的反映,如果这类需求还比较多,我们将在本书第2版增加Windows桌面、Mac OS桌面的相关测试实验。目前,我们在第2、3篇共设计了7个系统测试的实验,分别是:
实验9: Web应用的功能测试
实验10: Web应用的性能测试
实验11: Web应用的安全性测试
实验12: 移动App功能与兼容性测试
实验13: 移动App功能自动化测试
实验14: 移动App代码反编译安全测试
实验15: 移动App敏感信息安全测试
上述15个实验可以被看作软件测试教学的基本实验,可在基础教学计划中安排这些实验。但为了使教材内容相对完整,并照顾某些有测试方向的学校,增加了几个其他实验,覆盖验收测试、利用虚拟技术搭建测试环境等方面的内容。现在开源测试工具或框架很多,是在校学生很好的学习资源。针对开源测试工具的分析能够一举两得,既进一步了解测试工具的实现机制、对测试有更深的探讨与研究,又能学习开源框架的优秀编程实践,提升开发能力,为此特地增加了“开源测试框架Fitnesse的解析”实验。总之,在最后一篇,我们设计了4个实验,分别是:
实验16: 基于Fitnesse的验收测试实验
实验17: 开源测试框架Fitnesse的解析
实验18: 搭建虚拟测试环境
实验19: 系统安装/卸载和兼容性测试实验
本教材的每个实验,首先会说明实验目的、实验前提、实验内容、实验环境,让教师先检查一下是否具备这些条件和环境,明确实验目的和内容,然后再开始实验。如果不具备实验条件或环境,可先做些准备工作。每个实验在简要叙述实验环节之后给出详细的实验操作过程,教师和学生可以按教材的详细过程一步一步进行实验。实验需要安装的文件或文档,统一放在清华大学出版社网站(www.tup.com.cn),大家可以自行下载。
参与本教材编写的(按拼音顺序)有包蕾、蔡秋亮、陈林儿、姜华军、蒋琦、蒋兴、李燕青、林建宇、刘冉、刘涛、马海霞、王新颖、吴振宇、姚煌杰、郑碧娟、朱少民。
由于水平以及大家投入的时间都有限,教材中难免存在一些问题,希望大家不吝赐教,我们将尽力改正,力求不断推出更高质量的教材。
编者 于丁酉年
在第2篇中,我们以Web应用来展示系统的功能测试、性能测试和安全性测试,而今天比Web应用更为广泛的是移动应用,即基于安卓(Android)和iOS运行的App应用,本篇着重讨论移动应用的测试。
在实验之前需要了解移动应用及其测试的特点,移动App应用往往以混合模式(Hybrid)存在,兼具Native App(Android/iOS等操作系统之上开发的原生程序)和Web App (以HTML/HTML5程序)两种实现模式。针对Native App和Web App进行手工UI测试,其差别不大,但如果是进行自动化测试,则采用的技术不一样。Web应用之前已讨论,这里侧重进行移动应用的Native App的测试。其次,因为移动应用主要面向个人消费者,竞争非常激烈,移动应用开发的迭代速度快、持续发布。除此之外,还具有以下特点:
(1) 设备型号、品牌碎片化非常严重,根据opensignal.com调查报告,仅仅安卓手机的型号已经超过两万种。不同的型号的Android操作系统版本、屏幕尺寸、分辨率等条件不同,这就给移动App的兼容性测试、易用性测试带来极大的挑战。
(2) 手机电池容量有限,应用程序或算法设计得不好会造成频繁的网络连接、过度计算等,造成不必要的耗电。
(3) 移动应用的无线网络连接不够稳定,时断时续,给网络应用程序造成较大影响,容易造成App闪退。
(4) 多数App应用都有网络数据传输,需要考虑所耗费的(3GB/4GB)流量。
(5) 移动App测试还要特别考虑用户体验、安全性、个人隐私等方面的问题。
针对上述特点,除了通常意义的系统测试之外,移动App应用还会侧重考虑下列专项测试:
(1) 兼容性测试,包括硬件差异、操作系统版本等。
(2) 交互性测试,不同的操作同时发生,例如微信操作时电话来了。
(3) 用户体验测试,即用户易用性测试,如横竖切换、触摸、多指触摸、缩放、分页和导航等操作的灵活性、局限性。
(4) 耗电量测试,可以通过仪器来检测,也可以通过判断计算效率是否最优来进行评估。
(5) 网络流量测试,判断数据传输是否压缩、是否只传输必要的信息。
(6) 网络连接,在低速无线连接、不同网络间的切换情况下,软件容错性、稳定性如何; 在无网络的情况下,App是否支持离线操作。
(7) 性能测试,在移动设备端主要通过内存、进程占因CPU资源等来分析性能。
(8) 稳定性测试,移动App闪退问题比较多,如何更好地发现App应用崩溃问题。
本篇重点介绍下列4个移动应用方面的实验。
实验12: 移动App功能与兼容性测试
实验13: 移动App功能自动化测试
实验14: 移动App代码反编译安全测试
实验15: 移动App敏感信息安全测试
实验12
移动App功能与兼容性测试
(共2学时)
12.1实 验 目 的
(1) 巩固所学的移动端App功能测试方法,包括移动端兼容性测试;
(2) 提高移动端功能与兼容性测试策略及测试工具的使用能力。
12.2实 验 前 提
(1) 掌握移动端功能特性、兼容性的基础知识;
(2) 掌握移动端功能特性、兼容性的测试方法,包括基本特性测试、机型适配兼容、系统特性兼容、
输入法兼容等;
(3) 熟悉移动端功能与兼容性测试过程和工具使用的基本知识;
(4) 选择一个被测移动端应用(JayMe),可以到应用商店下载,在App Store下载JayMe iOS版、在应用宝下载JayMe Android版,或者扫描右侧的二维码;
(5) 了解JayMe基础功能路径与位置。
12.3实 验 内 容
本实验分为两部分,分别针对被测移动端应用进行移动端功能特性测试和兼容性测试。功能特性测试主要包括移动App常见特性测试与基本工具的使用,兼容性测试主要包括机型适配兼容、系统特性兼容、输入法兼容等。
12.4实 验 环 境
(1) 由3个学生组成一个测试小组,其中一位学生担任组长,协调大家的工作;
(2) 共需要两部手机,一部Android手机,一部iOS手机;
(3) 下载功能测试辅助工具Fiddler 2;
(4) 网络连接,能够登录被测系统(JayMe);
(5) 使用JayMe登录界面注册功能,注册一个测试账号;
(6) 为当前测试机安装搜狗输入法、讯飞输入法、谷歌拼音输入法。
12.5实验过程简述
(1) 明确功能测试对象: JayMe;
(2) 明确测试目的: 验证实验功能的正确性,以及与手机机型、系统、输入法等方面的兼容性;
(3) 选取实验功能;
(4) 小组讨论成员分工,制订测试计划;
(5) 小组讨论制定测试策略与范围;
(6) 设计功能测试用例;
(7) 执行测试用例并记录执行结果;
(8) 提交发现的缺陷;
(9) 整理汇总测试结果,对结果进行分析,得出测试结论并编写提交测试报告。
12.6实施具体功能测试过程
12.6.1选取实验功能
功能测试可以从正常以及异常流程展开用例设计。选取JayMe签到功能作为正常流程实验功能。针对移动App测试特性进行异常流程用例设计与测试,例如系统交叉事件测试(来电、短信、横竖屏、Home键、音量键、锁屏键、多个App切换等)。选取杰迷吧音乐条功能作为实验功能。
兼容性测试需要包括机型适配测试、系统特性测试、输入法兼容等。选取JayMe启动页功能、商品详情功能作为实验功能。
12.6.2制订测试计划
选定小组成员A进行功能特性测试,小组成员B进行兼容性测试,小组成员C负责缺陷提交与汇总报告提交。
12.6.3功能特性正常测试用例
主要针对功能的正常使用来设计测试用例,这里准备进行实验的功能为JayMe签到功能,如图121所示。
图121签到页面入口示意图
为验证JayMe可以正常签到,设计正常测试用例,如表121所示(Android与iOS均可如此设计)。
表121用户签到用例
用例标题: 正常流程01.用户签到
优先级: 1
前提
用户当天未签到
编号
用 例 步 骤
预 期 结 果
1
进入“我”页面,单击“菜单”→“签到”按钮
进入“签到”页面
2
单击页面下方“签到”按钮
弹出签到成功提示,“签到”按钮状态变为
“已签到”
此处可以利用fiddler工具辅助测试签到功能,工具使用见12.6.4节“常见抓包工具Fiddler的使用”。
12.6.4功能特性异常测试用例
主要针对功能的一些异常操作来设计相应的测试用例,这里准备进行实验的功能为JayMe杰迷吧音乐条功能,如图122所示。
图122音乐条功能入口示意图
为验证JayMe音乐条播放音乐情况下被来电打断后可正常暂停,设计异常测试用例,如表122所示(Android与iOS均可如此设计)。
表122异常流程测试用例一
用例标题: 异常流程01.音乐播放异常中断
优先级: 3
前提
单击“杰迷吧”标签,单击右下角“悬浮音乐”按钮,展开音乐条
编号
用 例 步 骤
预 期 结 果
1
手机A: 单击音乐条上的“播放音乐”按钮
音乐开始播放
2
手机B: 给手机A打电话
音乐暂停
3
继2,手机A挂断电话
音乐继续播放,不受影响
4
继2,手机B挂断电话
音乐继续播放,不受影响
为验证JayMe音乐条播放音乐在手机锁屏以后仍可正常播放,设计异常测试用例,如表123所示(Android与iOS均可如此设计)。
表123异常流程测试用例二
用例标题: 异常流程02.音乐播放锁屏
优先级: 3
前提
单击“杰迷吧”标签,单击右下角“悬浮音乐”按钮,展开音乐条
编号
用 例 步 骤
预 期 结 果
1
手机A: 单击音乐条上的“播放音乐”按钮
音乐开始播放
2
按下手机锁屏键
屏幕锁定,音乐持续播放
3
持续锁屏15分钟以上
音乐持续播放,不受影响
4
按下锁屏键,打开锁屏
音乐继续播放,不受影响
根据以上用例举例,同学们可自行设计播放音乐过程中按Home键音乐后台播放、多个App切换、按音量键调节音量的用例并在音乐条功能上执行,在这里不进行描述。
作为页面测试用例的第二个功能特性: JayMe我的壁纸功能如图123所示。
图123我的壁纸功能入口示意图
在JayMe设计中,手机横屏时,所有功能均需要保持竖屏且无异常。为此,设计异常测试用例,如表124所示(Android与iOS均可如此设计)。
表124异常流程测试用例三
用例标题: 异常流程03.我的壁纸横竖屏
优先级: 3
前提
单击“我页面”标签,单击右上角“菜单”按钮,进入我的壁纸
编号
用 例 步 骤
预 期 结 果
1
检查手机不处于横竖屏锁定状态
是
2
将手机横屏放置,单击其中一张壁纸
进入大图页面,仍然竖屏展示,无异常
大部分手机的“横竖屏锁定”按钮位于通知栏快捷菜单上,例如红米Note 2处于横竖屏锁定状态,如图124所示。
图124红米Note 2菜单示意图
12.6.5常见抓包工具Fiddler的使用
以JayMe签到功能为例,使用Fiddler查看后端返回签到结果,步骤如下。
(1) 启动Fiddler,选择菜单Tools→Fiddler Options,打开Fiddler Options对话框,如图125所示。
图125Fiddler设置介绍1
(2) 在Fiddler Options对话框中切换到Connections选项卡,勾选Allow remote computers to connect复选框,然后单击OK按钮,如图126所示。
图126Fiddler设置介绍2
(3) 在命令行中输入ipconfig,找到本机的IP地址,如图127所示。
图127Fiddler设置介绍3
(4) 这里以红米Note 2为例,打开Android设备的“设置”→WLAN菜单,找到要连接的网络,进入“网络详情”页面。设置“代理”为“手动”,在“主机名”后输入计算机的IP地址,在“端口”后输入8888,然后单击“确定”按钮,如图128所示。
图128Fiddler设置介绍4
(5) 然后启动JayMe,就可以在Fiddler主界面上看到手机的请求,如图129所示。
图129Fiddler设置介绍5
(6) 执行客户端签到操作,查看请求接口,如图1210所示。
图1210Fiddler设置介绍6
12.6.6兼容性测试
本次兼容性测试内容包括机型适配兼容、系统特性兼容、输入法兼容等。
1. 机型适配兼容
在机型适配兼容测试前先对当前Android、iOS各种机型固件所占市场份额进行调查(可以访问友盟获取,网址为http://www.umeng.com/reports.html?from=hp),尽量让有限的测试覆盖较多用户机型。同时功能适配要具有针对性,例如在一些UI相关功能测试时,要着重考虑在不同分辨率下UI的显示是否正常。
分别针对Android、iOS,为JayMe启动页功能设计兼容性测试用例,如表125和表126所示。
评论
还没有评论。