活经营的测试修养

产品笔记系列:20170104

一 C#内存分配

同样、测试准备

测试用例

1.测试用例的编写不仅该依据中和预期到的输入状态,而且为当依据无效和未预料到的输入状态

2.测试用例的计划性步骤

根据计划规范设计基本功能测试用例—>边界值测试用例—>状态转换测试用例—>错误猜测测试用例—>异常测试用例—>性能测试用例—>压力测试用例

测试文档包括:测试计划文档,测试设计条件文档,测试用例,软件缺陷报告,状态报告

Bug标准

1.Bug记录

一个Bug最核心的记录要求:bug编号、bug严重级别、优先级、bug产生的模块、bug摘要、阐述bug大体的情节、bug对应的本、bug详细状况描述,包括部分截图、录像等、bug出现经常之测试环境、产生的规范虽针对许操作步骤

2.产品Bug等级

1)致命错误,可能导致本模块和另相关模块异常,死机等题材;

2)严重错误,问题局限在以模块,导致模块功能失效或生退出;

3)一般错误,模块功能有失效;

4)建议问题,由问题提出人口对测试目标的改良意见.

3.修改Bug原则:

1)发现严重错误、致命错误应及时处理,有需要则运用热更新/发包

2)发现貌似错误虽然尽量在产一致版中处理

3)建议问题可适量靠后,可加以在此起彼伏的版需要被

