HoloLens开发手记 - 测试 Testing
测试HoloLens应用的做法和测试Windows应用很类似。所有常规的内容都应该被考虑在内(功能、互操作性、性能、安全性、可靠性等等),然而有些特性是HoloLens特有的,在PC或者手机上无法测试的。全息应用需要能够在一系列多样的环境中顺畅地运行,同时也需要时刻保持性能稳定和较好的用户舒适度。本文主要讨论这方面的内容。
性能 Performance
性能表现对于全息应用来讲至关重要,这直接影响到用户体验,我们会用大幅篇幅来讨论这个主题。更多内容请阅读: performance recommendations.
3D环境中测试3D内容 Testing 3D in 3D
尽可能在不同的环境中测试你的app。尝试在大房间、小房间、厨房、客厅、卧室、办公室等等环境中测试。同时也应尝试在非标准特征的房间中测试,这些房间可能会有非垂直的墙壁、弧形的墙壁、倾斜的天花板等等。当我们通过走廊、楼梯在不同房间、楼层切换时,你的应用一切还能正常运行吗?
- 在不同光线条件下测试。你的应用能在不同的环境条件下正常运行吗?即使这些环境中存在不同的光线条件、黑色平面、透明或反光表面,例如镜子、玻璃墙等等。
- 在不同的运动条件下测试。戴上设备并在不同的运动状态下测试你的应用场景。你的应用能正确地响应不同的运动或稳定状态吗?
- 在不同的角度下测试。如果你有一个固定在世界中的全息图像,用户走到它背后会发生什么?如果有动心来到用户和此全息图像之间,这时会发生什么?如果用户从上面或者下面看向此全息图像,这时又会发生什么?
- 使用空间和声音提示。确保你的应用使用了它们来避免用户丢失视野。
- 在不同等级的环境噪音下测试。如果你集成了语音命令特性,请试着在不同噪音环境下调用此功能。
- 在坐下和站立情形下测试。确保在坐下或者站立的位置测试你的应用。
- 从不同的距离测试。在远处你的UI元素能被看到并能够进行交互吗?在离全息图像非常近的地方它们还能继续正常工作吗?
- 测试应用栏的交互情况。所有的应用磁贴和2D应用都会有一个顶部应用栏,上面的按钮允许你来控制它们在世界中的定位。确保你的应用能够正确响应应用栏的操作,尝试在应用激活或未激活的状态下测试调整模式。
环境测试项目 Environmental Test Matrix

舒适性 Comfort
- 裁剪面(Clip Planes)。我们要关注全息图像被渲染的位置在哪里。关于裁剪面的更多信息,请看:https://developer.microsoft.com/en-us/windows/holographic/Hologram_stability.html#hologram_render_distances
- 避免头部移动时可见内容的不连续移动。我们要避免相机不能正确响应用户的真实移动。如果的应用需要用户在场景中移动,那么确保运动可以预测、较小加速并能让用户控制自己的移动。
- 遵循全息图像质量指南。实现了全息图像质量指南的高性能应用很少会导致用户不舒适。
- 水平分布全息图像而不是在垂直方向上。迫使用户花额外的时间上下观察可能会导致颈部疲劳。
输入方式 Input
凝视和手势 Gaze and Gestures
Gaze 是HoloLens最基本的输入方式,用于在环境中选中目标全息对象。用户应当可以通过指针的位置确定gaze当前注视的目标对象。Gaze指针很类似与鼠标指针。
手势 则允许你与全息图像交互,就像鼠标点击样。绝大多数时间鼠标点击和Touch(触屏点击)是一样的,但是明白和确定它们之间区别也是很重要的。
确定你的应用能够响应鼠标或触摸的不同行为,这会让用户体验更自然些。例如基于Gaze悬停而触发行为。
自定义语音命令 Custom Voice Commands
语音输入是很自然的交互形式,取决于你选择的语音命令和形式,用户可能会感到很棒或者会感到困惑。一条基本原则是,避免使用系统内置的语音命令,例如“Select”或“Hey Cortana”。下面是一些要考虑的地方:
- 避免使用听起来相似的语音命令。这会潜在地导致调用错误
- 尽量使用表达丰富的关键词。这可以提高识别率,避免错误调用。
外设 Peripherals
用户可以通过外设与你的APP交互,我们对此不需要去做特定的处理。然而还是有些事情需要我们检测:
- 确定自定义交互可用。例如你的APP可以有些自定义快捷键组合
- 确定多种输入形式切换可用。例如在一个场景中用户可能会使用多种输入方式结束一个任务,比如声音、手势、鼠标和键盘等等。
系统集成 System Integration
电池 Battery
除去电源线后来测试你的应用,以了解应用耗电情况。可以通过LED等情况来判断当前电池状态,对应情况如下:

