测试HoloLens应用的做法和测试Windows应用很类似。所有常规的内容都应该被考虑在内(功能、互操作性、性能、安全性、可靠性等等),然而有些特性是HoloLens特有的,在PC或者手机上无法测试的。全息应用需要能够在一系列多样的环境中顺畅地运行,同时也需要时刻保持性能稳定和较好的用户舒适度。本文主要讨论这方面的内容。

性能 Performance


性能表现对于全息应用来讲至关重要,这直接影响到用户体验,我们会用大幅篇幅来讨论这个主题。更多内容请阅读: performance recommendations.

3D环境中测试3D内容 Testing 3D in 3D


  1. 尽可能在不同的环境中测试你的app。尝试在大房间、小房间、厨房、客厅、卧室、办公室等等环境中测试。同时也应尝试在非标准特征的房间中测试,这些房间可能会有非垂直的墙壁、弧形的墙壁、倾斜的天花板等等。当我们通过走廊、楼梯在不同房间、楼层切换时,你的应用一切还能正常运行吗?

  2. 在不同光线条件下测试。你的应用能在不同的环境条件下正常运行吗?即使这些环境中存在不同的光线条件、黑色平面、透明或反光表面,例如镜子、玻璃墙等等。
  3. 在不同的运动条件下测试。戴上设备并在不同的运动状态下测试你的应用场景。你的应用能正确地响应不同的运动或稳定状态吗?
  4. 在不同的角度下测试。如果你有一个固定在世界中的全息图像,用户走到它背后会发生什么?如果有动心来到用户和此全息图像之间,这时会发生什么?如果用户从上面或者下面看向此全息图像,这时又会发生什么?
  5. 使用空间和声音提示。确保你的应用使用了它们来避免用户丢失视野。
  6. 在不同等级的环境噪音下测试。如果你集成了语音命令特性,请试着在不同噪音环境下调用此功能。
  7. 在坐下和站立情形下测试。确保在坐下或者站立的位置测试你的应用。
  8. 从不同的距离测试。在远处你的UI元素能被看到并能够进行交互吗?在离全息图像非常近的地方它们还能继续正常工作吗?
  9. 测试应用栏的交互情况。所有的应用磁贴和2D应用都会有一个顶部应用栏,上面的按钮允许你来控制它们在世界中的定位。确保你的应用能够正确响应应用栏的操作,尝试在应用激活或未激活的状态下测试调整模式。

环境测试项目 Environmental Test Matrix

舒适性 Comfort


  1. 裁剪面(Clip Planes)。我们要关注全息图像被渲染的位置在哪里。关于裁剪面的更多信息,请看:https://developer.microsoft.com/en-us/windows/holographic/Hologram_stability.html#hologram_render_distances
  2. 避免头部移动时可见内容的不连续移动。我们要避免相机不能正确响应用户的真实移动。如果的应用需要用户在场景中移动,那么确保运动可以预测、较小加速并能让用户控制自己的移动。
  3. 遵循全息图像质量指南。实现了全息图像质量指南的高性能应用很少会导致用户不舒适。
  4. 水平分布全息图像而不是在垂直方向上。迫使用户花额外的时间上下观察可能会导致颈部疲劳。

输入方式 Input


凝视和手势 Gaze and Gestures

Gaze 是HoloLens最基本的输入方式,用于在环境中选中目标全息对象。用户应当可以通过指针的位置确定gaze当前注视的目标对象。Gaze指针很类似与鼠标指针。

手势 则允许你与全息图像交互,就像鼠标点击样。绝大多数时间鼠标点击和Touch(触屏点击)是一样的,但是明白和确定它们之间区别也是很重要的。

确定你的应用能够响应鼠标或触摸的不同行为,这会让用户体验更自然些。例如基于Gaze悬停而触发行为。

自定义语音命令 Custom Voice Commands

语音输入是很自然的交互形式,取决于你选择的语音命令和形式,用户可能会感到很棒或者会感到困惑。一条基本原则是,避免使用系统内置的语音命令,例如“Select”或“Hey Cortana”。下面是一些要考虑的地方:

  1. 避免使用听起来相似的语音命令。这会潜在地导致调用错误
  2. 尽量使用表达丰富的关键词。这可以提高识别率,避免错误调用。

外设 Peripherals

