• 面试准备——(一)测试基础(3)测试用例的编写


    http://www.cnblogs.com/lesleysbw/p/6402364.html

     

    一、游戏测试

    1. 你有玩过什么游戏

    一般玩的比较多的是手游,比如:糖果传奇、消灭星星、密室逃脱,以及前段时间比较风靡的阴阳师。

    在电脑上,QQ欢乐四川麻将,以前还会玩一些经营类游戏,初高中的时候是:QQ宠物、QQ农场,大学的时候玩过模拟人生

    2. 什么样的游戏可以称为一个好的游戏

    1. 首先,最直观的感觉,精致的画风、恰到好处的背景音乐和优秀的故事情节。

    对于游戏第一眼是UI界面,整体的画风、恰到好处的背景音乐,会让玩家赏心悦目,眼前一亮。

    其次,一个大型的一点的游戏,相当于是一个虚拟世界,所以这个世界首先要有逻辑、故事情节不用太复杂,但是引人入胜。

    2.易操作性

    操作不能过于复杂和困难。

    最经典的俄罗斯方块,操作只有上下左右,但是却一直延续至今

    3. 竞技性,设置的关卡难但是经过努力会过,关卡过了以后有奖励机制

    游戏中设置关卡是一定有难度阶梯的,随着前几关的熟悉,到后面越来越难。但是难度也不能特别不合理,不能称为一种套路

    例如,之前我有玩过一个游戏,叫做小时代的换装游戏。

    每一个关卡就是一个女生在打扮自己,然后评分,只有达到一定分数才能成功闯关,并且解锁更高级的衣服。

    开始我玩的挺开心的,但是后面发现,每套衣服的搭配成了一种套路,不管这一关卡的主题, 只要搭配了其中几件很难得到的衣服就绝对可以有高分。同时,到了后面,关卡所必须的衣服实在太难,只能花钱购买。所以无奈之下只有弃玩。

    4. 有抽奖或者连续登录、节假日奖励机制,可以让玩家保持一个新鲜度,并且刺激每天玩耍。

    比如之前我玩的糖果传奇,累计登录的时间越久获得的奖励越高级,一旦终止所有奖励从头开始,于是我为了这个奖励每天都会登录,一登录就会忍不住玩耍。

    其次,抽奖的东西是不确定的,存在是特别好的道具的可能,所以我每天最期待的就是抽奖。

    2. 游戏测试

    1. UI测试:

    画风、故事情节、背景音乐、文字的契合度

    图片的显示、文字的排版、布局等

    2. 功能测试

    游戏分类很广泛,例如:射击类、经营类、竞技类等等。首先根据需求说明书,确定所测部分的具体流程、功能。

    1. 我认为游戏测试最重要的是数值。

    数值代表了一个角色的多种状态、行为、装备、技能、财富,一旦一个发生了变化,其他也会随之变化。同时如果一旦出错,例如我之前玩candy crush原有的金币全部消失,则会引起玩家极大的不满,或者弃玩。

    所以尽可能的用边界值分析法和等价类划分法去模拟各种可能,测试角色的各种情况。

    2. 活动

    游戏会根据节假日、累计登录、抽奖创建各种抽奖或者奖励活动。所以我们需要确认活动的开始、终止时间,累计登录的次数、奖励是否和预期相同等

    对于组队完成任务这种,更加复杂,需要将多角色融合在一起。

    3. 存档。

    1. 如果暂停,是否有存档
    2. 在游戏中途如果退出是否有存档
    3. 如果需要联网,如果断网,是否有存档

    3. 可用性测试

    比如:

    1. 需要重力感应的游戏,是否能够很好的识别到我们的动作。

    2. 触屏的接触点灵敏

    4. 性能测试

    在游戏中,打开时间太长,或者游戏过程中出现卡顿都是会让玩家有厌倦感的。

    1)手游:主要是客户端的性能测试

    打开游戏、在游戏中响应时间、是否出现卡顿情况,内存占有、耗电量、流量等。

    2)网游:服务器端的性能也十分重要

    所以还需要对服务器端的CPU、内存情况进行测试

    5. 安全测试

    1. 用户端:用户是否需要登录/注册,如果需要注册,在注册框应该考虑:

    1. 防止JS脚本注入、SQL语句注入
    2. 防止暴力登陆——登录密码连续错误几次,需等待时间或者短信验证
    3. 是否允许一台机器多用户,或者一个用户在多台机器上登录

    2. 服务器端:

    1. 用户存档信息是否安全、完整
    2. 禁止外挂
    3. 合服时,信息的存储

    6. 兼容性测试

    不同的浏览器、手机端、电脑系统。

    7. 压力测试、强度测试

    长时间多用户在线,服务器的CPU、内存情况,

    3. 测试俄罗斯方块

    1. UI界面

    图像显示、文字排版是否合理规范,背景音乐是否恰当

    2. 功能测试:

    首先分析,俄罗斯方块主要有四个操作:左移、右移、变换方块、向下加速。

    操作过程是:一个方块如果填补了一行的空缺之处,则消除对应行,否则一直累积,如果累积的高度达到了最大限制,则失败。

    结合等价类划分法和边界值分析法,我们设计测试用例主要从几个方面:

    1. 四个操作是否恰到好处,反应不会太迟钝也不会太灵明
    2. 当一个方块掉下去填补了一行的空缺处后,是否填补行消除,但是方块其他部分没有消失,未消除行整体向下移。
    3. 当一个方块掉下去后,若没有行被填补,则行数累加
    4. 一些边界值情况:只有一行就到最大行了,这个时候消除一行是否有效降低行数;不做操作,等待游戏自己结束的情况等。
    5. 如果暂停,是否有存档
    6. 在游戏中途如果退出是否有存档
    7. 如果需要联网,如果断网,是否有存档

    3. 可用性测试;

    1. 如果是四个上下左右键,则检查灵敏度且键盘放置的位置是否合适
    2. 如果是按照重力感应,检测对动作的识别度

    4. 性能测试:

    1. 客户端:CPU、内存、耗电情况、流量情况、游戏

    5. 安全性:

    1. 用户端:用户是否需要登录/注册,如果需要注册,在注册框应该考虑:

    1. 防止JS脚本注入、SQL语句注入
    2. 防止暴力登陆——登录密码连续错误几次,需等待时间或者短信验证
    3. 是否允许一台机器多用户,或者一个用户在多台机器上登录

    2. 服务器端:

    1. 用户存档信息是否安全、完整
    2. 禁止外挂

    6. 兼容性测试

    不同的浏览器、手机端、电脑系统

    7. 压力测试、强度测试

    长时间多用户在线,服务器的CPU、内存情况,

    一、应用模块的测试

    1.如何按排对农餐的测试?

    农餐对接系统分为了两大子系统,一个是个人订餐系统,二是餐馆、个人与农产品供应商进行农产品交易系统。我主要负责组织测试人员对该系统进行测试。

    第一步,分析需求规格说明书,制定测试计划。测试计划包括了5W1H,也就是Why、When、What、Who、Where、How。

    首先,我们确定选用了禅道Bug管理系统,用来管理需求、测试用例和Bug。

    其次,根据项目的开发时间和条件,确定使用:Jenkins持续集成工具、git版本控制工具,以及Selenium自动化测试工具、Unittest框架。

    第二步,了解技术架构,设计测试方案、测试用例。

    首先,因为最开始有涉及到使用Junit进行单元测试,所以对系统的架构有一定的了解,定位可能存在问题的瓶颈点。

    其次,将测试用例涵盖的范围设定在7个方面:数据库测试、功能测试、性能测试、压力测试、安全性测试、兼容性测试、易用性测试。其中,设计测试用例的原则是:利用等价类划分法、边界值分析法、场景设计法等尽量多的覆盖所有的路径。——设计测试用例

    第三步,进行测试。——搭建项目框架

    在测试前先搭好测试框架,准备好各种测试要用到的工具,然后按照测试方案流程进行测试。

    1. 使用PO设计模式

    将一个页面内的操作对象(按钮框、输入框等)和操作的步骤封装在每个Page里面,以Page为单位进行管理。这样Selenium测试用例能够通过调用页面类来获取页面元素,从而巧妙的避开了当页面元素的ID等属性发生变化时,修改代码的情况。——>提高了代码的复用性、可读性及减少工作量。

    2. Selenium+Unit test搭建四层框架——实现数据、脚本、业务逻辑分离(关键字驱动)

    1)基础层(BasePage)

    设计一个基本的Page类,所有页面皆继承该类。提供了一个页面需要实现的基本功能及公共方法。

    2)业务逻辑层(Pages):

    按照PO设计模式,将每个页面抽象为一个类,放在Pages包里面,每个页面继承Basepage,可调用Data层数据,内容包括:

    • 该页面所有的操作对象属性
    • 实现的功能

    3)数据层(Data)

    该层存放相关数据,例如:用户数据和密码。在测试用例可通过调用数据层的数据来进行操作。

    4)测试用例层(Testcases)

    每一个测试用例testcase都对应Pages里面的一个页面,继承unnitest.TestCase类。通过调用对应页面类的方法,数据层的数据、增加断言(assert)来验证功能的正确性。

    此外通过Jenkins自动执行测试、代码质量检测和部署到测试服务器、部署到生产服务器上

    3. 自动化测试执行策略——三个阶段

    使用Jenkins持续集成工具来执行测试脚本和部署,主要设置了三个任务:

    • tm_test:用于执行自动化测试脚本,检测代码质量
    • tm_staging_deploy:用于在测试服务器上部署代码
    • tm_deploy:用于在生产服务器上部署

    我们将测试分为三个阶段

    1. 开发新的需求时,创建分支devN。当在这个分支中,需求开发完成或者Bug修复,就配合测试人员利用JUNit框架进行单元测试以及功能测试。通过测试后,合并到master上。

    2. 当master有变动,则触发tm_test任务,执行自动化测试脚本和代码质量检测。如果通过则自动出发tm_staging_deploy,部署到测试服务器,如果没有通过,自动化测试脚本会将Bug截图发送给测试人员。

    3. 登陆生产服务器上,对网站进行功能测试。如果通过测试,则手动触发tm_deploy,部署到生产服务器。如果没有通过,在禅道管理系统上把bug指派给相应模块的开发人员。

    第四步,发布

    首先考虑灰度发布,先让小部分群体试用,如果有什么问题就能够及时发现、改正。

    2. 选择农餐的一个测试模块,设计测试用例。

    (1)登录模块

    先分析这个模块的需求设计说明书,确认这个模块的界面、实现功能和步骤、其他技术设计。确定容易出错的地方。

    1)这个模块界面组成部分:用户名输入框、密码输入框、登录按钮、“记住用户名”单选项、忘记密码链接、免费注册链接。

    2)功能实现步骤:

    输入用户名——输入密码——输入验证码——点击“登录”,则可以跳转到对应的页面(验证点:跳转页面有:欢迎xxx登录),最后退出。

    3)其他设计需求:例如用户名的限制是:长度6-18位的非汉字,数字、字符、下划线的组合

    其次确认测试的方案:

    • 测试分为六个方面
    • 使用等价类划分法和边界值法,
    • 用人工测试实现。
    • 测试的目标:当测试用例基本都通过,没有一、二级的BUG出现,剩余BUG不影响功能则可以验收本功能模块

    1. 界面测试:

    • 界面布局是否合理,文字排版是否整齐
    • textbox和按钮的长度、高度是否符合要求

    2. 功能测试:

    我们根据等价类划分法和边界值分析设计测试用例:

    • 链接测试:点击“忘记密码”和“免费注册”能够正确的链接到相应的页面
    • 输入正确的用户名、密码,点击“登录”按钮,验证是否跳转到正确的界面。
    • 输入错误的用户名、密码,点击“登录”,验证是否为提示“用户名/密码错误”
    • 输入空的用户名或密码,点击“登录”,验证是否提示“用户名/密码不能为空”
    • 输入的用户名和密码中含有特殊的字符,和其他非英文字符,系统会提示或者过滤
    • 用户名和密码前后有空格的情况
    • 密码是否以星号显示
    • 点击“记住用户名”,刷新页面后,用户名输入框能够自动填充

    3. 性能测试:

    在客户端:

    • 打开登录页面所需要的时间,是否满足设计的需求
    • 当输入正确的用户名和密码后,登录成功跳转到新页面,不超过5秒(满足设计需求)

    在服务器端:资源利用率(CPU使用率,内存占用率),吞吐率,发布耗时,各接口平均响应时间等等

    其次,我们设定预期正常并发用户量为1000,最高并发量为3000,我们使用Jmeter+BadBoy测试在这两个并发量范围内的网站响应速度和内存使用情况。

    4. 安全测试

    1. 检查登录生成的Cookie是否为httpOnly,这是为了防止XSS(跨站脚本攻击),窃取cooki内容。
    2. 用户名和密码的的输入框,应该禁止输入脚本 (防止XSS攻击)
    3. 用户名和密码的输入框,应该屏蔽SQL 注入攻击
    4. 错误登录的次数限制(防止暴力登录)
    5. 用户名和密码是否通过加密的方式,发送给服务器
    6. 用户明和密码的验证,应该是服务器端验证,而不能单单是在客户端用JavaScript
    7. 考虑是否支持多用户在同一机器上登录
    8. 考虑同一用户在多台机器上运行

    5. 可用性测试

    1. 是否可以全用键盘操作——快捷键
    2. 输入用户名、密码后,按回车能否登录

    6. 兼容性测试

    1. 不同的浏览器
    2. 不同的设备:电脑、手机、IPad
    3. 不同的平台:Mac、Windows
    4. 不同的分辨率

     (2)对搜索栏进行测试——对百度首页进行测试

    首先根据需求说明书对这个功能模块进行分析,确认UI界面、实现的功能和步骤、其他技术设计。确定容易出错的地方。

    1)模块的界面:首先搜索类别(食品还是餐馆)的下拉框,其次有一个输入框供输入查询的内容,在输入框右边有一个查询按钮,下边是热搜菜品。

    2)模块的功能及实现步骤:

    1. 直接点击:搜索框下面的热搜菜名,就可以跳转到对应菜品所在搜索页面;2. 首先选择类别:食品或者餐馆,其次在输入框中输入查询的内容,最后点击查询。

    3)其他技术设计:

    • 搜索框能进行模糊匹配、完全匹配;
    • 搜索框能够识别出以空格/tab/逗号隔开的关键字
    • 输入框的的字符长度限制,

    其次确认测试的方案:

    • 测试分为六个方面
    • 使用等价类划分法和边界值法,
    • 用人工测试实现。
    • 测试的目标:当测试用例基本都通过,没有一、二级的BUG出现,剩余BUG不影响功能则可以验收本功能模块

    1. 界面测试:

    • 搜索页面布局合理,无错别字
    • 查看选择类别框、输入框及查询按钮是否在同一水平线、布局合理
    • 查看输入框下边的热搜菜品是否布局合理、无错别字
    • 搜索出的结果展示,布局合理
    • 已查看过的菜品、店铺链接颜色呈灰色处理,与没有点击过的结果链接区分
    • 结果数量庞大时,分页布局合理

    2. 功能测试。

    按照等价类划分法和边界值法设计测试用例

    • 链接测试:点击输入框下面的热搜菜名,会正确跳转到该菜名指向的页面
    • 选择搜索“菜品”,输入部分菜品名,点击查询,查看显示结果是否正确
    • 选择搜索“菜品”,输入完全的菜品名,点击查询,查看显示结果是否正确
    • 选择搜索“餐馆”,输入部分餐馆名,点击查询,查看显示结果是否正确
    • 选择搜索“餐馆”,输入完全的菜品名,点击查询,查看显示结果是否正确
    • 多个关键字中间加入空格/tab/逗号后系统的结果是否正确
    • 输入内容为空,点击“查询”,验证系统如何处理
    • 输入内容为空格,点击“查看”,验证系统如何处理
    • 输入合法长度的字符串后,加空格,验证搜索结果
    • 输入空格+合法长度的字符串,验证搜索结果
    • 输入字符串长度等于及超过允许的字符串范围,验证系统如何处理
    • 输入特殊字符,验证系统如何处理
    • 多次输入相同内容,结果是否相同

    3. 可用性测试:

    • 在输入框是否可以用快捷键
    • 输入框是否支持回车

    4. 安全测试

    • 输入框禁止脚本
    • 输入框禁止SQL注入,检索sql select语句等
    • 特殊字符的检索
    • 被删除、加密、授权的数据是不允许被查出来的(淘宝!)

    5. 性能测试

    在客户端:

    • 搜索页面打开的速度是否满足设计需求
    • 搜索出结果消耗的时间是否满足设计需求

    在服务器端:资源利用率(CPU使用率,内存占用率),吞吐率,发布耗时,各接口平均响应时间等等

    6. 兼容性测试

    • 多平台:windows、MAC
    • 移动设备:android、iphone、ipad、surface
    • 多浏览器:Safari、Ie、Firefox等
    • 不同分辨率

    7. 本地测试

    登录时,自动切换到响应国家的搜索页面(淘宝)

    3. 如何测试微信红包——腾讯

    将测试阶段分为四个步骤:

    一、首先根据需求说明书确认这个模块的UI界面、实现的功能和步骤、及其他技术设计架构,定位可能出错的地方。

    二、其次确认测试的方案(5W1H):

    • Why:测试的原因,即当前产品的现状,和测试的目标、上线的质量指标
    • What:测试的内容(微信红包模块)
    • When:测试的时间范围和周期
    • Who:测试的人员安排
    • Where:测试相关文档存放的位置
    • How:确定测试的策略:测试用例编写方法(例如:边界值分析、等价化分类等)、测试的工具等

    三、进行测试。

    在第一步中,我们已经确认了微信红包的功能及步骤:

    一)作为发红包者:

    1. 选择个人/群当作发红包对象

    2. 进入聊天界面,点击右下角“+”——点击第二排第一个“红包”,进入“填写红包信息”页面

    3. 在第一个输入框中:输入金额

    4. 在第二个输入框中:输入红包祝福语如果是群发红包,还会输入红包的个数)

    5. 点击“塞钱进红包”

    6. 弹出支付提升框,选择“支付的方式”,点击“确认支付”,输入密码/输入指纹

    7. 回到聊天界面,有一个红包显示,不会显示金额,但是会显示输入的红包祝福语

    8. 如果该红包被领取了,会在聊天记录中,显示“XXX领取了你的红包”

    9. 再点击红包,会显示你发的金额,及领取的人。(如果是在群发红包,会显示已领取红包的个数、金额,领取的人和对应的金额。全部红包领取完以后,会特别标记领取金额最多人为“手气最佳者”)

    二)作为首红包者

    1. 微信提示,收到红包(在电脑上不可显示)

    2. 点击红包——点击“开”

    3. 出现领取红包的信息,包括:红包祝福语、金额、“已存入红包、直接提现”——链接到“微信零钱”、“留言”、“查看我的红包记录”(如果是群发红包,还可以看到其他人领取的情况和最佳手气者)

    4. 点击左上角“关闭”,聊天记录出现一条“你已领取XXX红包”

    从测试的内容,我们确认测试从八个方面展开

    1. UI界面测试:包括

    • 编写红包信息时,UI界面是否规范合理、无错别字
    • 发送红包后,在聊天界面中,红包显示是否规范、红包祝福语是否显示合理。
    • 再他人领取红包后,点击进红包,红包领取信息是否排版规范(特别是多人领取的情况)
    • 其他人领取红包后/自己领取他人红包后,在聊天界面显示领取红包信息是否规范、合理

    2. 功能测试:

    首先进行链接测试:链接页面的正确

    一)发红包时

    • 刚点开一个人/群聊天框,点击右下角“+”,正确显示各项功能
    • 点击“红包”,正确链接到“填写红包信息”页面
    • 在“填写红包信息”页面,点击右上角问号,正确链接到“微信红包疑问解答”页面
    • 在“填写红包信息”页面点击“关闭”,则离开这个页面,回到聊天界面

    二)在领取红包时

    • 点击红包,能够正确弹出“开红包”
    • 点击“开”后,正确链接到领取红包的信息
    • 在领取红包信息页面,点击“已存入零钱,可用于发红包”——链接到“零钱”
    • 点击“留言”,正确链接到填写留言页面
    • 点击“查看我的红包记录”,正确链接到“收到的红包”页面
    • 点击“返回”,返回聊天界面

    其次,根据边界值分析法和等价类划分法设计测试用例,主要测试功能:

    • 输入金额(在0-200元之间,0元,-1元、200元,201元,0.00元,在特殊日子,测试520等;以及输入的金额与零钱不足——跳转到其他支付方式,如果输入金额其他支付方式也不满足)
    • 输入红包个数(0、100、101,超过群成员个数、小数、负数)
    • 输入红包祝福语:特殊字符、空格、空、超过字符串长度
    • 在支付时,选择各种支付方式,输入密码/指纹(正确、错误)
    • 点击红包(个人红包/群红包-可能已经抢完了,不能再抢;已过期红包-不能再抢)

    3. 可用性测试:

    • 在输入框是否可以用快捷键
    • 输入框是否支持回车

    4. 安全测试

    • 在输入红包信息的输入框中能识别特殊字符、禁止JS脚本、禁止SQL语句注入
    • 过期红包(>24小时),不能领取,并且退回到零钱里面
    • 调用“支付”接口的安全性(支付密码的安全传输、验证)

    5. 性能测试:

    即测试在客户端,发红包、打开红包等响应时间是否符合需求设计;

    在服务器端,资源利用率(CPU使用率,内存占用率),吞吐率,发布耗时,各接口平均响应时间等等

    6. 负载测试

    其次,通过增加并发量来测试系统性能情况。

    7. 压力测试

    最后,还要进行压力测试,即评估系统处于、超过预期负载时的处理能力。

    还可以进行强度测试:检查程序对异常情况的抵抗能力,及在极限情况性能下降是否在允许的范围内。

    疲劳强度测试:测试系统在长时间运行后的性能测试表现

    8. 兼容性测试

    • 不同的系统:安卓、苹果
    • 不同的移动设备:ipad、手机
    • 不同的分辨率

    四、最后发布

    发布的时候必须要考虑灰度发布,先让小部分群体先试用,如果有什么问题能够更好更早的发现,然后进行相应的应对措施。

    粲粲姐的答案:

    第一步,根据需求进行分析,了解需求需要实现的是什么功能,假设我对这个需求比较了解,我还会对该需求的风险进行一个初步的判断。

    第二步,我会先去大致了解微信红包的技术架构(定位可能存在问题的瓶颈点)然后根据需求拟定测试方案以及测试用例。测试方案所要考虑的内容比较多且也比较全面,主要包括:测试的范围(功能测试,性能测试,压力测试,安全测试,这些测试的测试点,测试的必要性,工具),测试目标,上线质量指标,测试策略,测试轮数,进度安排)测试方案涵盖所有测试过程,质量保障计划的提纲和方向。测试用例主要涵盖需求上的一些功能点以及异常点,边界值。

    第三步,主要开始进行测试,在测试前先搭好测试框架,准备好各种测试要用到的工具,然后按照测试方案流程进行测试。对于微信红包,最基础的是要能够使得需求上的功能点都能正确实现。(这一点可以按照测试用例来进行,比如红包个数为零时,金额上限),因为考虑到微信红包的用户量大,高并发性,所以还需要考虑对各种性能的测试,比如资源利用率(CPU使用率,内存占用率),吞吐率,发布耗时,各接口平均响应时间等等,然后进行压力测试。因为使用的用户范围广,自然还要考虑到兼容性问题,是否不同的手机都能正常使用这一功能,并且还需要考虑安全测试。如果测试结束后能够达到上线指标,则可以考虑发布。

    第四步,发布的时候必须要考虑灰度发布,先让小部分群体先试用,如果有什么问题能够更好更早的发现,然后进行相应的应对措施。

    4. 微信公众号测试:

    1)接口配置测试

    由于微信公众号需要调用微信的接口,所以我们首先需要进行调用接口配置测试。查看调用接口后,基本原声功能是否正常运行。例如:自定义菜单展示和跳转、自动回复等功能

    2)功能测试

    其次,我们再测试自己设计的各项功能,主要从以下几个方面:

    • 界面测试:检查布局是否规范、字体和图片显示是否正常
    • 链接测试:能够正确的跳转公众号里面的页面
    • 逻辑功能测试:实现需求中所期望的功能

    3)数据库测试

    • 检查数据库的一致性:例如用户提交的表单信息能否正确存入数据库并且读取
    • 对特殊字符的处理,例如:如果用户输入or,不处理读进数据库的话,可能导致严重的后果
    • 数据库的加密性:用户信息不会被泄漏
    • 当访问量过大时,数据库查询性能

    4)性能测试

    首先,我们设定一个预期的正常用户访问量和最高用户访问量,然后分别在这两个数值范围内设定并发用户数目,来测试在这些情况下系统的性能,例如:页面响应时间、内存使用情况。

    其次,再逐步增加并发用户量,观察在各种负载情况下系统的性能,直到达到系统的瓶颈。也就是负载测试

    最后,评估系统在处于超过预期并发数(或者内存耗尽)的情况下的处理能力。也就是压力测试。

    5)安全性测试

    主要考虑三个方面:

    1. cookie为HttpOnly,防止XSS攻击

    2. 在自己HTML5页面中传输数据时,数据会加密,不会被拦截

    3. 如果与用户有交互,在用户输入框中,对特殊字符有处理、不能输入脚本、SQL语句。

    6)兼容性测试

    1. 主流浏览器
    2. 不同电脑平台:Windows、Mac
    3. 不同移动设备:iPad、手机(Android、iPhone)
    4. 不同分辨率

    二、实物的测试

    1. 杯子的测试

    首先分析杯子的设计需求说明书,确定它的界面设计、功能可和另一些制作技术(例如:材质,耐热程度等),其次从以下几个方面进行测试:

    1. 界面测试

    • 杯子图案是否符合设计需求,印刷合理、规范
    • 杯子颜色是否符合设计需求
    • 杯子形状是否符合设计需求
    • 杯子上的印刷字体是否符合设计需求、排版合理、没有错别字
    • 杯子的重量是否符合设计需求
    • 杯子是否有异味

    2. 功能测试

    根据杯子的用途、规格、承受的冷热程度等(假设杯子的规格为:100ml,杯子承受的最高温度:100度),依据边界值分析法和等价类划分法,确认测试用例如下:

    • 杯子能否装100ml的水
    • 杯子盛入50摄氏度的水
    • 杯子盛入100摄氏度的水
    • 杯子盛入0摄氏度的水
    • 快速的装满水,看是否漏水
    • 装满水后,放置几天,查看是否漏水
    • 用过几天以后,杯子的内壁颜色是否脱落

    3. 安全性测试

    • 杯子的材料是否有害人身体健康
    • 放入微波炉中,是否会爆炸、融化
    • 从桌子掉到水泥地会否破碎
    • 杯子边缘是否有缺口,容易划伤嘴巴
    • 杯子内壁的燃料会否溶解到水中

    4. 可用性测试

    • 是否容易导热-烫手
    • 是否有杯柄,方便端
    • 杯子是否有防滑垫

    对一个自动贩卖机进行功能测试

    3. 对A4纸测试

    2. 测试一个三角形

    例子:有一个app,输入三角形的三条边长,判断是否能构成一个三角形(不考虑退化三角形,即面积为零的三角形),是什么样的三角形(直角、锐角、钝角、等边、等腰)。——考虑app兼容性!!

    函数声明为:byte GetTriangleType(int ,int, int)。

    (1) 如何用一个byte来表示各种输出情况?

    (2) 如果你是一名测试工程师,应该如何写测试用例来完成功能测试呢?

    答:

    步骤一:分析这个函数的功能。

    首先这个函数需要根据输入的a、b、c

    • 判断是否为三角形:
    • 识别等腰三角形
    • 识别等边三角形
    • 识别直角三角形
    • 识别锐角三角形
    • 识别钝角三角形

    其次,用一个byte表示所有的输出情况。

    步骤二:

    首先根据等价化分类划分输入的等价类,用边界法来补充。

    其次用一个byte表示所有的情况,1个byte有8位,考虑用0、1标志位编码表示输出的情况。例如:byte从右到左,第0位表示等腰三角形、第1位是等边三角形。。。第七位是三角形标志,剩余的第6位和第5位可以留作错误编码,比如用于表示两边之和小于第三边等。

    分析条件有:

    1. 是否是三角形:

    (1) a>0

    (2) b>0

    (3) c>0

    (4) a+b>c

    (5) a+c>b

    (6) b+c>a

    (7)a<=0

    (8)b<=0

    (9)c<=0

    (10)a+b<=c

    (11)b+c<=a

    (12)c+a<=b

    2. 是否是等腰三角形

    (13) a=b

    (14) b=c

    (15) a=c

    (16) a^2 + b^2 >c^2

    (17) b^2 + c^2 >a^2

    (18) a^2 + c^2 >b^2 

    (19) (a!=b)and(a!c)and(b!c)

    3.是否是等腰直角三角形

    (20) (A=B)and(A^2+B^2=C^2)  
    (21) (B=C)and(B^2+C^2=A^2)  
    (22) (C=A)and(C^2+A^2=B^2) 

    4. 是否是等边三角形
    (23) (A=B)and(B=C)and(C=A)    
    (24) (A!=B)     (21)
    (25) (B!=C)    (22)
    (26) (C!=A)    (23)

    再根据边界值法补充测试用例:

    (27) 三个零

    (28) 有特殊字符

    (29) 超过边界值

    测试用例id 条件 输入 预期输出 描述
    1 (1)-(6) (3, 4, 5) 10001000 锐角三角形
    2 (7) (1, 1, 3) 00000000  非三角形
    3 (8) (0, 2, 3) 00000000  非三角形
    4 (9) (1,0,2) 00000000 非三角形
    5 (10) (1, 2, 3) 00000000 非三角形
    6 (11) (1, 3, 2) 00000000 非三角形
    7 (12) (3, 1, 2) 00000000 非三角形
    8 (1)-(6)、(13)(16) (3, 3, 4) 1 等腰三角形
    9 (1)-(6)、(14)(17) (3, 4, 4)   等腰三角形
    10 (1)-(6)、(15)(18) (3 ,4, 3)   等腰三角形
    11 (1)-(6)、(20) (2, 2, ^2)    
    12 (1)      
    13        
    14        
    15        
    16        
    17   (a, 1, 2)    
    18   (@, 2, 3)    
    19        

    三、函数的测试

    1. 对函数str()的测试

     主要考察:边界、基本情况、鲁棒性、性能及算法优化

    2. 个函数实现对字符串中第三个字符的替换,设计测试用例

    四、Linux下命令的测试

    1. cp命令设计测试用例

  • 相关阅读:
    程序猿神吐槽,说出那些苦逼的日子!
    java设计模式演示样例
    DP Leetcode
    标准差(standard deviation)和标准误差(standard error)你能解释清楚吗?
    移动开发 Native APP、Hybrid APP和Web APP介绍
    Oracle cloud control 12c 的启动与关闭
    Ubuntu文件的复制、移动和删除命令
    Android中集成第三方库的方法和问题
    腾讯QQ企业邮箱POP3/SMTP设置
    又发现支付宝和淘宝的设计漏洞
  • 原文地址:https://www.cnblogs.com/xh0102/p/8799061.html
Copyright © 2020-2023  润新知