2016-11-16 13:45:53 chenhaih 阅读数 82
  • JMETER 性能测试入门到项目实战视频课程

    1、本课程针对JMETER软件性能测试八大组件:配置元件、前置处理器、定时器、sampler(采样器)、后 置处理器、断言、监听器以及逻辑控制器等内容全方位讲解。 2、参数化、badboy测试脚本开发以及录制方法,正则表达式之Regextester工具使用、JMETER 组件作 用域等知识点讲解。 3、本课程注重实践每一个知识点都有相对应的实例,本书覆盖的实例多达上百个,提高学员的动手能 力和解决问题能力。 4、区块链之币币交易所资管系统性能测试,登录、交易买入、交易卖出等测试场景设计、脚本开发/调试、数据 准备、性能调优、性能测试报告。       5、性能测试流程和性能瓶颈定位等知识讲解。

    174519 人正在学习 去看看 陈槐

软件开发过程:需求分析-概要设计-详细设计-编码-测试-软件交付准备-验收

软件测试流程:需求-测试计划-用例设计-执行测试-执行结果记录和bug记录-defecttracking-测试报告-用户体验

用例设计实例:

测试项目:杯子

需求测试:查看杯子使用说明书

界面测试:查看杯子外观

功能度:用水杯装水看漏不漏;水能不能被喝到

安全性:杯子有没有毒或细菌

*性:杯子从不同高度落下的损坏程度

可移植性:杯子再不同的地方、温度等环境下是否都可以正常使用

兼容性:杯子是否能够容纳果汁、白水、酒精、汽油等

易用性:杯子是否烫手、是否有防滑措施、是否方便饮用

用户文档:使用手册是否对杯子的用法、限制、使用条件等有详细描述

疲劳测试:将杯子盛上水(案例一)放24小时检查泄漏时间和情况;盛上汽油(案例二)放24小时检查泄漏时间和情况等

压力测试:用根针并在针上面不断加重量,看压强多大时会穿透

跌落测试:   杯子加包装(有填充物),在多高的情况摔下不破损

震动测试: 杯子加包装(有填充物),六面震动,检查产品是否能应对恶劣的铁路"公路"航空运输

执行测试:单元测试、集成测试、系统测试、验收测试。

单元测试:就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。

集成测试:也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求(如根据结构图)组装成为子系统或系统,进行集成测试。

系统测试:是将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起,进行信息系统的各种组装测试和确认测试,系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不符或与之矛盾的地方,从而提出更加完善的方案。

验收测试:是部署软件之前的最后一个测试操作。在软件产品完成了单元测试、集成测试和系统测试之后,产品发布之前所进行的软件测试活动。它是技术测试的最后一个阶段,也称为交付测试。验收测试的目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务。

2015-03-05 15:51:42 xzh31390080 阅读数 181
  • JMETER 性能测试入门到项目实战视频课程

    1、本课程针对JMETER软件性能测试八大组件:配置元件、前置处理器、定时器、sampler(采样器)、后 置处理器、断言、监听器以及逻辑控制器等内容全方位讲解。 2、参数化、badboy测试脚本开发以及录制方法,正则表达式之Regextester工具使用、JMETER 组件作 用域等知识点讲解。 3、本课程注重实践每一个知识点都有相对应的实例,本书覆盖的实例多达上百个,提高学员的动手能 力和解决问题能力。 4、区块链之币币交易所资管系统性能测试,登录、交易买入、交易卖出等测试场景设计、脚本开发/调试、数据 准备、性能调优、性能测试报告。       5、性能测试流程和性能瓶颈定位等知识讲解。

    174519 人正在学习 去看看 陈槐
测试用例设计黑盒和白盒测试功能测试,集成测试,系统测试,性能测试,压力测试,负载测试,用户体验测试测试实例,比如测试一部电梯
2016-07-20 10:42:18 English0523 阅读数 3923
  • JMETER 性能测试入门到项目实战视频课程

    1、本课程针对JMETER软件性能测试八大组件:配置元件、前置处理器、定时器、sampler(采样器)、后 置处理器、断言、监听器以及逻辑控制器等内容全方位讲解。 2、参数化、badboy测试脚本开发以及录制方法,正则表达式之Regextester工具使用、JMETER 组件作 用域等知识点讲解。 3、本课程注重实践每一个知识点都有相对应的实例,本书覆盖的实例多达上百个,提高学员的动手能 力和解决问题能力。 4、区块链之币币交易所资管系统性能测试,登录、交易买入、交易卖出等测试场景设计、脚本开发/调试、数据 准备、性能调优、性能测试报告。       5、性能测试流程和性能瓶颈定位等知识讲解。

    174519 人正在学习 去看看 陈槐