用户可以通过外设与你的APP交互,我们对此不需要去做特定的处理。然而还是有些事情需要我们检测:

  1. 确定自定义交互可用。例如你的APP可以有些自定义快捷键组合
  2.  确定多种输入形式切换可用。例如在一个场景中用户可能会使用多种输入方式结束一个任务,比如声音、手势、鼠标和键盘等等。

系统集成 System Integration


电池 Battery

除去电源线后来测试你的应用,以了解应用耗电情况。可以通过LED等情况来判断当前电池状态,对应情况如下:

电源状态切换 Power State Transitions

确定应用在不同电源状态切换时,关键场景能否如预期一样正常工作。例如,应用是否停留在它原来的位置上?它是否正确的保持着它的状态?它是否还能如预期一样工作?

  1. 待机/恢复。通过按压一次电源键3分钟后即可让HoloLens自动进入待机状态,再次点击电源按钮即可从待机状态恢复。连接电源线或从电源线断开也可以让设备从待机状态恢复。
  2. 关闭/重启 。长按电源键即可关闭HoloLens,再次按下电源键即可重启设备。

多应用场景 Multi-App Scenarios

确定在不同APP间切换时,核心应用功能是否能正常工作,尤其当你设定了后台运行任务时。粘贴/复制操作和Cortana集成也应当检测是否可用。

应用遥测 Telemetry


使用遥测和分析工具对你会很有用。集成应用分析工具可以从测试用户和终端用户那里收集应用数据。这些数据通常可以在你将

应用提交到应用商店前帮助优化应用。有很多可选的分析工具,如果你不确定如何开始,可以阅读: https://www.visualstudio.com/en-us/products/application-insights-vs.aspx

需要考虑的问题:

  1. 用户如何使用这片空间?
  2. 该应用如何在世界中放置对象?你能检测到问题吗?
  3. 用户在应用不同阶段划花了多少时间?
  4. 用户在该应用上花了多长时间?
  5. 用户正在尝试着最常见的用途是什么?
  6. 用户有触发异常状态或错误吗?

模拟器和模拟输入 Emulator and Simulated Input


HoloLens模拟器是测试你的全息应用最有效的方式,可以模拟各种用户特征和空间环境。下面是一些使用模拟器测试应用的建议:

  1. 使用模拟器的虚拟房间来扩展你的测试内容。模拟器内置了各种大小的虚拟房间,你可以使用这些环境来测试应用。
  2. 使用模拟器从各种角度观察你的app。使用上下翻页按键来模拟用户的高矮。
  3. 使用真实设备来测试你的应用。HoloLens模拟器是很好的工具,但是在提交到应用商店之前你还是应该使用真是设备来测试应用。这对于确保真实设备上的性能和体验非常重要。

带着环境感知模拟的自动测试 Automated testing with Perception Simulation


一些开发者可能想要自动测试应用。除了单元测试外,你可以使用HoloLens的环境感知模拟模块来自动进行人类和环境输入模拟。环境感知模拟API可以发送模拟的输入数据到HoloLens模拟器或HoloLens真机。

应用认证工具包 Windows App Certification Kit


为了帮助你尽可能顺利地发布应用到应用商店,在提交商店认证之前,可以在本地鉴定和测试应用。如果你的应用以 Windows.Holographic为目标平台,Windows App Certification Kit 将仅在你的PC上运行本地静态分析测试,而不会在HoloLens上运行测试。

