Windows Mobile 测试介绍

Windows Mobile logo测试介绍

【摘要】本文围绕Windows Mobile 系统下的logo认证测试做了下简单介绍,让读者对有关测试有个感性认识,详细情况,以后有机会另行撰文详细介绍。

【关键词】Windows Mobile、logo测
 
一、Windows Mobile简介

    Windows Mobile是微软主要针对手机市场而推出的一种操作系统,改系统和Nokia Sybian系统一样把手机推向了智能化。丰富的功能以及强大的品牌优势让这一系统逐渐被一些手机开发商采用。

    Windows Mobile系统Windows CE系统的一个分支,Windows mobile是建立在CE系统之上的。Windows Mobile 将熟悉的 Windows 桌面扩展到了个人设备中。这对于用户的使用上更加容易。

    Windows Mobile平台下的产品主要有Smartphone和PPC两种。

    Window系统的优势所在:

    参考BSP(板支持包)—

    Windows Mobile提供一些针对不同硬件平台的参考BSP,这样可以缩短OEM/ODM开发周期,加快产品上市步伐,提高产品市场竞争力。

    支持很多硬件设备—SDRAM,NAND/NOR Flash、USB,,PCI,PCMCIA/CF插槽

    通讯功能—WI-FI、红外,蓝牙,802.1X,GSM/GPRS/CDMA

    人机接口硬件—LCD,触摸屏,Mouse、keypad。

    其他—Printer、Camera等

    丰富的应用软件—

    Windows Media Player播放软件;PDF,Excel,PowerPoint 和Image阅读软件;Pocket Outlook,Pocket WordPad,Windows Messenger,IE;ActiveSync同步软件;包括SMS,MMS在内的电话软件 

    CETK和hopper等测试工具

    为了帮助OEM/ODM顺利地开发出产品,微软公司提供一套测试工具,开发人员在开发过程中可以用该工具测试产品的性能和稳定性。这样可以保证发布可靠的产品。

    微软的品牌优势丰富的开发资源MSDN技术资料及开发工具
二、LTK简介

    微软为了保证采用Windows Mobile系统的产品质量,提供了一整套测试标准,也就是logo test kit,简称LTK.开发商要想将自己采用Windows Mobile标识的产品推向市场,那么就必须先过Windows Mobile Logo测试这一关,只有通过了Windows Logo测试后才能获得微软认可,产品才能得以上市。

    微软提供的logo test kit从产品的软件、硬件、logo表识几方面对产品提出了要求。Logo test kit实际上有是一套test case.涉及到射频、系统可靠性、电源、驱动等整个系统的多个部分。

    目前对于一些使用Windows Mobile操作系统的智能手机和PPC,在其上市之前都必须首先过logo认证这一关。目前做这方面测试认证的并不是微软公司,而是微软的一个合作公司,NSTL,具体网址见http://www.nstl.com/,感兴趣者可以进入了解。

三、什么是CETK?

    在实际产品开发过程中,很多开发人员不搞不清楚CETK和LTK的关系。在此做有关解释,LTK实际上是一套测试用例,一套标准;CETK呢,就是进行LTK测试时使用的一套测试工具。

    从本质上讲,CETK也是一套完整的测试用例的集合,只不过每个测试用例都是一个应用程序。

    在测试过程中,CETK根据所要测试的硬件特性,其实是对应于驱动程序中的某些函数调用。因此测试用例就是调用相关的驱动程序中的函数,并通过检测函数运行结果来判断驱动程序是否正确的,在测试过重中测试人员可以修改相应参数以控制测试的运行方式。

    如果开发者使用了自己设计、或者是已有BSP中没有的设备,在测试该设备的时候,就需要测试人员根据设备的特性及驱动程序,自行编写测试用例。

