chapter 1 : The Testing Process笔记

1.3 测试用例

  有3个部分组成 输入,输出,执行顺序

关键点 :测试用例包含 输入,输出,执行顺序
输入
       输入经常被认为是键盘的输入。虽然他是输入的重要来源,但是输入数据可以来自有关联系统的数据输入,接口设备,文件,数据库,系统当前状态,系统所在执行环境
输出
       输出同样有很多种,输出经常被认为是电脑屏幕输出,另外,数据能够发送到内部关联系统和外部设备,写入文件和数据库,系统状态和环境改变

执行顺序
关于测试执行顺序的测试用例两种风格
串联测试用例--- 测试用例相关关联,比如,第一个用例执行专项特性,接着第二个用例继续执行,测试数据库的时候有如下测试用例:
Create a record
Read the record
Update the record
Read the record
Delete the record
Read the deleted record
       这里每个测试用例都基于前一个用例。优势是用例足够小而简单。劣势是一个用例失败,接着用例全部失败。


独立用例---每个用例自成系统,测试用例之前不相互依赖,优势是用例可以乱序执行。劣势是每个测试用例会比较庞大和复杂,更难设计,构建和维护。


Types of Testing测试类型

测试一般分为黑盒测试和白盒测试
黑盒测试是基于需求规格的测试,不同于白盒测试,黑盒测试不需要软件内部路径,结构,实现知识

白盒测试基于软件内部路径,结构,实现的测试,不同于黑盒测试,白盒测试需要知道软件细节的技能

灰盒测试,这种方法要求先了解软件内部知识,之后用获取的知识进行黑盒测试

Testing Levels


Key Point 

The classical testing levels are unit, integration, system, and acceptance.

典型的测试设计用于4个不同测试层级
单元测试--软件最小单元测试,由开发人员进行测试,典型的是一个程序件中。不同程序语言有不同的单元定义,比如在C++和java中一个类是一个单元,在C语言中一个函数是一个单元,在弱结构化语言中,Basic和COBOL也许是整个程序作为一员的工作成果并存储在一个单独的硬盘文个单元


集成测试- 在集成测试中我们聚集单元为一个子系统或者完整系统进行测试。很可能的情况是单个函数的没有问题的但是集成为一个子系统就会有问题。一个经典的例子:
/* main program */
void oops(int);
int main(){
oops(42); /* call the oops function passing an integer */
return 0;
}


/* function oops (in a separate file) */
#include <stdio.h>
void oops(double x) {/* expects a double, not an int! */
printf ("%f\n",x); /* Will print garbage (0 is most likely) */
}
        如果这些单元单独测试,每个都是测试通过的。在这种情况下,只有两个单元集成之后测试。main函数传一个整形参数给oops函数,但是oops函数需要的是double型的参数,这样问题出现了。把集成测试作为集成过程的一部分是至关重要的。
系统测试-一个系统包括所有需要交付给客户的产品包括的软件(也可能包括硬件,用户手册,培训材料等),系统测试聚焦于最高层级集成测试的缺陷发现。典型的系统测试包括很多测试类型:功能,可用性,安全性,国际化和本地化,可靠性,有效性,容量,性能,备份和倒换,可移植性,等等
验收测试-验收测试定义为所有上述测试已经完成,交付给客户的软件测试。从客户的角度,希望尽可能详尽的进行验收测试(类似于系统测试);从系统提供商的角度看,最好进行最小代价的测试因为涉及交易。验收测试前几个问题需要明确:谁定义验收测试的层级,谁来创建测试脚本?谁来执行测试?测试用例通过的标准是什么?什么时候和怎么获得付费?
       并非所有系统必须使用这些测试层级,这些测试层级假设遵循软件开发生命周期(单元-》集成-》子系统-》系统)过程。在web系统开发中,往往是概念-》代码-》产品在数个小时就完成,这种情况下,不适合单元-》集成-》子系统-》系统的过程。
        很多Web测试人员采用如下策略:
         代码质量
         功能
         可用性
         性能
         安全性
pratice

哪四个输入能够发现问题?怎么选择到这四个?对你的启发?


     int blech (int j) {
           j = j -1;           // should be j = j + 1
           j = j / 30000;
           return j;
          }


Input (j) Expected Result Actual Result
2999910
3000010
-29999-10
-30000-10

考虑输出值的边界。

了解程序内部逻辑,做灰盒测试。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值