引言

当前,用户体验已成为一种新的产品价值。当技术实现不再是产品核心竞争力时,产品的竞争就是用户体验的竞争。而用户弹指间感知到的性能体验对于用户体验尤为重要。

移动互联网产品因为用户的手机型号繁多、手机操作系统版本不一致、app版本难统一等问题,很难在开发或测试环节就完全解决掉移动app的性能问题,这使得移动app产品在运维过程中,不得不面对用户体验不优、性能不佳的问题。

业务运维

如何让开发可以高效定位性能问题?

让开发,测试,运维清晰的把控各个产品的性能状况?

我们结合了当前业界商用的APM技术,实现了一套腾讯社交运维的myAPM方案。

myAPM是什么?

APM(Application Performance Management)应用性能管理,它是一套集终端,网络,服务端性能管理于一体的监控方案。在这里,就不展开介绍了。

myAPM,专注于移动端的性能管理。既能监控定位性能问题(卡慢),也能应用于日常的app性能运营分析,提升产品用户体验。

监控方式

myAPM采用BCI注入方式,实现业务方法粒度监听。

在注入技术选型时,myAPM采用了类ASM的注入技术,其注入效率,校错能力,学习成本,都比ASM要好一些。

注入阶段

myAPM实现性能监控与功能开发零耦合。在编译阶段注入监控能力,对开发零感知。

业务运维myAPM特点:

  • 实现方法粒度的自动化注入监控;
  • myAPM采用插件化设计:各个特性功能可自由组合,以满足开发者定制化需求。

myAPM可以做什么?

当前,我们利用myAPM的能力,主要从以下四个方面进行探索与实践:

一、Apk 包大小分析

二、App卡慢监控分析

三、App启动性能分析

四、App 核心链路性能分析

一、Apk 包大小分析

一个app,随着新功能的持续增加,其apk的大小也在不断地膨胀。Apk size的问题,越来越困扰和限制着开发同学,影响某些功能的上线,同时,也降低了用户体验。

同时,app运营时间越长,功能迭代 / 代码重构次数越多,“垃圾”代码(就是没有被实际调用过的代码)的数量就会越多。

由于代码量大,代码调用层次深,每个开发同学只负责部分功能开发。如果让开发同学人工去做全局“垃圾代码”的分析,显然,其难度很大,效率不高。

而myAPM的apk包大小分析,就是用来帮助开发同学,快速暴露这些“垃圾代码”,开发同学只须集中精力,针对梳理出来的问题代码,做进一步确认和清理即可。

1、Apk包大小分析原理

业务运维

  • myAPM会在类或方法中,注入一个唯一ID;
  • 内测环境部署,通过大量的自动化用例,过滤掉有调用关系代码;
  • 对未调用代码,进行重新注入,灰度外网,收集线上真实用户的行为。通过内网测试,可以过滤掉部分常用代码,从而减少因注入增加的app包量。
  • 通过长时间、大用户量的数据运营,我们即可定位出无实际调用的代码。开发小伙伴即可集中精力在这些问题方法的确认及清理。

2、Apk包大小分析应用场景

  • 定位完全无调用或被引用的类;(粒度粗,清理方便)
  • 定位孤岛方法:即没有主调和被调的方法(粒度细,清理全面)
  • 定位无调用的方法链路;

3、Apk包大小分析特点

  • 结合线下模拟测试行为大数据分析
  • 结合线上用户实际行为大数据分析
  • 性能消耗小
  • 自动注入

4、开源工具 & apk包分析

可能有同学,会罗列出一系列开源的工具,也可以很方便地甄别出app这种无调用代码。但对于有调用关系的一条链路(一组方法),仅仅通过线下分析,无法判断其是否有被调用。我们只能利用线上大量用户的真实行为分析,更好地去判断和确认。

5、方法注入样例