3) DATK:

  DATK的全称是Device Automation ToolKit。它是一套影射了所有的Windows CE上的标准控件的一套类库。例如文本框,列表框,按钮等等。同时,在这一层还有一个主要的对象叫做WindowsFinder,它几乎可以说是DATK甚至是WMTF的核心部分。您可以通过它来制定条件(例如类型,文本,进程等等)来寻找到某一个控件,然后把这个控件绑定到一个DATK控件上,然后您的代码来操作这个DATK 控件就可以实现对实际的控件的调用。这其实就是Windows Mobile Test Framework的核心部分。

  4)Mobility ToolKit:

  以后我们将它简称为MTK。MTK里面主要在DATK的基础上增添了许多针对移动设备特有的对象。可以认为它是DATK的一个扩展。

  5)UIAL:

  UIAL(UI Abstraction Layer),它是您要测试的应用程序的界面的一个影射。您必须为您的需要测试的每一个界面建立对应的UIAL层代码(借助微软提供的工具),这样才可以对程序进行测试。一个典型的UIAL层代码通常包含4部分。

  A. 对话框类:它是你要测试的那个对话框的一个影射,同时这个类里面也应该包含该界面上面所有控件地应的DATK控件。

  B. 应用程序类:用来启动该对话框。

  C. IdnHolder类:用来查找对话框中的本地化资源文字。

  D. 自测试代码:赫赫。。。从这一层起,就需要做测试了。

  6) Area Libraries:

  在这一层我们通常来封装一些可以复用的步骤。举例来说,您的测试程序中需要打开某一个对话框,而这个步骤显然是可以复用的(也许为了测试不同的地方我们需要反复的打开这个对话框)。那么我们就可以把这个打开程序,然后再打开该对话框的步骤封装到Area Libraries便于以后复用。

  7)Test Cases & Test Suites:

  这一层我们通常简称为Tests层,显然,在这一层我们用来编写我们的测试代码。和NUnit之类的很相似。使用Suite来把一些Test Cases组织到一起。

  最终,测试引擎Tux.NET将调用Tests层中的测试代码,按照您的测试脚本来测试程序

Logo
认证的测试流程
获得Designed for Windows Mobile的徽标必须通过以下步骤(由微软Windows Mobile的Logo 认证合作伙伴VeriTest提供):

1、                  确保产品符合微软公司的要求:阅读相应的手册(Pocket PC 或 Smartphone)以确定应用程序是否符合标准(Pocket PC: 软件应用程序手册和Smartphone: 软件应用程序手册);

2、                  完成VeriTest在线注册表格:在线注册可以通过 https://cert.veritest.com/register/ 来完成;

3、                  提供测试软件:选择以下三种方式中的一种(CD, URL, FTP)提供您的测试软件;

4、                  排定测试时间表;

5、                  收到测试结果;

6、                  得到徽标标志,将您的产品添加到微软移动应用程序目录 (Mobile Application Catalog) 并且加入微软合作伙伴计划 (Microsoft Partner Program)。

更详细的信息,请访问以下链接:http://www.veritest.com/

 

 

 

 

 

 


