ThreadingTest Android JUnitTest是基于AndroidJUnit [url=]Test[/url],利用ThreadingTest本身的优势,编写的一套单元测试组件。在原有的Android [url=]JUnit[/url] Test测试驱动代码的基础上,只需要进行简单的字符全局替换,就可以修改为符合ThreadingTest Android JUnit Test测试代码的单元测试。除此之外,两者的测试几乎没有差别,只需要您在测试时,打开TT实时监控来接收数据,而在测试过程中,则无需其他操作,甚至感觉不到数据的收集过程。
对于传统的单元测试,在单元测试结束后,测试人员只能获得测试结果是否符合预期结果。如果与预期结果存在差异,也无法立即得到错误原因。当使用ThreadingTest Android JUnit Test进行单元测试时,还是原有的测试体验,却能够得到白盒测试的数据结果,当单元执行结束后,可以根据产生的数据来分析程序的出错点以及遗漏的测试点,使[url=]Bug[/url]的查找更快速,更准确。
例:下图展示一个整合过的单元测试,ThreadingTest通过对代码的自动化插装,在不改变原有的测试方式进行的同时,TT示波器会进行测试过程的数据接收并记录,测试完成后通过测试用例脚本,自动化的生成测试用例以及其相关的测试数据。
threading还开放了API接口进行整合,使原本的自动化操作不用进行任何的改变,通过TT的API接口连接,TT示波器获取其它测试工具的测试数据,并生成会对应测试用例自动生成测试用例和代码之间的关系以及函数覆盖率。目前开放的Java语言的API,直接使用Java语言作为脚本预言的单元测试工具,自动化测试工具都可以通过该接口与TT进行整合。这样就可以实现在运行测试用例的同时,在TT中记录用例所对应的代码执行逻辑信息。
演示:测试场景说明:
当使用其它测试工具进行自动化测试时,如果在测试过程中出现无法干预或正在进行的自动化测试过程时,需要对测试过程进行测试用例的区分,例如登录和退出,在运行一次自动化测试时,同时执行了这两个测试用例,就可以在程序中,添加这两个测试用例的开始和结束点,从而达到区分两个测试用例的目的。这样就可以通过TT来实现测试用例与源代码的关系的自动建立,例如本例子中将建立登陆操作对应的代码以及退出动作所对应的代码。
测试步骤:
以登录退出为例,若存在以下代码结构:
… classHomePage { public void login(){ … // 登录的相关操作 } public void logout(){ … // 退出的相关操作 } } |
1. 将JavaParser-Android.jar包引入到工程中;
2. importcom.zoa.writeToMQ.UnitTest;
3. 添加开始结束标识。
在login函数的开始添加登录测试用例开始的标记,在函数结束前添加登录测试用例结束的标识;同样,在logout函数的开始和结束也可以添加相应的标识。添加后的代码为:
… import com.zoa.writeToMQ.UnitTest; classHomePage { public void login(){ UnitTesttestLogin = new UnitTest(“HomePage/login”); … // 登录的相关操作 testLogin.close(); } public void logout(){ UnitTesttestLogout = new UnitTest(“HomePage/logout”); … // 退出的相关操作 testLogout.close(); } } |
4. 使用TT对程序进行插桩,并对插装后的APP进行原有的测试,在测试过程中TT会通过示波器进行数据的接收和记录,并生成测试用例及对应的测试数据。
当用户的环境为分布式系统时,即由多个组件在集成环境下同时对外提供服务的情况下,TT能支持对这个分布式环境的各个组件及其交互的联合测试。即可以看到一个外部请求,对多个子系统之间的所有的执行情况。
TT允许多个用户同时对被测应用测试,而不同用户针对不同用例,即在同一时刻做的测试而产生的测试数据之间也不会发生任何混淆的情况。
ThreadingTest提供了友好的图形化报表界面,充分对复杂度和覆盖率进行展示。
包括有工程的基本信息,覆盖率和复杂度统计信息,覆盖率增长统计,7种统计信息的排行榜等,包括了几乎所有的重要信息。以柱状图,折线图,列表等直观、友好的形式展现出来,快速的了解工程的结构和测试覆盖情况。
敏捷开发强调适应性而不是预设性,强调人的因素第一。而TT对于这种与传统开发模型区别很大的开发方法同样提供了有效的支持。
1. 敏捷测试和敏捷开发一样,对测试人员也有更高的要求,需要测试人员深入了解代码逻辑,TT可以可视化的展示每个测试用例的测试用例逻辑框图,结合控制流程图和函数调用图可以准确深入的把握源码的逻辑结构。
2. 敏捷开发的特点之一是快速迭代,TT通过双向追溯,串联源码、可视化逻辑框图、测试用例,能够支持二者充分的信息共享。
3. 快速迭代必然产生多个版本,TT的提供在提供版本识别的基础上,智能的对多版本进行演化对比和多版本的覆盖率合并。
4. 在双向追溯和多版本演化对比的功能配合下,可以最小化圈定回归测试的范围,选取最少的测试用例,以达到测试目的。
使软件开发商、需求方、第三方测试商成本降低至少25%以上。打破软件开发者和软件测试者的交流障碍,建立透明追溯机制。
1. 通过技术手段建立开发与测试的高效互动与联系,大幅提升工作效率与软件质量。彻底改变测试过程枯燥、无技术含量现状,测试过程变得有趣、实时可监控。
2. 第五代覆盖率技术,将可实施白盒测试技术正式带入业界。
3. 量化的软件测试体系,建立完善的测试质量审核标准。
4. 实现与敏捷开发的配合,支持增量开发、需求变更、缺陷预防。
5. 傻瓜式简洁操作模式,内部实现复杂,操作简单易理解,可向全球开发、测试人员推广。
6. 在安全事件加速去IOE背景下,率先实现国产商用级的专业测试工具。
例:穿线测试的行业应用——车联网作为全球首款移动端白盒测试工具,ThreadingTest则在满足了ISO26262软件检测标准的基础上,可以对任意基于Android系统的智能驾驶系统提供航天航空级别的功能检测,而根据目前检索的资料来看,ThreadingTest也是全球唯一能够达到该标准的纯软件的商用工具。
ThreadingTest内核里蕴含了大量的复杂运算,但前端呈现给使用者的,却非常简单易用。如同X光一样,ThreadingTest可以把软件的每个细枝末节分析得淋漓尽致,是车载系统软件开发工程师、测试工程师及软件企业管理者的好帮手。针对于ISO26262标准,ThreadingTest可以完美覆盖ISO26262 标准中关于软件测试的选项,同时支持并超出ISO26262中的全流程测试标准,可以从单元测试开始到集成测试、[url=]系统测试[/url]、UAT提供全程的、统一的量化体系。
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) | Powered by Discuz! X3.2 |