今天完成的事情
写前后脑图
明天完成的事情
继续写脑图赶完工作
看需求
遇到的问题
脑图写的有问题 写的太具体了 浪费时间很多
收货
流程分析法是将软件系统的某个流程看成路径,用路径分析的方法来设计测试用例。根据流程的顺序依次进行组合,使得流程的各个分支都能走到。
这里拿一个最简单的流程来做分析。用户登陆操作的流程。这个大家都应该很熟悉的,需求如下(这里只简单举个例子说明用例设计方法,具体需求应该还要详细。)
1、 用户执行程序,弹出登陆对话框;
2、 用户输入用户名,格式要符合如下规范:
a. 2-16个字长,英文或数字;
b. 用户名中不可出现空格符;
c. 可以使用这些字符:“横线-”,“下划线_”,“点.”;
d. 不可以使用“&、%、$”等其它字符。
用户名出错处理:
1)、用户名为空:提示用户:“请输入用户名!”;
2)、用户名错误:提示用户:“用户名错误,请重新输入用户名!”。
3、用户输入密码,格式要符合如下规范:
a. 密码为字符串;
b. 字符串为0~9之间的阿拉伯数字组合,密码长度为6位。
密码出错处理:
1)、密码为空:提示用户:“请输入密码!”;
2)、密码错误:提示用户:“密码错误,请重新输入密码!”。
4、确定登陆,系统验证用户登陆;
5、取消登陆,退出系统。
一、单元测试与集成测试
1 单元测试的目标与任务
1.1 这些单元可能是一个对象或是一个类,也可能是是一个函数,或组件或模块。一般情况下,被测试的单元能够实现一定的功能,具有一定的独立性,同时又通过明确的接口定义与其他单元联系起来。单元测试不仅仅是测试代码的功能性,还需确保代码在结构上可靠且健壮,能够在各种条件下(包括异常条件)给予正确的响应。
1.2 通过单元测试,需要验证下列这些内容:
(1)数据或信息能否正确的流入和流出单元
(2)在单元工作过程中,其内部数据能否保持其完整性
(3)在数据处理大的边界能否正确工作
(4)单元的运行能否做到满足特定的逻辑覆盖 (判定覆盖、条件覆盖、判定条件覆盖、条件组合、基本路径覆盖,在设计测试用例时)
(5)单元中发生了错误,其中的出错处理措施是否有效
细(6)指针是否被错误引用、资源是否及时被释放
节(7)有没有安全隐患?是否使用了不恰当的字符串处理函数等。
1.3 活动
(1)建立单元测试的环境
(2)测试脚本(测试代码)的开发和调试
(3)测试执行及结果分析
1.4 单元测试的任务
(1)单元独立执行路径测试:对每一条独立执行路径进行测试
(2)单元局部数据结构的测试:检查临时存储的数据在程序执行过程中是否正确、完整。
检查是否有以下几类的错误:a.不合适或不相容的类型说明。b.变量初始化或缺省值有错。c.变量无初值。d.不正确的变量名。e.出现上溢、下溢或地址异常。
(3)单元接口测试:数据能正确输入输出。
(4)单元边界条件测试
(5)单元容错性测试:针对出错进行正确的处理。
(6)内存分析
2 静态测试
静态测试技术是单元测试中重要手段之一,在代码完成并无错误地通过编译或汇编后进行,采用工具扫描分析、代码评审等。
3 动态测试
3.1 驱动程序和桩程序
运行被测单元,隔离被测单元,根据被测试的单元接口,开发相应的驱动程序和桩程序。
驱动程序:模拟被测试模块的上级模块
桩程序:模拟被测模块工作过程中的下层模块
3.2 类测试
面向对象的单元测试通常是对一个基类或其子类进行测试。对于类的单元测试可以看作是对类的成员函数进行测试。
不会对每个成员及方法进行测试,但对于核心或重于的方法需要进行全面测试。
4 分层单元测试
很多应用程序是分层的,如数据访问层、业务逻辑层、表示层等,所以咱进行单元测试时分层进行
4.1 Action层的单元测试
主要接收页面传来的参数,然后调用业务逻辑层的封装方法,最后负责跳转到相应的页面。主要进行跳转测试。
使用Mork对象,是隔离外部依赖的一个有效办法。
4.1.1 Moak对象
Mork就是模型,模拟测试时所需的对象及测试数据。
StrutsTestCase是Junit TestCase的基类,提供基于Struts框架的代码测试。
MorkStrutsTestCase,是对Junit TestCase基类的扩展
CactusStrutsTestCase,是对Cactus ServletTestCase基类的扩展
4.2 数据访问层的单元测试
业务逻辑层,一般用于处理比较复杂的逻辑,也用于DAO层的数据操作。
( DAO层:DAO层主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此,DAO层的设计首先是设计DAO的接口,然后在Spring的配置文件中定义此接口的实现类,然后就可在模块中调用此接口来进行数据业务的处理,而不用关心此接口的具体实现类是哪个类,显得结构非常清晰,DAO层的数据源配置,以及有关数据库连接的参数都在Spring的配置文件中进行配置)
Junit,Mork对象,mork object,Dbunit
4.3 Servlet的单元测试
选择HttpUnit
5 单元测试工具
5.1 针对单元测试一般根据不同的编程语言和不同的开发环境
针对C/C++的单元测试工具:Cppunit,Parasoft C++ Test等
针对Java语言的单元测试工具:Parasoft Jtest,Junit等
.NET:NUnit
HTML:HtmlUnit
JavaScript:JsUnit
PHP:PhpUnit
5.2 分为静态测试工具和动态测试工具
支持Java语言检测:CheckStyle、FindBugs、PMD等
支持C++语言:Parasoft C++Test
5.3 按功能特点进行分类
内存资源泄露检查工具:Numega中的BounChecker,Rational的Purity等
代码覆盖率检查工具:Numega中的TrueCoverge,Rational的PureCoverge等
代码复杂度检测工具:SourceMonitor
6 系统集成的模式与方法
集成
测试是将已分别通过测试的单元按设计要求集成起来再进行测试,以检查这些单元之间的接口是否存在问题。
6.1 集成测试的模式
集成模式是软件基础测试中的策略体现,包括两种
(1)非渐进式测试模式:先分别测试每个模块,再把所有模块按设计要求放在一起结合。
(2)渐增式测试模式:把下一个要测试的模块同已经测试好的模块结合起来进行测试,一个一个扩展。
6.2 自顶向下与自底向上集成方法
6.3 混合策略
6.4 持续集成
评论