4)在发新版本前发现一般错误、严重错误、致命错误,应解决错误后再度作本

       在应用程序与操作系统中出一个”中间人”——公共语言运行时(Common
Language
Runtime,CLR)。它吗应用程序提供内`存管理,线程管理暨长距离处理等核心服务。CLR是应用程序的托管环境。

其次、测试流程

1.单元测试:对程序中基本构成单位测试,如一个模块、一个历程相当;目的是印证软件基本构成单位之正确

2.集变为测试:在软件系统并过程被进行的测试,目的在检测软件单位中的接口是否是

3.网测试:对就集成好的软件系统开展清底测试,以说明程序的正确和性质满足要求

4.验收测试:以《需求原则说明书》为验收规范,测试时学实际用户之周转条件;测试内容为:对功能模块的周测试

5.回归测试:在软件维护阶段,对软件拓展改动以后进行的测试;目的在于证实修改后的次序是否会科学的运行

     
 CLR在运作时管理着相同截内存地址空间(虚拟地址空间,在运转中会映射到大体内存地址中),CLR将内存划分也线程堆栈,GC堆,大目标堆三单区域。

二、原则&理论

测试原则

检查程序是否召开了“产品求”中描述的事体,以及发生没有出开“产品需求”外之政工(需求+错误)

测试理论

1.黑盒测试:已领略产品的意义需求,测试证明每个功能是否符合要求

黑盒测试方法包括:等价类划分、边界值分析、错误猜测法、因果图测试、状态图、场景法、大纲法

2.白盒测试:已知道产品内部工作历程,测试证明功能中操作是否可功能要求

白盒测试方法包括:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件构成覆盖、路径覆盖

透过动用一定的面向黑盒测试的测试用例设计方式,而后使用白盒测试方法对程序的逻辑结构进行检查为填补这些测试用例,借这个来统筹出一个一定严的测试

     
 线程堆栈(栈)
用于分配值类型实例。栈由操作系统进行田间管理,不为GC管理,当值类型不在那个发用域(主要是凭借该所在函数内)时,其所占栈空间活动释放。栈的推行效率是颇强。GC堆(堆)用以分配小目标实例。所谓小目标就是是大小小于85000字节的实例对象。GC堆分三替代垃圾进行管制,当进行GC操作(垃圾回收)时,垃圾收集器会对GC堆进行压缩回收。很目标堆(LOH)用以分配好目标实例。大目标就是是大小小于85000字节的实例对象。大目标分配在LOH上,不受GC控制,不见面受削减,只有在全GC回收时才见面被回收。

其三、测试要求

1.效测试

1)功能测试:检查要求描述着的成品互,能否正确地开展跳转,数据是否正确提交/返回

2)加载测试:检查多媒体元素是否可以正确的加载/显示,页面显示是否健康

3)链接测试:链接是否可正常跳转,是否有出错信息返回

4)多语言支持:能否健康支持显得语言、表情、特殊符号等

2.界面测试

1)页面实现效益是否和计划功能图一律

2)页面布局是否成立正确,重点内容与热内容是否突出

3.性能测试

1)性能测试一般由以下3只地方考虑:压力测试、负载测试、强度测试

2)输入条件在边际值、极限值情况下,能够健康运作,并予对的上报

3)数据库测试:数据库一般需要考虑连结性,对数据的存取操作,数据内容的证实等地方

4.安全测试

1)基本的中坚功能测试:比如,登录注册、支付相当于制品重点作业

2)是否是错误会导致系统崩溃、权限泄露等题材

3)相关支出语言的广泛安全性问题检查,例如SQL注入等

5.兼容性测试

1)客户端的兼容性

2)系统版本的兼容性

二 C#数据类型

季、测试方法

1.抵价类划分:把所有输入数据客观划分也几等价类,在各一个等价类中取一个数作为测试的输入条件;等价类划分可发生些许种植不同的状:有效等价类和无效等价类

2.疆值分析法:使用边界值分析方法设计测试用例,首先应规定边界情况;通常输入和出口等价类的边界,就是诺要测试的鄂情况;应当选正好等于、刚刚超过或碰巧小于边界的价当测试数据

3.左猜测法:基于经验以及直觉推测程序中存有或在的各种不当,
从而有对的统筹测试用例的方法

左推测道的主导思想:
列举出程序中享有可能有错误和易于产生错误的例外情形,根据他们选择测试用例.
例如,
在单元测试时就排有的很多每当模块中广的错误、以前产品测试中都发现的错等;还有,
输入数据及输出数据为0的气象

4.坐果图方法:考虑输入条件里的彼此结合,可能会见起部分新的情状;可考虑采用同样种适合吃描述对于多准的构成,相应产生多个动作之形式来设想规划测试用例;这便得用为果图(逻辑模型),因果图方法最终生成的哪怕是判定表

5.正交表分析法:可能以大气之参数的三结合而滋生测试用例数量达到的激增;同时,这些测试用例并没有确定性的优先级及的区别,而测试人员又力不从心到位如此多数据之测试,就可由此正交表来拓展压缩部分用例,从而达成尽量少之用例覆盖尽量生的限的可能性

6.场情景分析方法:指根据用户场景来学用户之操作步骤,这个比较接近因果图,但是可能实施之深与动向更好。

7.状态图法:通过输入条件以及体系要求说明得到给测系统的有状态,通过输入条件同状态得出输出条件;通过输入条件、输出条件及状态得出被测量系统的测试用例。

8.大纲法:大纲法是一样种植着眼于需求的章程,为了列出各种测试条件,就拿急需变换为大纲的款式。

大纲表示为树状结构,在根本和每个叶子结点之间存在唯一的路径。大纲中之各级条路子定义了一个特定的输入条件集合,用于定义测试用例。树被叶子的数额或大纲中的门道为来了测试所有功能所待测试用例的横数量。

     
C#凡是强类型语言
,在C#先后中每个变量和对象还要声明类型。C#的数据类型可以分成值类型引用类型

五、其他

1.正确认识测试:测试流程的中坚是在维持研发效率的前提下增长产品质量

2.有关人肉测试:测试团队再次多的任务在于测试边界、极限条件的状况,以及做回归测试

3.测试用例的统筹及测试执行,可以使用经典的三轮测试系统以及探索性软件测试网

遵测试用例——用例评审——一车轮测试(全面实施测试用例)——二轮子测试(针对bug修复的证明和bug修复可能带来问题之证实)——三轮测试(内网全面回归)——外网回归测试

4.回归测试用频繁之尽,去检查以往用例是否以以迭代而产出新的bug。

于回归测试环节也足以辅助以测试自动化的点子,但不少早晚自动化是免克判队代码出错的题目的,更多是用监控sdk进行

      C#中值类型席卷三种:简单类型,枚举类型和组织类型。

值类型分类

 类型 

长度(位)

简而言之类型

整型

sbyte (有号子字节型)

8

byte (无符号字节型)

8

char  (字符型)

16

short  (短整型)

16

ushort (无符号短整型)

16

int (整型)

32

uint (无符号整型)

32

long (长整型)

64

ulong (无符号长整型)

64

浮点型

float(单精度)

精度为7位

double(双精度)

精度为15~16位

小数型

decimal

精度为28~29位

布尔型

bool

逻辑真或逻辑假

枚举型

枚举型

enum

 

结构型

结构型

struct

 

 

     
 数据存储:
C#中值类型用于存储数据的价值,而引用类型用于存储对实在多少的援,即数据以积内存中的积存位置编号(存储单元地址)。 
     C#中援类型包括类、接口、委托、数组、字符串等。

类实例化对象时,CLR会根据该布局以积内存中分配一切片空间,对象的分子变量也蕴藏在中,基本型以及援类型的成员变量都当这个目标的空间被,作为一个整存储在积。所有的靶子都存储自己之非静态变量数据。而接近的主意给有着的靶子共享,方法无占用内存,只有在为调用时候才进栈。

 

       三 代码运行过程内存分析

语言 1语言 2

class People

    {

        private string name;

        private int age;

        public People(string name, int age)

        {

            this.name = name;

            this.age = age;

        }

        public void print()

        {

            Console.WriteLine("name:"+this.name+"age:"+this.age);

        }

    }

    class Program

    {

        public static void Main(string[] args)

        {

            People p = new People("小明", 5);

            p.print();

        }

    }

View Code

尽顺序,加载程序上内存代码运行过程:

  1. 主函数Main方法进栈
  2. 构造函数People(“小明”,
    5)进栈,执行构造函数,在积内存中分配一切开区域(假而区域内存存储单元地址也0Xf001)用于存储对象值,对象成员变量初始时候name指向null引用指针,age=0.赋值后,name=”小明”,age=5.
  3. 构造函数出栈,继续执行Main方法
  4. 声称引用类型数据People p,将内存存储单元地址0Xf001赋值给p.
  5. p指向的靶子的print()方法进栈,执行print()方法,print()出栈。
  6. 主函数出栈,程序结束。

 

 

备注:关于值类型与援类型的数内存回收请查看“第3首
构造函数与析构函数”中有关内容。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图