运维

 

通过一个唯一ID(14236)来上报,既避免了代码中敏感信息的泄漏风险,同时,也大大节省上报量。

6、Qzone –android应用实例

Qzone android app,针对业务代码以及第三方包代码,采用类无调用分析。(类中所有变量或方法,没有被引用或调用。)

内部测试阶段:

在内部测试中,由于机型,测试用例有限,分析结果是42%的类没有调用或引用。

运维

灰度外网阶段:

在灰度外网用户后发现,所有类都被调用或引用。但40%类被调用次数少于10次。由于灰度用户是50W,即40%的代码只有万分之二的用户有调用。针对这些,后续我们可以分析,调整这些类的启动加载顺序(如:延时加载)。

运维

结论:

  • 当前QQ空间 APP,不存在多余无调用类文件。
  • 后续,在监控粒度上,我们会从“类方法”进行深层面的挖掘分析。

二、App卡慢分析

在app用户体验上,除了crash故障外,相信app主线程卡慢(负责与用户交互的线程),是用户最不能忍受的。
我们这里所说的卡慢分析,是指对app主线程代码的卡慢监控分析。

1、工作原理

myAPM卡慢监控,实现对目标代码的“方法粒度”的注入、卡慢监听。

其本质,是在目标方法调用的前后,注入时间,进行卡慢监听及分析。原理图,如下:

运维

2、卡慢分析全流程

8

  • app编译时,注入 : 跟上面“apk包大小分析”的注入阶段一样:在class编译后,实现监控逻辑注入。

    注入时,我们会根据当前注入方法的“主调方法-被调方法”方法对,生成ID。同样,也是用于信息加密及节省上报量。

  • app卡慢监控 : app版本上线后,myAPM会监控目标方法线上运行耗时,出现卡慢,则触发卡慢方法上层全链路上报,同时上报app当前基本软硬件CPU等使用率等环境信息。
  • myAPM后台,会根据app上报的一组ID,进行链路还原。开发同学,可以针对卡慢方法,以及上层链路进行性能分析;

说明:

myAPM上报的卡慢链路,还原了业务方法运行调用的过程。是一种轻量级的堆栈/快照。其好处是避免打印堆栈的性能消耗。因为,在卡慢监控中,最消耗性能的就是打印堆栈。

  • 收集堆栈,辅助分析 : 若某些卡慢方法,通过卡慢链路没法分析定位出问题,可以将指定方法推送到指定用户app上,收集线上用户指定卡慢方法再次出现时,对应的堆栈信息,用于辅助开发同学的分析定位。

3、卡慢实例

在主线程卡慢监控中,比较常见的案例是:主线程加载文件,底层DB读写,图片处理这些比较耗时的操作。我们优化的方案,通常是将这些耗时操作移到异步线程中进行处理。

以下是四个案例片断:

实例一:

主线程进行DB查询导致卡慢。

平均耗时视图:

myAPM后台,会先统计卡慢链路的次数,计算链路中每个节点的平均耗时。

卡慢链路最后的两组数值含义:(代码调用行号), [方法平均耗时]。耗时单位为ms。

9

明细视图:

在明细视图中,我们会列出所有卡慢实例,以及用户基础环境信息。

卡慢链路最后的两组数值含义:(代码调用行号), [方法耗时]。耗时单位为ms。

10

实例二:

主线程中加载dex文件引起的卡慢实例。

11

实例三:

在主线程中,加载本地xml文件导致卡慢。

12

实例四:

在主线程中,图片处理耗时比较大。

Process()方法消耗了1.3秒,setFacadeImage(),也另外消耗了1秒。

13

 

4、myAPM卡慢监控的优势

  • 监控粒度: myAPM卡慢监控的粒度为方法。
  • 性能消耗: myAPM卡慢方案,采用卡慢业务链路上报,是一种轻量级的业务堆栈,避免直接使用原生堆栈。避免了打堆栈的性能消耗。(打印原生堆栈:1-3ms,打印业务链路:0.1-0.3ms)。
  • 数据上报: 采用了的一组链路ID。而非堆栈信息。上报量小,不用加解密过程。
  • 代码依赖: 卡慢逻辑与业务代码完全解耦,对开发者透明,零感知。只是在测试,发布前注入。

