课程名称: 软件测试项目综合实训
报告题目: 简书网站测试
2022年6月8日
一、系统简介
简书是一个创作社区,任何用户均可以在其上面进行创作。用在简书上面可以方便的创作自己的写作作品,互相交流。
产品功能:享受沉浸式的创作体验,随时随地可以进行创作,同时支持离线保存,支持高清图片秒传,丰富的官网推荐专题打开创作思路,支持一键生成图片分享,支持私信、打赏、评论、点赞等社交功能,支持专题汇聚文章功能。
产品特点:
简书首页:简书首页是用户进入简书后的默认页面,根据用户所关注的专题、作者,实时为用户推送最新的创作作品。除了有和用户兴趣最相关的作品推送以外,简书首页同会为用户推荐热门的专题、创作者,帮助用户发现新的热门专题。
简书专题:专题是简书核心的作品分类方法,如图1所示,用户创作的作品会通过专题进行区分,用户可以自己创建专题,也可选择专题进行作品投稿。除了用户自行创建的专题以外,简书也专门运作了一些品牌性的专题,由简书招募的各地的主编来共同维护。用户在简书上浏览作品的时候,可以选择并定制自己喜欢的专题,方便浏览与创作。简书上已经有超过50万个作品专题,关注人数超过10万的专题数已经超过1,000个。
简书文集:简书文集是简书的创作者们的作品管理工具。如图2所示,用户可以创建自己的文集,给自己的每一个作品进行创作分类,帮助自己更好的管理作品。文集也可对外分享,用户主页上可以看到该用户所创作的文集。
客户端:
简书除了支持PC端登录,同时支持Android与iOS客户端登录
二、需求分析
2.1 用户需求
创作者—写作爱好者,作者和专业领域作者,他们的主要需求是有能够拥有完美的写做环境,并且能够让自己的文章便捷的出现在读者面前,与有共同爱好者能够交流读者—能够找到自己感兴趣的文章,并且能够与作者进行交流。
写作功能分析:点击左边图⽚上的提笔写篇⽂章按钮或者进⼊个⼈中⼼都可以进⾏撰写⽂章,极其简洁的界⾯,让⽤户可以进⼊⼀种沉浸式的写作氛围之中。同时⽀持富⽂本和markdown两种写作模式,对于有些喜欢⽤markdown写作的专业⼈⼠⽽⾔,⽆疑是巨⼤吸引。尤其是在移动平台上,由于markdown本质属于纯⽂本编辑,输⼊体验也会⽐⼀般的输⼊平台要好⼀些。
可以创建不同的⽂集来对⾃⼰的⽂章进⾏管理,也可以对⽂集进⾏删除和修改写完的⽂章可以向对应的多个专题进⾏投稿,让更多的⼈看到⾃⼰的作品,和读者进⾏沟通和交流,同时
发送到微博、QQ空间、微信、朋友圈等社交平台。能创建⾃⼰的专题,让别⼈来关注和投稿,对于投稿可以设置需要和不需要审核。满⾜了⽤户即当管理员⼜当作者的⾃我价值实现的⼼理需求评论打赏功能。只要注册简书帐号,你就可以在⽂章下设置打赏功能,评论也是默认就有的。评论和打赏,增加了我们在简书发布⽂章的动⼒。
阅读功能分析:⽩⾊主背景+⽂章⿊⾊字体,除⽂章标题和正⽂,另有粉灰蓝为字体颜⾊搭配,整体给⼈的阅读视觉效果还是不错的。在头部导航可以轻松找到⾃⼰感兴趣的部分进⼊阅读。
测试项主要有登录、注册、写文章的功能测试、接口测试、首页的界面测试、单元测试、数据库服务器进行性能测试,安全测试、接口测试等。
2.2 管理员需求
管理人员可以添加人员信息、修改人员信息、根据实际情况选择人员奖惩、根据实际情况进行人员调度。
添加人员信息,管理员登录后,点击添加人员信息按钮,弹出新窗体,管理员根据提示填写人员信息后点保存即保存至数据库,点击取消提示是否保存。管理员登录后,点击修改人员信息按钮,弹出新窗体,管理员根据提示修改人员信息后点保存即保存至数据库,点击取消提示是否保存。对创作者的文章进行审核,审核通过同意发表。管理员根据相关规定填写奖惩信息并保存。对会员权益进行管理,包括会员的开通和取消等。维护页面的正常运行,以确保其不会发生错版、显示不清等情况。对系统的主题和内容根据用户需求进行更新。
三、测试计划
需要用到的资源有:单元测试工具Junit,功能测试工具Selenium,接口测试工具Postman,性能测试工具LoadRunner。
进度安排
编号 | 任务名称 | 工期(天) | 开始时间 | 完成时间 | 负责人 |
---|---|---|---|---|---|
1 | 软件策划 | 1 | 6月6日 | 6月6日 | |
2 | 需求分析 | 1 | 6月6日 | 6月6日 | |
3 | 测试计划 | 1 | 6月7日 | 6月7日 | |
4 | 测试用例 | 1 | 6月8日 | 6月8日 | |
5 | 软件测试 | 1 | 6月6日 | 6月12日 | |
6 | 总结 | 1 | 6月6日 | 6月6日 |
四、测试用例
4.1黑盒测试用例设计
4.1.1 等价类划分
对于注册模块的测试用例设计
昵称要求不能重复,是2-15个字符,只能包含英文中文数字下划线,不能包含空格。
手机号要求由11位数字组成。
密码需要包含字母和数字,不能少于8个字符。
4.1.2 边界值分析
对于注册登录模块的测试用例设计
昵称要求不能重复,是2-15个字符,只能包含英文中文数字下划线,不能包含空格。
手机号要求由11位数字组成。
密码需要包含字母和数字,不能少于8个字符。
4.1.3 判定表
对于提现模块的测试用例设计
每次提现最小额度为¥100.00,提现会在 5 个工作日内到账,结算后的收益,提现不再收取手续费。如你被封号,无需满100即可提现,需要月初统一支付。
条件桩:
A1:提现金额大于¥100.00
A2:已被封号
A3:提现已过5天
动作桩:
B1:提现成功
B2:资金到账
4.1.4 因果图
因果图法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。
对于提现模块的测试用例设计
每次提现最小额度为¥100.00,提现会在 5 个工作日内到账,结算后的收益,提现不再收取手续费。如你被封号,无需满100即可提现,需要月初统一支付。
4.1.5 正交表pairwise
对于文章互动模块的测试用例设计
选择3个有关因素进行试验,分别为反应评论(A)、点赞(B)、收藏(C),并确定了试验范围如下:
A: 1~10000
B: 1~10000
C: 1~10000
试验目的是确定A、B、C对文章有什么影响,哪些是主要的,哪些是次要的,即评论、点赞、收藏各为多少才能使文章出现在首页。
对因子A、因子B和C在试验范围内分别选了三个水平:
A:A1=10,C,A2=5000,C,A3=10000
B:B1=10,B2=5000,B3=10000
C:C1=510,C2=5000,C3=10000
因子数*(水平数-1)+1 = 试验次数
L7(3^3) ~ L9(3^4)
4.1.6 场景设置
对于文章发表模块的测试用例设计
4.1.7 错误推测
根据经验或直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的测试用例。
4.2白盒测试用例设计
对图片上传功能进行用例设计。
图片上传要求先判断信息是否填写完整,若信息不完成则提示“请填写必要信息”,完整则进入下一个判断检测:检测用户是否登录、用户权限是否足够,若用户没有登录提示“请先登录”,若用户权限不足提示“权限不足”,两项都满足对图片进行打包上传,若图片上传失败提示“上传失败”,上传成功则提示“上传成功”并返回首页。
4.2.1 语句覆盖
用例要保证程序中的每一个语句至少被执行一次。
4.2.2 分支覆盖
使得程序中每个判断的取真和取假至少经历一次,即判断的真假均曾被满足。
4.2.3 条件覆盖
条件覆盖要求设计用例时针对判断语句里面每个条件表达式true 和 false各取值一次,不考判断语句的计算结果(不考虑组合情况)
表4.2.2-1 条件覆盖
条件1 | 条件2 | 条件3 | 条件4 | 路经 |
---|---|---|---|---|
false | true | true | true | ab |
true | false | true | true | acd |
true | true | false | true | acef |
true | true | true | false | acegh |
对删除用户功能进行用例设计。
删除用户要求检测用户是否登录、用户权限是否足够,若用户没有登录提示“请先登录”,若用户权限不足提示“权限不足”,两项都满足对用户进行删除操作并返回首页。
4.2.4 判定/条件覆盖
设计测试用例时,使得判断语句中每个条件表达式的所有可能结果至少出现一次,每个判断语句本身所有可能结果也至少出现一次。
4.2.5 组合覆盖
设计测试用例时,使得每个判断语句中条件结果的所有可能组合至少出现一次。
4.2.6 路径覆盖
设计测试用例时,覆盖程序中所有可能的执行路径。
对图片上传功能进行用例设计。
五、测试执行过程
测试工具选择和使用。
测试具体执行过程:截取测试时界面,界面中要有合适的数据。
测试管理工具使用。
5.1 单元测试
JUnit 是一个 Java 编程语言的单元测试框架。JUnit 在测试驱动的开发方面有很重要的发展,是起源于 JUnit 的一个统称为 xUnit 的单元测试框架之一。可以书写一系列的测试方法,对项目所有的接口或者方法进行单元测试。 启动后,自动化测试,并判断执行结果, 不需要人为的干预。只需要查看最后结果,就知道整个项目的方法接口是否通畅。 每个单元测试用例相对独立,由Junit 启动,自动调用。不需要添加额外的调用语句。 添加,删除,屏蔽测试方法,不影响其他的测试方法。 开源框架都对JUnit 有相应的支持。
对基于MongoDB GridFSBucket的文件下载功能进行单元测试
5.2 功能测试
5.2.1 业务逻辑功能测试
对简书网站、简书APP的Web端、PC端、手机端进行的业务逻辑功能测试
业务层的测试,主要是对照需求测试,测试需求中的功能点是否都实现,且实现的功能与需求描述相符合。
对文章修改功能进行用例设计。
5.2.2 界面测试
对简书网站、简书APP的Web端、PC端、手机端进行的界面测试
5.2.3 控件测试
对简书网站、简书APP的Web端、PC端、手机端进行的控件测试
5.2.4 易用性测试
对简书网站、简书APP的Web端、PC端、手机端进行的易用性测试
5.2.5 安装/卸载测试
下载简书最新版本,进行软件安装测试,测试场景包括安装、卸载,并尝试下载低版本,然后进行测试升级操作,并在尝试不同的平台(如:Linux,Android,iOS)下进行安装、卸载测试。
5.2.6 兼容性测试
对简书网站、简书APP的Web端、PC端、手机端进行的兼容性测试
5.2.7 Selenium
Selenium是一个Web的自动化测试工具,为网站自动化测试而开发的,可以按指定的命令自动操作,不同是Selenium 可以直接运行在浏览器上,它支持所有主流的浏览器。Selenium 可以根据我们的指令,让浏览器自动加载页面,获取需要的数据,甚至页面截屏,或者判断网站上某些动作是否发生。
对简书网站、简书的Web页面使用Selenium进行自动化测试。
5.3 接口测试
Postman是一个接口测试工具,在做接口测试的时候,Postman相当于一个客户端,它可以模拟用户发起的各类HTTP请求,将请求数据发送至服务端,获取对应的响应结果,从而验证响应中的结果数据是否和预期值相匹配。
5.4 性能测试
性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。
LoadRunner是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整个企业架构进行测试。LoadRunner是一种适用于各种体系架构的自动负载测试工具,它能预测系统行为并优化系统性能。.
对简书网站、简书的Web页面使用Selenium进行性能测试
六、结论
测试组内部要有计划:介入项目测试以后,理论上讲是应该配合项目组的测试工作。但个人认为这样测试组方面工作会比较被动,跟随项目组指定的测试并不能比较全面的覆盖到系统全部功能或者绝大多数功能。如更新一块,就让你测一块,这样无形中就会疏漏其他模块。测试组内部可以根据项目整体工作的安排情况也应该有自己的测试计划,即完整测试轮次的计划,这样能更好的把握系统整体功能情况。这部分工作在进驻客户现场测试时应与项目组长沟通,明确每日工作流程,如版本更新时间约定、内部更新测试安排以及配合指导用户测试等工作。
项目的测试进度控制:主要是按照项目计划进行的,按照项目组计划要求完成测试任务、提交测试类相关文档,包括制定内部测试计划、测试案例的完善、执行测试、缺陷跟踪以及bug 回归测试等。协调项目的内部测试工作,配合项目工作,共同保证项目质量。项目测试的问题跟踪及处理采用每日进行修改问题回归测试工作,每日同步更新问题跟踪单的模式,按照规划时间完成系统更新测试等。
要加强学习和沟通:在进驻客户现场测试后,测试人员的工作要配合项目组,也要指导和协调客户测试。项目组内部共同探讨解决问题的方法,向各模块负责人学习模块功能处理方式,向业务人员了解系统中涉及的业务知识点,两者结合起来进行模块功能测试。与客户接触吸收新的业务知识,积累测试方面必须的业务知识点,这些都做公司系统测试应有的测试基础,或者说银行金融行业项目测试工作的素养。也可以进步一提高与客户、与项目组内的沟通能力和协调能力。多参考客户测试的测试案例及测试过程中提出的问题,也能为自己的测试工作打下一个好的基础。
要经常总结和吸收项目经验教训:总结回顾以往的项目测试经验可以更好的指导以后的测试工作,也会提高系统缺陷和业务处理流程方面不合理情况的发现率。测试出来的问题与项目组沟通也会比较容易.。鉴于以前的项目经验,也可以向项目组提出了一些完善性意见和功能实现的处理方式。
个人得失及不足:作为几次项目测试的负责人,对于日常的测试流程、测试任务分配、测试执行、缺陷跟踪、协调内部测试及协调客户测试方面能力均得到了进一步提高,理清了项目整个过程中测试小组的工作过程以及后期的项目移交工作。同时也对系统相应的业务知识有了更进一步认知。相关业务知识方面还需要进一步加强,测试技能及测试管理方面还需要进一步完善学习。更好的吸收项目经验,做好以后的补丁测试工作及其他项目的测试工作。我们要从此次的合作中吸取经验,提高自身业务知识。