软件工程基础 - 软件测试

软件测试 - 测试原则与类型:

测试原则与类型

测试的原则:

回归测试指的是修改了旧代码后,重新进行测试以确认没有引入新的错误或导致其他代码产生错误。

尚未发现的错误数量与该程序已发现的错误数成正比指的是:假设一个模块有50个错误,另一个模块有100个错误,那么那个有100个错误的模块尚未发现的错误要比之前的模块更多。

 

测试的类型:

动态测试:有利用到计算机

静态测试:没有利用到计算机,人工检查

桌前检查:程序员写完程序后,自己浏览一遍看有没有问题

代码走查:代码人工的执行一遍

代码审核:程序员之间交叉检查代码

软件测试 - 测试用例设计:

黑盒测试与白盒测试

黑盒测试:只知道输入和输出,不知道内部结构

等价类划分:将程序的输入值分为几种不同的类型。例如:100分算满分,90 ~ 100为优,80 ~ 90为良,60 ~ 80为中,60分以下为差。设计测试用例时使用95,82,71,52作为输入参数,这样每一个不同类型的分数就都覆盖到了。

边界值分析:由于边界比中间值更容易发现问题,所以往往边界值分析可以用来补充等价类划分。例如还是上面那个分数的例子,设计测试用例时使用101,100,90,89,80,79,60,59,0,-1作为输入参数。

错误推测:基于经验和直觉推测程序中可能存在的问题

因果图:通过程序规格说明书的自然语言中找出输入和输出,可以又因推出果,也可以由果推出因。

 

白盒测试:可以看到代码的结构,根据程序的内部结构和逻辑来设计测试用例,对程序的路径和过程进行测试。

逻辑覆盖测试:包含语句覆盖判定覆盖条件覆盖路径覆盖等,它们的覆盖程序从低到高

语句覆盖:测试程序的每一条语句都至少执行一次,是很弱的逻辑覆盖。

判定覆盖:测试程序的每一个判断表达式都至少执行一次 true 或 false的值。例如:

if((age >= 0 && age <= 150) && (name.length > 0 && name.length < 50))
{ 
    // code statement 
}
else
 {
    // code statement 
}

测试用例:

1. 输入age = -1, name = "abc" 就能执行else中的语句

2. 输入age = 0,name = ”abc" 就能执行if中的语句了

条件覆盖:测试程序的每一个判断表达式中的每一个条件都至少执行一次 true 或 false的值。还是使用上面的例子:

测试用例:

1. 输入age = -1 ,name = "" 执行else中的语句

2. 输入age = -1, name = "abc" 执行else中的语句

3. 输入age = 0,name = “” 执行else中的语句

4. 输入age = 0,name = “abc” 执行if中的语句

 

路径覆盖:测试程序所有可能的路径都被覆盖到了,这种情况比较理想化,个人认为很难实现,而且成本应该也蛮高的吧。

软件测试 - 测试阶段:

软件测试的各个阶段

单元测试:也称为模块测试,测试各个方法的输入和输出参数是否正确。

集成测试:按照需求说明将模块的功能组合起来测试。

系统测试:侧重与性能和压力,可用性方面的测试。

确认测试:在集成测试完毕,并修复已发现的问题后。以软件需求说明书中的内容为基础并和用户确认软件是否满足要求。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值