电源状态切换 Power State Transitions
确定应用在不同电源状态切换时,关键场景能否如预期一样正常工作。例如,应用是否停留在它原来的位置上?它是否正确的保持着它的状态?它是否还能如预期一样工作?
- 待机/恢复。通过按压一次电源键3分钟后即可让HoloLens自动进入待机状态,再次点击电源按钮即可从待机状态恢复。连接电源线或从电源线断开也可以让设备从待机状态恢复。
- 关闭/重启 。长按电源键即可关闭HoloLens,再次按下电源键即可重启设备。
多应用场景 Multi-App Scenarios
确定在不同APP间切换时,核心应用功能是否能正常工作,尤其当你设定了后台运行任务时。粘贴/复制操作和Cortana集成也应当检测是否可用。
应用遥测 Telemetry
使用遥测和分析工具对你会很有用。集成应用分析工具可以从测试用户和终端用户那里收集应用数据。这些数据通常可以在你将
应用提交到应用商店前帮助优化应用。有很多可选的分析工具,如果你不确定如何开始,可以阅读: https://www.visualstudio.com/en-us/products/application-insights-vs.aspx
需要考虑的问题:
- 用户如何使用这片空间?
- 该应用如何在世界中放置对象?你能检测到问题吗?
- 用户在应用不同阶段划花了多少时间?
- 用户在该应用上花了多长时间?
- 用户正在尝试着最常见的用途是什么?
- 用户有触发异常状态或错误吗?
模拟器和模拟输入 Emulator and Simulated Input
HoloLens模拟器是测试你的全息应用最有效的方式,可以模拟各种用户特征和空间环境。下面是一些使用模拟器测试应用的建议:
- 使用模拟器的虚拟房间来扩展你的测试内容。模拟器内置了各种大小的虚拟房间,你可以使用这些环境来测试应用。
- 使用模拟器从各种角度观察你的app。使用上下翻页按键来模拟用户的高矮。
- 使用真实设备来测试你的应用。HoloLens模拟器是很好的工具,但是在提交到应用商店之前你还是应该使用真是设备来测试应用。这对于确保真实设备上的性能和体验非常重要。
带着环境感知模拟的自动测试 Automated testing with Perception Simulation
一些开发者可能想要自动测试应用。除了单元测试外,你可以使用HoloLens的环境感知模拟模块来自动进行人类和环境输入模拟。环境感知模拟API可以发送模拟的输入数据到HoloLens模拟器或HoloLens真机。
应用认证工具包 Windows App Certification Kit
为了帮助你尽可能顺利地发布应用到应用商店,在提交商店认证之前,可以在本地鉴定和测试应用。如果你的应用以 Windows.Holographic为目标平台,Windows App Certification Kit 将仅在你的PC上运行本地静态分析测试,而不会在HoloLens上运行测试。
HoloLens开发手记 - 测试 Testing的更多相关文章
- HoloLens开发手记 - HoloLens真机上手简评
千呼万唤始出来,终于今天拿到了HoloLens真机. 使用体验 使用自带的应用录制了一段使用视频,如下 设备概览 包装盒 本体 试戴 实际效果 GalaxyExplorer试玩 全息图像贴到现实场景表 ...
- HoloLens开发手记 - 使用HoloLens模拟器 Using HoloLens emulator
首先下载HoloLens模拟器 HoloLens模拟器运行在没有真机的情况下在你的PC上测试应用,属于HoloLens开发工具系列.模拟器使用了Hyper-V虚拟机.通常通过传感器获取的人体和环境输入 ...
- HoloLens开发手记 - 应用程序模型 App model
HoloLens使用Universal Windows Platform (UWP)提供的应用模型.UWP应用模型定义了应用如何被安全和完全地安装.更新.版本控制和移除.它管理了应用生命周期 - 应用 ...
- HoloLens开发手记-开发概述Development overview
开发HoloLens全息应用将使用UWP平台(Universal Windows Platform),所有的HoloLens应用都是Win10通用应用,所有UWP通用应用都可以在HoloLens上运行 ...
- HoloLens开发手记 - 构建2D应用 Building 2D apps
HoloLens可以让我们在真实世界中看到全息图像内容.但是它本质上还是一台Windows 10设备,这意味着HoloLens可以以2D应用形式运行Windows Store里的大部分UWP应用. 目 ...
- HoloLens开发手记 - 使用Windows设备控制台 Using Windows Device Portal
Windows设备控制台允许你通过Wi-Fi或USB来远程控制你的HoloLens设备.设备控制台是HoloLens上的一个Web Server,你可以通过PC的浏览器来连接到它.设备控制台包含了很多 ...
- HoloLens开发手记 - Vuforia开发概述 Vuforia development overview
关于Vuforia,开发AR应用的人基本都会熟悉.之前我也写过一篇关于Vuforia开发的博客:Vuforia AR SDK入门 今天这篇博客则主要是谈谈HoloLens使用Vuforia开发混合现实 ...
- HoloLens开发手记 - Unity development overview 使用Unity开发概述
Unity Technical Preview for HoloLens最新发行版为:Beta 24,发布于 09/07/2016 开始使用Unity开发HoloLens应用之前,确保你已经安装好了必 ...
- HoloLens开发手记 - Unity之语音输入
对于HoloLens,语音输入是三大基本输入方式之一,广泛地运用在各种交互中.HoloLens上语音输入有三种形式,分别是: 语音命令 Voice Command 听写 Diction 语法识别 Gr ...
随机推荐
- Oracle 外连接和 (+)号的用法
对于外连接,Oracle中可以使用“(+)”来表示,9i可以使用LEFT/RIGHT/FULL OUTER JOIN,下面将配合实例一一介绍.1. LEFT OUTER JOIN:左外关联 SELEC ...
- 【故障处理】告警日志报“ORA-01565 Unable To open Spfile”
[故障处理]告警日志报"ORA-01565 Unable To open Spfile" 1.1 BLOG文档结构图 1.2 故障分析及解决过程 1.2.1 故障环境介绍 项 ...
- eclipse插件Maven添加依赖查询无结果的解决方法(Select Dependency doesn't work)
在eclipse中用过maven的可能都遇到过这种情况,我以前一直在search.maven里面搜索,然后添加pom信息. 今天在网上搜索时,找到了一个解决方法,在这里分享一下. 第一步,在prefe ...
- MySQL入门(一)
最近一直都在搞新员工的培训材料,MySQL的培训PPT我居然写了100多页,我都佩服我自己的毅力了.不如现在把这些总结一下,慢慢写到博客里,供入门者参考. 一 关系型数据库 关系型数据库的理论提出于上 ...
- .NET笔记(一)
物理路径 context.Server.MapPath() 获取DataTable的某个单元格的值 tb.Rows[i][j] 或 tb.Rows["某一行"]["某一列 ...
- Linux IPC System V 共享内存
模型 #include<sys/types.h> #include<sys/ipc.h> #include<sys/shm.h> ftok() //获取key值 s ...
- 十一、Android学习第十天——项目开始(转)
(转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 十一.Android学习第十天——项目开始 Android知识点的学习告一 ...
- linux 进程管理相关内容
简介 当我们运行程序时,Linux会为程序创建一个特殊的环境,该环境包含程序运行需要的所有资源,以保证程序能够独立运行,不受其他程序的干扰.这个特殊的环境就称为进程. 每个 Linux 命令都与系统中 ...
- Python+excel实现的简单接口自动化 V0.1
好久没写博客了..最近忙着工作以及新工作的事.. 看了下以前写的简单接口自动化,拿出来总结下,也算记录下学习成果 先来贴一下最后的结果,结果是写在原来的excel中 执行完毕后,会将结果写入到“状态” ...
- poj3635Full Tank?[分层图最短路]
Full Tank? Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7248 Accepted: 2338 Descri ...