5、不足及方案

myAPM,也存在不足。由于采用注入方式,会使apk的包,稍微变大。

以qzone android apk注入进行全量业务代码时,其apk大小增长0.5M,增长率为2.79%.

方案:

  • 若用户对apk大小比较敏感,可以采用部分注入分析。
  • 可以配合myAPM的apk包大小分析方案,做apk瘦身分析。

myAPM新特性

app卡慢只是用于问题方法的性能优化。其实,对于一个产品,我们不但要关注及处理卡慢的问题,还需要关注app应用常规的性能状况与监控。

因为,这个性能波动,不会像卡慢那么明显。但是在一次次新版本迭代中,可以会让总体性能变慢。

1、监听app启动性能

  • 我们可以将卡慢监控范围进行定制缩小,提供个性化功能:只监听启动方法。
  • 通过数据分析及比对,我们可以知道:

app每个版本的启动性能及变化;

接入的各个产品在启动性能上的差异,让各个产品间可以相互借鉴与提升。

2、核心链路分析

无论是产品,开发,测试与运维,都会想知道:

一个APP中,哪些代码是属于核心链路?

这些核心链路的性能怎样?

每个新版本中,这些核心链路的性能是否受到明显的损耗?

我们可以继续将卡慢上报范围扩大,上报全量方法。通过数据分析及筛选,我们可以挖掘出核心链路及其性能数据;

3、延时加载

通过链路特性分析,我们也可以抽取出调用次数很少,非主场景调用的代码。对于这些代码,在app启动加载时,我们可以使用延时加载。从而提升APP的启动效率。

续集说明

对于App 启动性能分析以及App 核心链路性能分析,我们将在后续做单独的介绍。

最后

myAPM,是我们结合部门实际需求和APM理念,在移动端性能管理的一个新探索,新实践。不仅面向性能问题的定位,也应用于日常的app性能运营分析。

简单分享myAPM在移动性能管理方面的一点思考及应用,希望大家打造好自己移动端的性能小船,关键时刻,不会说翻就翻。共勉!

2019-06-03 16:31:00 weixin_33971977 阅读数 9
  • JMETER 性能测试入门到项目实战视频课程

    1、本课程针对JMETER软件性能测试八大组件:配置元件、前置处理器、定时器、sampler(采样器)、后 置处理器、断言、监听器以及逻辑控制器等内容全方位讲解。 2、参数化、badboy测试脚本开发以及录制方法,正则表达式之Regextester工具使用、JMETER 组件作 用域等知识点讲解。 3、本课程注重实践每一个知识点都有相对应的实例,本书覆盖的实例多达上百个,提高学员的动手能 力和解决问题能力。 4、区块链之币币交易所资管系统性能测试,登录、交易买入、交易卖出等测试场景设计、脚本开发/调试、数据 准备、性能调优、性能测试报告。       5、性能测试流程和性能瓶颈定位等知识讲解。

    174519 人正在学习 去看看 陈槐

0. 背景

为进一步提升信息化应用水平,更好的服务师生,南通大学智慧校园移动端APP“今日校园”定于11月5日正式上线运行。登陆APP可浏览学校新闻、校园生活、各部门微信公众号等内容,查看校内通知、校内发文、部门发文,查询一卡通消费、图书借阅等数据,查阅课表等常用应用和各类待办消息,进行校园卡充值和零星缴费。后续还将推出各项网上填报、移动办公与信息查询服务。

1. 目标

  • 基于实例分析,体会用户体验设计的 7 条准则。

2. 要求

  • Task(1):基于我们列出的 7 条UX评价准则,分析『 智慧校园移动APP “ 今日校园”』 在用户体验设计方面让你觉得满意的地方(不少于2点),请陈述理由。(50分)

  • Task(2):同样,分析 “ 今日校园” App 在用户体验设计方面让你觉得最不满意的地方(不少于2点),请陈述理由。(50分)

  • 细则:回答上述问题时,
    • (1)附上截图;
    • (2)不能只描述现象,更重要的是要总结这些现象违背了什么UX设计原则,
    • ( 3 )对存在的问题分析原因,进而指出改进方向或措施。

优点:

给用户的反馈迅速且及时,知道今天什么时间在哪里上什么课

