这周的学习笔记我想写点自己关于实验中碰到的问题和感想。

因为这次做的是白盒测试,所以我决定去测试一下上回测试的app的功能函数。

这次我用的是单元测试项目来做的白盒测试:

创建单元测试的步骤:

1.点击 “文件”->“添加”->“新建项目”

2.选择 windows应用程序-> 单元测试项目

3.在解决方案资源管理器中为单元测试项目下的引用上右击选择添加引用

4.选择解决方案下的项目中的用来测试的win8应用

接下来是单元测试的代码部分的编写了:

我要测试的是该项目中的一个字符串转化编码的函数,函数的功能是把字符串从gb2312编码转成utf8

public string GB2312ToUTF8(string str)
       {
             try
                {  
                Encoding uft8 = Encoding.GetEncoding("UTF-8");
                Encoding gb2312 = Encoding.GetEncoding("GBK");
                byte[] temp = gb2312.GetBytes(str);  
                byte[] temp1 = Encoding.Convert(gb2312, uft8, temp);
                string result = uft8.GetString(temp1,0,temp1.Length);
                return result;
                }  
                catch(Exception ex)//(UnsupportedEncodingException ex)
                {
                    return null;
                }
        }

这是原函数的代码部分,然后在单元测试UNITTEST1.cs文件中加入下面这句话引用被测试项目的namespace

  using 这是猜灯谜游戏;

紧接着就是编写测试函数了,我写的TestMethod1:

public void TestMethod1()
        {
            gamePage gp = new gamePage();
            string str = "猜灯谜";
            Encoding uft8 = Encoding.GetEncoding("UTF-8");
            Encoding gb2312 = Encoding.GetEncoding("GBK");
            byte[] temp = gb2312.GetBytes(str);
            byte[] temp1 = Encoding.Convert(gb2312, uft8, temp);
            string result = uft8.GetString(temp1, 0, temp1.Length);

string output = gp.GB2312ToUTF8(str);
            Assert.AreEqual(result, output);
        }

在这个函数中创建一个测试用例用来测试函数的功能是否如预期所示,然后自己做一遍编码的转换存到

字符串result中,最后创建一个断言判断单元测试中的函数输出结果和预期结果result是否一致。

然后我就去运行了一下这个单元测试项目,结果是这样的:

然后我就去寻找原因了,最后我总结了一下出现这个结果的原因:

我觉得这是因为被测试项目本身是一个win8应用,里面的类文件都是控制布局的类文件,也就是说都是UI对象的类,

所以运行之后会提示请使用UI的编码测试,而不是单元测试,要解决这个问题就只能换一个有自己的功能类的win8应用,

但是大家写的都是功能嵌入在布局类中的win8应用,所以没法解决这个问题。

软件测试第六周学习笔记之“Win8 APP应用程序的白盒测试”的更多相关文章

  1. 《Linux内核分析》第六周学习笔记

    <Linux内核分析>第六周学习笔记 进程的描述和创建 郭垚 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/co ...

  2. Linux内核分析第六周学习笔记——分析Linux内核创建一个新进程的过程

    Linux内核分析第六周学习笔记--分析Linux内核创建一个新进程的过程 zl + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/U ...

  3. linux内核分析第六周学习笔记

    LINUX内核分析第六周学习总结 标签(空格分隔): 20135328陈都 陈都 原创作品转载请注明出处 <Linux内核分析>MOOC课程 http://mooc.study.163.c ...

  4. 20165326 java第六周学习笔记

    第六周学习总结 ch8 String类对于有效处理字符序列信息非常重要. String对象的字符序列不能被修改删除,无法发生变化. StringBuffer类的对象实体的内存空间可以自动改变大小,便于 ...

  5. Linux内核分析——第六周学习笔记20135308

    第六周 进程的描述和进程的创建 一.进程描述符task_struct数据结构 1.操作系统三大功能 进程管理 内存管理 文件系统 2.进程控制块PCB——task_struct 也叫进程描述符,为了管 ...

  6. 第六周学习笔记,vc各类控件的输入输出

    6w学习笔记 vc控件的输入输出 单选按钮 当单击 RadioButton 控件时,其 Checked 属性设置为 true,并且调用 Click 事件处理程序.当 Checked 属性的值更改时,将 ...

  7. 20135320赵瀚青LINUX第六周学习笔记

    赵瀚青原创作品转载请注明出处<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 概述 这周主要讲解的是进程. ...

  8. Linux内核分析——第六周学习笔记

    进程的描述和进程的创建 前言:以下笔记除了一些讲解视频中的概念记录,图示.图示中的补充文字.总结.分析.小结部分均是个人理解.如有错误观点,请多指教! PS.实验操作会在提交到MOOC网站的博客中写.

  9. 20179223《Linux内核原理与解析》第六周学习笔记

    视频知识学习 给MenuOS增加time和time-asm命令 1.更新menu代码到最新版 2.再main()函数中增加MenuConfig 3.增加对应的Time函数和TimeAsm函数(这里的函 ...

随机推荐

  1. 【java基础】成员变量和局部变量

    成员变量和局部变量 根据定义变量位置的不同,可以将变量分为成员变量和局部变量        成员变量是在类范围内定义的变量        局部变量是在一个方法内定义的变量   成员变量可以分为:   ...

  2. Spring aop 记录操作日志 Aspect

    前几天做系统日志记录的功能,一个操作调一次记录方法,每次还得去收集参数等等,太尼玛烦了.在程序员的世界里,当你的一个功能重复出现多次,就应该想想肯定有更简单的实现方法.于是果断搜索各种资料,终于搞定了 ...

  3. 不在折腾---hive-0.13.1-bin

    Hive只在一个节点安装即可 上传tar包 解压 > tar zxvf hive-0.13.1-bin.tar.gz 配置mysql * 检查MySQL是否安装:rpm -qa | grep m ...

  4. 使用requestAnimationFrame做动画效果二

    3月是个好日子,渐渐地开始忙起来了,我做事还是不够细心,加上感冒,没精神,今天差点又出事了,做过的事情还是要检查一遍才行,哎呀. 使用requestAnimationFrame做动画,我做了很久,终于 ...

  5. Ridit分析

    对于有序分类资料,由于指标存在等级顺序,因此不能使用卡方检验,除了使用秩和检验之外,ridit检验也是分析有序分类资料的常用方法,属于非参数检验. ridit检验的基本做法是将一组有序分组资料转换成一 ...

  6. gulp教程之gulp-concat

    简介: 使用gulp-concat合并javascript文件,减少网络请求. 1.安装nodejs/全局安装gulp/本地安装gulp/创建package.json和gulpfile.js文件 1. ...

  7. C++ void*的使用

    void*类型可以存储任何类型的指针,使用的时候强制转化成对应类型的指针便可. #include <iostream> #include <vector> using name ...

  8. Scala学习(一)

    最近在学习Scala,总结了一下比较基础的知识. 一.Scala简介 1.Scalable Language,是一门多范式的编程语言,是一种纯面向对象的语言,每个值都是对象. 2.特点:①Scalab ...

  9. 前端面试题2016--HTML

    本文由我收集总结了一些前端面试题,初学者阅后也要用心钻研其中的原理,重要知识需要系统学习.透彻学习,形成自己的知识链.万不可投机取巧,临时抱佛脚只求面试侥幸混过关是错误的!也是不可能的!不可能的!不可 ...

  10. python3练习-杨辉三角/帕斯卡三角形

    杨辉三角形式如下: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 # 期待输出: # [1] # [1, 1] # [1, 2, 1] # [1, 3, 3, ...