摘要:分析了Windows Mobile中的软件自动化测试框架及其层次关系,通过实例在Visual Studio 2005中实现了对目标设备UI的自动化测试。在产品开发实践中表明,这种自动化测试具有测试效率高、可靠性好、易维护等优点,对于Windows Mobile设备中其他方面的自动化测试研究具有一定参考价值。
  关键词:Windows Mobile;软件测试;自动化测试;用户接口测试;测试用例
  中图分类号:TP309文献标志码:A
  文章编号:1001-3695(2007)07-0165-03
  
  Key words:Windows Mobile;software testing;automation testing;UI testing;test case
  软件测试是软件工程过程的一个重要阶段,是在软件投入运行前,对软件需求分析、设计和编码各阶段产品的最终检查,是为了保证软件开发产品的正确性、完全性和一致性,从而检测软件错误、修正软件错误的过程[1]。在嵌入式智能终端中,有限的硬件资源对其软件的功能性和稳定性方面提出了更高的要求。因此,需要对设备上的各种软件进行全面测试。
  Windows Mobile 是 Microsoft 用于 Pocket PC 和 Smartphone 的软件平台,面向个人移动电子消费市场,最新版本是Windows Mobile 2005,现在Windows Mobile的合作伙伴已扩展到全球48个国家的40家硬件厂商和68家移动运营商。对原始设备制造商(OEM)来讲,Windows Mobile是一个集合,包括一组事先定制的Windows CE(微软的通用嵌入式操作系统)组件、其他附加的与Windows Mobile相关的组件和OEM所必须遵守的产品功能性要求。OEM利用这些组件,并添加必要的设备驱动程序和其他应用,然后拷贝到设备的ROM中。在Windows Mobile的产品开发中,软件测试大约占50%的开销。针对如何在Windows Mobile中开发自动化测试以降低测试费用、提高测试质量和效率,本文分析了Windows Mobile中自动化测试框架及其内部各模块的关系,并实现了对产品UI自动化测试的实例。
  
  1Windows Mobile中的自动化测试框架
  
  在Windows Mobile的智能终端上,采用Mobility Toolkit Development Kit工具包来对UI进行自动化测试[7]。Windows Mobile中自动化测试框架由.NET类库组成。在实际中为实现不同的测试功能,测试框架采用分层结构。图1描述了各类库层次依赖关系。
  虚线下的Logging 和Utils.NET可以被其他各模块使用。
  
  1.1Logging
  Logging库包含了与导出测试数据和测试结果管理相关的类。Logging是通用的,满足了除.NET测试工具之外的如桌面测试工具可使用Logging。对于.NET自动化测试来说,Logging的主要接口是GlobalLogger和GlobalLogResultManager。
  MTK、UIAL、Area Libraries和Test components利用GlobalLogger在测试中自动向日志文件导出测试信息。此外,GlobalLogger还支持不同的测试信息导出等级。例如,对UIAL层的注释是在调试等级,在调试过程GlobalLogger才记录相关信息;而对测试等级下的测试信息则无此限制。GlobalLogResultManager主要用在Test Cases and Suites和Area Libraries两层,当一次执行多个测试用例时可以用来跟踪每个用例的测试结果。
  
  1.2Utils.NET
  Utils.NET代码库包含了可以被MTK、UIAL、Area Libraries和Tests使用的面向设备的代码。.NET Framework为桌面工具提供了丰富的代码库,而.NET Compact Framework只包含了该代码库的一个子集。Utils.NET涵盖了在.NET Compact Framework中所没有但在测试目标设备要用到的代码。
  Utils.NET提供的代码对于.NET自动化测试和.NET Compact Framework的使用者都是很有帮助的。此外,Utils.NET还为在目标设备与开发工作站之间共享代码提供了方便。
  
  1.3Device Automation ToolKit (DATK)
  主要是C#类库,其中的类映射了对目标设备上UI的控制。DATK中的有些类映射了目标设备上的编辑框、列表视图和按钮等。除了这些可以映射的控制类之外,还有Windows Finder类,该类在使用DATK中是很重要的。Windows Finder可以指定对设备进行控制的某些特征如类型、文本或进程等,并将该控制与DATK控制对象绑定。而利用DATK控制对象可以得到对目标设备控制的信息如类型、已选/未选状态等,进一步利用DATK控制对象可以与目标设备控制的交互,这样就实现了利用DATK对目标设备上UI的自动化测试。
  DATK目前尚不依赖Logging或Utils.NET组件。
  
  1.4Mobility ToolKit (MTK)
  MTK是与DATK类库中对MDPG部分的扩展。比如说,软按键在Windows Mobile的设备上是很重要的组件,但Windows CE本身却不支持,因此DATK中也不提供与软按键对应的控制类,这在对Windows Mobile的设备测试时是很不方便的。基于此,在DATK中添加了针对Windows Mobile设备的控制类,形成了测试Windows Mobile设备的专用类库即MTK。此外,MTK还提供了有助于自动化测试的其他类,如ApplicationManager可以映射为启动Windows Mobile设备上的应用程序。