可实现校园卡的在线充值,不需要我们到指定的机器上面去充值,而且每单的消费都有详细记录

有专门的学习专区,可以让不同的用户体验

可查到自己在图书馆的借阅情况

可看到很多校内校外的动态,在学习之余可放松心情

 

缺点:

虽然它会提醒你上什么课,但是却没有每门课的另外上机课的时间

校园卡的更新不够详细,没有做到实时。我觉得应该是数据库连接的问题,应当作出改进

推荐内容无法根据个人喜好合理选择,内容杂乱

 

转载于:https://www.cnblogs.com/xs666/p/10968347.html

2014-08-29 13:45:35 moon66sun 阅读数 502
  • JMETER 性能测试入门到项目实战视频课程

    1、本课程针对JMETER软件性能测试八大组件:配置元件、前置处理器、定时器、sampler(采样器)、后 置处理器、断言、监听器以及逻辑控制器等内容全方位讲解。 2、参数化、badboy测试脚本开发以及录制方法,正则表达式之Regextester工具使用、JMETER 组件作 用域等知识点讲解。 3、本课程注重实践每一个知识点都有相对应的实例,本书覆盖的实例多达上百个,提高学员的动手能 力和解决问题能力。 4、区块链之币币交易所资管系统性能测试,登录、交易买入、交易卖出等测试场景设计、脚本开发/调试、数据 准备、性能调优、性能测试报告。       5、性能测试流程和性能瓶颈定位等知识讲解。

    174519 人正在学习 去看看 陈槐

本文为系列文章"Web 软件测试 Checklist 应用系列"中的第 6 篇,主要介绍在测试网页产品的消息和帮助方面应用 Checklist 的情况,并给出部分应用实例。消息和帮助是用户在使用产品的过程中获取辅助信息的重要途径。清楚有效的消息提示和帮助信息能帮助用户更快捷的使用产品,并获得良好的用户体验。消息为用户提供的是执行相关任务的状态和结果;帮助则为用户提供相关功能的解释说明。

消息和帮助测试包含的范畴

顾名思义,消息是指传递信息的载体。用户通过消息来了解系统当前运行的状态,当系统出现异常时,用户通过消息来了解需要采取的动作。产品的帮助信息,可以为用户提供必要的产品说明和信息,以保证用户能了解如何安装、配置和使用产品。

消息测试 Checklist

表 1. 表 1. 消息测试 Checklist 总结
序号 Checklist
1.1 确保系统消息框能正确展开和收起
1.2 确保所有的消息正确显示
1.3 确保消息内容足够清楚以告诉用户确切的错误所在
1.4 确保警告和错误消息无拼写错误
1.5 当页面有非法输入时,提交后应定位光标到出错区域
1.6 确保所有的消息标题为粗体

1.1 确保系统消息框能正确展开和收起

系统消息框这里是指位于网页底部用于显示最近页面的状态及输出结果,以帮助用户了解最近页面上的相关操作及结果。该消息框不止可以查看最近一条状态,用户可以通过单击该消息框展开它,从而查看更多的历史记录和状态,再次单击可以折叠收起历史记录。这就提供了一个方便的途径可以满足用户查看历史状态的需求。

在网页测试过程中,测试人员需确保该消息框能正确的展开和收起。测试中需要测试展开后接着就收起的流程,以及消息框展开后,用户在页面上执行部分其他操作后再收起消息框。以上两种情况都要测试到,并确保两种情况下,消息框都能正确的展开和收起。

图 1. 系统消息框展开收起测试实例

图 1 中所示的实例中,我们将系统消息框展开后,在页面上做了额外的其他操作,然后试图去收起该消息框,但无法实现,点击消息框的动作不能让其收起。这也是产品的缺陷。

1.2 确保所有的消息正确显示

消息的目的是向用户传递信息,因此,正确有效的显示是消息的首要要求。消息的表达应该简洁、清楚,没有冗余和不可理解的信息。

图 2. 不合理消息显示实例

如上图 2 中显示的是一条不恰当显示的消息,该消息中包含一些冗余的不可理解的内容“...”””,此类信息内容不但不会为用户提供有用的信息,反而会给用户带来困扰,应加以修正。

1.3 确保消息内容足够清楚以告诉用户确切的错误所在