HoloLens开发手记 - 测试 Testing的更多相关文章

  1. HoloLens开发手记 - HoloLens真机上手简评

    千呼万唤始出来,终于今天拿到了HoloLens真机. 使用体验 使用自带的应用录制了一段使用视频,如下 设备概览 包装盒 本体 试戴 实际效果 GalaxyExplorer试玩 全息图像贴到现实场景表 ...

  2. HoloLens开发手记 - 使用HoloLens模拟器 Using HoloLens emulator

    首先下载HoloLens模拟器 HoloLens模拟器运行在没有真机的情况下在你的PC上测试应用,属于HoloLens开发工具系列.模拟器使用了Hyper-V虚拟机.通常通过传感器获取的人体和环境输入 ...

  3. HoloLens开发手记 - 应用程序模型 App model

    HoloLens使用Universal Windows Platform (UWP)提供的应用模型.UWP应用模型定义了应用如何被安全和完全地安装.更新.版本控制和移除.它管理了应用生命周期 - 应用 ...

  4. HoloLens开发手记-开发概述Development overview

    开发HoloLens全息应用将使用UWP平台(Universal Windows Platform),所有的HoloLens应用都是Win10通用应用,所有UWP通用应用都可以在HoloLens上运行 ...

  5. HoloLens开发手记 - 构建2D应用 Building 2D apps

    HoloLens可以让我们在真实世界中看到全息图像内容.但是它本质上还是一台Windows 10设备,这意味着HoloLens可以以2D应用形式运行Windows Store里的大部分UWP应用. 目 ...

  6. HoloLens开发手记 - 使用Windows设备控制台 Using Windows Device Portal

    Windows设备控制台允许你通过Wi-Fi或USB来远程控制你的HoloLens设备.设备控制台是HoloLens上的一个Web Server,你可以通过PC的浏览器来连接到它.设备控制台包含了很多 ...

  7. HoloLens开发手记 - Vuforia开发概述 Vuforia development overview

    关于Vuforia,开发AR应用的人基本都会熟悉.之前我也写过一篇关于Vuforia开发的博客:Vuforia AR SDK入门 今天这篇博客则主要是谈谈HoloLens使用Vuforia开发混合现实 ...

  8. HoloLens开发手记 - Unity development overview 使用Unity开发概述

    Unity Technical Preview for HoloLens最新发行版为:Beta 24,发布于 09/07/2016 开始使用Unity开发HoloLens应用之前,确保你已经安装好了必 ...

  9. HoloLens开发手记 - Unity之语音输入

    对于HoloLens,语音输入是三大基本输入方式之一,广泛地运用在各种交互中.HoloLens上语音输入有三种形式,分别是: 语音命令 Voice Command 听写 Diction 语法识别 Gr ...

随机推荐

  1. NuGet学习笔记2——使用图形化界面打包自己的类库

    NuGet相对于我们最重要的功能是能够搭建自己的NuGet服务器,实现公司内部类库的轻松共享更新.在安装好NuGet扩展后,我们已经能够通过NuGet轻松下载自己需要的类库,下面来说一说如何将自己的项 ...

  2. 教你手工mysql拆库

    互联网网站应用大多采用mysql作为DB存储,限于mysql单机性能的瓶颈,为了支撑更大容量和更大的访问量,dba一般通过建立分布式集群,让多个mysql共同提供服务.所谓的mysql分布式集群,实质 ...

  3. 利用NuSoap开发WebService(PHP)

    利用NuSoap开发WebService(PHP) 分类: php 2010-09-08 12:00 5005人阅读 评论(1) 收藏 举报 webservicephpsoapstringencodi ...

  4. MATLAB学习(一)——状态好状态坏,自作自受

    状态不好,学学MATLAB做做准备吧. 一.基本情况 1.1 书写 一行写不下? %可以加上三个小黑点(续行符)并按下回车键,然后接下去再写.例如 s=-/+/-/+/-/+/-…- /+/-/+/- ...

  5. monkey学习笔记

    Monkey一. Monkey 是什么?Monkey是Android中的一个命令行工具,它其实就是SDK中附带的一个工具,可以运行在模拟器里或实际设备中. 二.Monkey 测试的目的?Monkey测 ...

  6. AngularJS XMLHttpRequest

    $http 是 AngularJS 中的一个核心服务,用于读取远程服务器的数据. 读取 JSON 文件 下是存储在web服务器上的 JSON 文件: { "records": [ ...

  7. USACO(含training section)水题合集[5/未完待续]

    (1) USACO2.1 Ordered Fractions 枚举 排序即可,注意1/1 #include<iostream> #include<cstdio> #includ ...

  8. 转:Eclipse SVN插件比较 Subclipse vs Subversive

    结论:还是用久经考验的 Subclipse http://www.wkii.org/eclipse-svn-plugins-subclipse-vs-subversive.html

  9. bzoj1787 [Ahoi2008]Meet 紧急集合

    1787: [Ahoi2008]Meet 紧急集合 Time Limit: 20 Sec  Memory Limit: 162 MB Submit: 2272  Solved: 1029 [Submi ...

  10. 学习CSS的瓶颈

    何为学习瓶颈 学习到了一定的阶段,就很难继续提高水平的一种现象 这是很多人都正面对的,但同时自己并未意识到. 既然是瓶颈,那么一旦突破了,就是广阔天空! 你是否经常面对这样的情景: 遇到一个奇葩问题, ...