MTK包含了很多从DATK衍生而来的类,且依赖于Logging 和Utils.NET。
  
  1.5UIAL
  DATK提供了大量的类来映射UI控件对目标设备的UI进行控制。实际中要映射到目标设备的UI控件还要使用DATK中的Windows Finder类来初始化DATK层的UI控件。提供给Windows Finder搜索条件如类名字、标题、控制ID号等,Windows Finder会根据给定条件找出所需的控制类。搜索条件对设备UI中设计与实现上的变化是很敏感的,这样提供了一种抽象模式来保护UI测试自动化免受上述变化的影响。
  UIAL在一个应用程序中封装了各种形式的控件,这样自动化测试开发者可直接用Windows Finder来获取该控件。C#库为目标设备上的具体控件和DATK控制对象提供了1∶1的映射。应用中,每个应用程序应该对应一个UIAL,且UIAL中具有相应的属性与该应用程序中的控件对应。主要是对控件属性进行标记,避免了UI中有控件变化时不必修改全部测试代码,只需改动UIAL即可。UIAL依赖于DATK、MTK、Utils.NET和 Logging。且被Area Libraries所调用。
  
本文原文
  
  1.6Area Libraries
  UIAL降低了在DATK中寻找控件的难度,但并未将这些控件与特定的应用场景绑定。Area Libraries可以在目标设备上将这些控件应用到特定的情境中。
  Area Libraries的目的是使自动化测试脚本的编写,像描述手动测试用例的步骤一样直观。这样与手工测试相比,代码就变得非常简洁。例如测试Microsoft Word的用例中第一个步骤是打开Word,该步骤对应了在UI中的一组命令:点击开始、选择程序、点击Word等。测试用例的Open Word步骤就可以在Area Library中直接执行,屏蔽了打开Word时的细节。此外,Area Library还自适应不同的产品(PocketPC或Smartphone)、使用的SKU等。Area Libraries依赖于UIAL、MTK、Utils.NET和Logging,且只为其上层的Tests层服务。
  
  1.7Tests Cases and Suites
  在.NET Automation Framework中,测试套件是从TestSuite类继承来的一系列子类。测试用例是标记了属性的C#方法,是根据属性包含在相应的测试套件中,从功能上依赖于Area Libraries,包含了根据需求对该库的一系列调用。这样一系列的特定行为组成了测试用例要完成的测试动作。一般情况下,测试用例并不直接调用UIAL,除非对较特殊的设备应用程序进行测试。该层依赖于Area Libraries,少数情况下需要UIAL、MTK或DATK的支持。
  
  2基于DATK开发UI自动化测试
  
  利用DATK实现UI自动化测试关键在于创建抽象运行对话框和设计测试用例。
  2.1开发环境搭建
  (1)将Visual Studio 2005安装文件中的MtkKit文件拷贝到C:\MtkKit。
  (2)安装ActiveSync和Visual Studio 2005。
  ActiveSync. ActiveSync是开发工作站与目标设备之间的同步软件,利用ActiveSync可使两者的数据保持实时更新。
  Visual Studio 2005,微软的最新系列的集成开发环境,其最新版本是Visual Studio 2005 Team Suite。
  (3)将Windows Mobile上的设备连接到ActiveSync。
  将模拟器与ActiveSync相连。在Visual Studio 2005的模拟器管理器中可以启动模拟器。需要注意的是连接模式选择DMA,且需要Cradle待连接的模拟器。
   (4)将开发工作站上的c:\mtkkit\DeviceFiles\文件拷贝到目标设备的\test目录下。
  
  2.2创建抽象运行对话框
  当开发环境搭建好后,就可以开始实现UI自动化测试了。关键之一是要创建抽象运行对话框,当创建好之后需要编写测试用例进行调用。
  首先,在Visual Studio 2005的工程目录下创建要建立的工程文件MyDemo,一般路径为C:\Documents and Settings\ XXX \My Documents\Visual Studio 2005\Projects\,将C:\MtkKit\TuxNetSkeleton下的内容拷贝到工程文件夹MyDemo下,需要注意的是,要将拷贝过来的与Windows Explorer相关的文件属性清除只读的限制。其次,把C:\MtkKit\Common文件夹及其内容拷贝到工程目录下,同样,对文件属性清除只读的限制。
  在目标设备上激活shell32.exe,打开运行程序对话框。其次还需要生成RCML文件,在该文件中含有对话框的XML形式表示,采取这种形式有利于向对话框及其控件添加必要信息。生成RCML文件的具体步骤:在开发工作站上执行C:\WINDOWS\system32\cmd.exe /k .\Bin\CommandWindow.bat,其快捷键为C:\MtkKit\CommandWindow.lnk。
  在命令行窗口中键入rapistart "\test\RcmlSnap.exe"命令,这实际上是在工作站上远程执行了RCML Snap程序,该程序产生与shell32对话框相关的RCML文件。对话框如图2所示。