错误消息需要提供给用户准确的错误描述,告知用户错误究竟出在哪里,而不能包含模棱两可的内容,更不能存在误导性或者不可理解的内容。

图 3. 模糊不可理解的错误信息实例

上图 3 中所示,该消息包含这样的消息描述“Connection refused: connect”,从这段文字,用户并不能知道它要传递的信息是什么,也不知道错误究竟出在哪里。这里显示的消息,实际上是产品内部设计的一些中间输出,是给开发人员所用,而不容易被用户所理解,所以应该更换为用户易于理解的文字,这也是产品的缺陷。

1.4 确保警告和错误消息无拼写错误

作为向用户提供帮助的消息,所有的警告消息和错误消息都不能包含拼写错误,一旦出现将很可能导致用户对产品的不信任。所以,应该仔细检查坚决杜绝此类问题的发生。

图 4. 包含拼写错误的消息

如上图 4 所示,该错误消息中存在拼写错误“alredy”,这种低级失误应该在开发过程中尽力避免,因为这种问题虽小,但给用户对于产品的印象会大打折扣。在测试过程中,可以设计专门的测试用例去检查所有的消息的拼写,以检查是否存在错误拼写的问题。

1.5 当页面有非法输入时,提交后应定位光标到出错区域

当一个网页输入页面上有多个输入域而且某个输入域输入的为非法值时,点击提交之后,页面应该将光标定位到非法区域并高亮显示,以醒目的方式告知用户哪里有非法输入,并引导其加以更正。

图 5. 出现非法输入时的页面实例

上图中,在用户名区域中输入了非法内容,此时页面提示输入是非法的,但这时当用户试图去修正该非法输入时,却无法选中该输入域,因为弹出的错误消息框将输入框覆盖住了。这是产品的缺陷。正确的处理应该是,错误消息不会覆盖输入区域,当点击输入区域后该错误提示自动消失。

1.6 确保所有的消息标题为粗体

为了醒目的提醒用户,所有的消息标题都应该以粗体显示,从而让用户更容易发现消息并点击查看详细内容。

帮助测试 Checklist

表 2. 表 2. 帮助测试 Checklist 总结
序号 Checklist
2.1 确保当前页面的帮助与页面内容相符
2.2 确保帮助文档打开后其他页面功能可正常执行
2.3 确保所有必要的悬浮帮助窗出现并显示准确

2.1 确保当前页面的帮助与页面内容相符

网页产品中,通常可以查看每个页面或者页面上具体内容的对应帮助信息,需要确保该对应帮助信息能正常出现并与相应的页面内容保持一致,从而能帮助用户更好的理解页面相关内容。

图 6. 错误内容无法打开实例

如上图 6 中所示,该页面上存在一个帮助按钮,该按钮的悬浮窗口显示可以通过点击该按钮查看完整的帮助信息。但当我们点击该按钮时,帮助页面并没有打开,实际上什么都没有发生。这是产品的缺陷。正常情况下,帮助页面应被成功触发。

2.2 确保帮助文档打开后其他页面功能可正常执行

通常网页产品的帮助页面打开时,是以侧边栏的形式显示的,当此类页面显示在侧边栏中时,用户应可以正常进行其他的页面功能,不应该受到帮助页面打开的影响。

2.3 确保所有必要的悬浮帮助窗出现并显示准确

悬浮帮助窗口是一种重要的帮助信息,它只有当光标置于相应的组件上方时才显示,当光标移开之后就消失,这种帮助窗口比较方便快捷,不需要用户去点击,只需要移动光标即可。通常来说,所有可以点击跳转的按钮和超链接都应该有悬浮窗帮助信息显示。

图 7. 悬浮窗帮助信息实例

上图 7 中所示,我们在测试中发现,当光标位于图示的两个添加、删除按钮上方时,并没有悬浮窗帮助信息弹出,而用户需要通过该帮助信息了解这两个按钮的功能简介,这是产品的缺陷。


总结

消息和帮助是用户获取产品功能说明获取帮助信息的非常重要的途径,清楚有效地消息和帮助信息可以帮助用户更快速地上手使用产品,遇到问题能更快地找到解决办法。这也是提供良好的用户可用性的重要方面。


构建之法之疑问

阅读数 159

没有更多推荐了,返回首页