大约一分钟过后,目标设备上出现显示了产生的RCML文件名字的对话框,可以点击OK,如图3所示。此时目标设备上屏幕的截图也会以位图的形式保存下来,这两个文件默认情况在目标设备的根目录下。之后需要将这两个文件拷贝到工作站的工程文件夹下。在Visual Studio 2005下打开产生的RCML文件shell32.exeDialog.RCML和c:\MtkKit\RunDialogSample\RunDialog.rcml文件,编辑shell32.exeDialog.RCML文件的标记属性使之与RunDialog.rcml文件中的属性匹配。
  接下来需要从RCML文件中产生C#源文件。为此需要在图2的命令行对话框中到MyDemo目录下,运行rctocs -dll shell32.exe -rcml . -o c:\Auto命令,该命令启动了RCML文件中的RcToCs工具,RcToCs产生在工程中需要的一组C#源文件,同时创建c:\Auto文件夹,自动将产生的两个C#文件拷贝到该文件夹,因此还需要手动拷贝到工程文件MyDemo。C#源文件如图4所示。
  在Visual Studio 2005中打开c:\mtkkit\MyDemo\TuxNetSkeleton.sln,且将C#源文件中的代码添加到TuxNetSkeleton工程中。至此已经成功地创建了抽象运行对话框。
  
  2.3设计测试用例
  在编写测试用例之前需要对有关文件及类进行重命名:将SkeletonTests.cs源文件改为RunDialogTests.cs;将TuxNetSkeletonTests类更名为RunDialogTests(同时对其构造函数更名)。接下来可以编写测试用例了。
  在RunDialogTests.cs文件的using区添加using Microsoft.MobileDevices.AbstractionLayer.Shell.PocketPC;//声明测试用例针对PocketPC对RunDialogTests类添加启动方法。实现代码为
  #region Utility Methods
  /// 〈summary〉Launch the run dialog using Win+R 〈/summary〉
  public void Launch()
  {
  Utils.GlobalLogger.AddComment("Launch the Run Dialog");
  //向XML测试结果中添加注释
   Datk.KeyBoard.SendKey(Datk.KeyBoard.Key.LWin, Datk.KeyBoard.EventFlags.KeyDown);
   Datk.KeyBoard.SendKey(′R′);
  
   Datk.KeyBoard.SendKey(Datk.KeyBoard.Key.LWin, Datk.KeyBoard.EventFlags.KeyUp);
  }
  #endregion
  展开测试用例的功能区,添加实现该测试用例的功能性代码:
  /// 〈summary〉Use the Run dialog to launch iexplore.exe
  /// 说明: 该测试用例只在Pocket PC phone上适用.〈/summary〉
  ///〈returns〉LogResult.Pass on success〈/returns〉
  [TestCaseAttribute("RunDialog launching iexplore", Type = TestType.Functional)]
  //标记测试用例的属性,以便Tux.NET可以识别该用例
  [MobileDevicesDescriptor ( Product = Products.PocketPC ) ]
  //测试用例针对PocketPC产品
  public Log.LogResult LaunchIExplore()
  {
   RunDialog run = new RunDialog();
   Launch(); //启动一个运行对话框
   Utils.GlobalLogger.AddComment("Select the edit control");
  //向XML测试结果中添加注释
   run.OpenTextBox.Click();
   Utils.GlobalLogger.AddComment("Enter 'iexplore'");
   Datk.KeyBoard.SendString("iexplore");
   Utils.GlobalLogger.AddComment("Click Ok");
   run.OKButton.Click();
   Utils.GlobalLogger.AddComment("Verify that iexplore is launched");
   Datk.WindowFinder iexploreFinder = new Datk.WindowFinder();
   iexploreFinder.ProcessName = "iexplore.exe";
   iexploreFinder.FindForm();


//如果iexplorer未找到,则抛出异常,并有效地记录测试失败
   return Log.LogResult.Pass; //返回测试结果为Pass
  }
  至此已经完成对测试用例的设计。
  
  2.4运行对Internet Explorer自动化测试
  利用快捷键F5(Start with Debugging)运行该测试。可看到目标设备上鼠标自动启动运行对话框,键入iexplorer.exe,点击OK按钮,之后Internet Explorer就被启动了。该测试用例实现了对目标设备上浏览器的自动化测试。通过ActiveSync可以在目标设备的\test文件夹下查看测试日志文件Result.log。其中以XML形式记录了测试过程中的详细信息。
  
  3结束语
  
  Windows Mobile为嵌入式智能移动终端产品的开发提供了比较完整的解决方案,特别是在PocketPC和Smartphone领域正获得越来越广泛的应用。针对基于Windows Mobile上的设备,微软提供了Logo Testing规范在一定程度上来保证OEM厂商的产品质量,实际上,厂家所发布的产品不仅要严格通过该规范,还需要就具体产品作出更有针对性的测试。本文就利用Tux.NET在Visual Studio 2005中实现了Windows Mobile上设备UI自动化测试,对实现其他应用程序UI自动化测试具有借鉴意义。在实际应用中,可以对一系列应用程序UI设计具体自动化测试,将之集成到Windows Mobile CE Test Kit中,实现自动执行对多个应用程序UI测试,从而在较大程度上提高了测试效率,有助于提高测试质量,缩短了产品开发周期。

转载于:https://www.cnblogs.com/yakashop/archive/2011/03/03/1969672.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MobSF(Mobile Security Framework)是一款专门用于移动应用程序安全测试和漏洞扫描的开源框架。它支持多种移动操作系统和应用程序格式,包括Android、iOS、Windows Phone、BlackBerry等。您可以使用MobSF来测试iOS应用程序的安全性和漏洞情况。 要在Windows上使用MobSF测试iOS应用程序,您需要进行以下步骤: 1. 安装Python和Java环境。MobSF是基于Python和Java开发的,因此您需要先安装Python和Java环境。您可以从官方网站下载并安装Python和Java环境。 2. 下载并安装MobSF。您可以从MobSF的官方GitHub仓库下载最新的版本,并将其解压到您的Windows系统中。 3. 安装必要的依赖项。在MobSF的根目录中,运行以下命令来安装必要的依赖项: ``` pip install -r requirements.txt ``` 4. 启动MobSF。在MobSF的根目录中,运行以下命令来启动MobSF: ``` python manage.py runserver ``` 5. 打开Web界面。在浏览器中访问http://127.0.0.1:8000/,即可打开MobSF的Web界面。 6. 导入iOS应用程序。在MobSF的Web界面中,选择“Upload App”选项,选择要测试的iOS应用程序,并等待应用程序上传完成。 7. 进行安全测试。在MobSF的Web界面中,选择“Run Analysis”选项,等待测试完成。MobSF将会对应用程序进行安全测试,并给出测试结果和漏洞报告。 需要注意的是,MobSF只能对未加密的iOS应用程序进行测试。如果应用程序已经被加密,您需要先解密应用程序,然后再使用MobSF进行测试。此外,MobSF只能进行静态分析,无法进行动态分析,因此可能会存在一些漏洞无法被检测到的情况。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值