软件测试原则

软件测试原则

测试原则

测试证明软件存在缺陷

测试的本质是证明软件存在缺陷,而不是软件没有缺陷。

人无完人,只要是人写的代码,肯定不能保证百分之百正确,除非特别简单的功能。即便如此,也会存在各种环境问题,网络问题等,更何况现在软件原来越复杂,缺陷更是难以避免。

不可能执行穷尽测试

举个很简单的例子来说明,比如测试一个计算器功能里的加法,你可以尝试1+1,1+2 ,1+3 ...你能把所有数组相加的情况都测试吗,所以穷尽测试时不可能的,更别提是实际情况中,项目进度还有明确时间节点。截止日期。

测试应尽早启动,尽早介入

这条很重要,但是对测试的要求也会更高。

先来讲为什么要尽早启动,举例说明,软件工程和盖房子一样,先也得设计,打好地基,试想假如设计阶段,或者地基没打好,你后面楼房盖得越高,推到重来,或者回头再去修改所耗费的成本也就越大,所以,测试要尽早介入。

系统测试阶段

什么时候介入呢,对着需求文档设计测试用例的时候,就开始测试了。软件此时还在设计阶段,测试站在质量和安全性角度,应该多多思考功能本身的可测试性,可靠性,完善用例的同时也可注意下 整个业务流程是否能形成完整的闭环。是否存在明显的需求错误。

集成测试阶段

还有一个场景,比如开发app时候,往往后端工程师 服务器先开发完成,此时无论ios还是android工程师都在开发中,等待更多接口完成,等待接口文档。测试工程师此时便可以对着接口文档,先进行服务器端的接口测试了。这样联调之前就可以先找到部分服务器缺陷,减少了前后端开发调试和纠错时间。

单元测试阶段

这个对测试来说有一定难度,多半还是开发人员自己完成,也就是每一个方法,类完成之后。自己对软件的最小组成单元编写测试代码进行验证。这就好像你盖楼房,组成楼房的每一层阶梯,每一块砖头质量先保证是好的。

缺陷存在群集现象(二八原则)

这个也是经验之谈了,一般认为,百分之80的缺陷集中出现在百分之20的核心功能区域。一旦你在某个功能模块找到缺陷,相关附近功能多半也会存在问题。实战中如何使用呢,写缺陷报告的时候,做横向对比,比对类似功能,相近模块,版本,机型。指定回归测试策略的时候,也可以重点测试。

杀虫剂悖论

杀虫剂悖论,很简单,意思就是相同的功能,相同的用例,多次执行,后几轮就慢慢找不到缺陷了。仿佛软件对你的测试用例产生了抗药性。所以,用例在每次执行完之后应该及时进行更新和维护,升级你的装备。

不同测试活动依赖不同的测试背景

举个例子来说明,你在金融公司测试,安全性就是第一位。电子商务测试,功能性则更加重要。

不存在缺陷的谬论

假如系统无法使用,或者系统不能完成客户的需求和期望,发现和修改缺陷是没有任何意义的。

转载于:https://www.cnblogs.com/znan/p/8651625.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/414406.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unable to add window token null is not valid is your activity running

莫名其妙的报错 错误原因是不在主线程调用了弹窗方法 解决方法很简单 创建Handler static final int REFRESH_COMPLETE 0X1112; private Handler mHandler new Handler() {public void handleMessage(android.os.Message msg) {switch (msg.what) {case REFRESH_COMPLETE:Ob…

01-Flutter移动电商实战-项目学习记录

01-Flutter移动电商实战-项目学习记录 一直想系统性的学习一下 Flutter,正好看到该课程《Flutter移动电商实战》的百度云资源,共 69 课时,由于怕自己坚持不下去(经常学着学着就不学了),故采用博客监督以记之…

matplotlib 的一些知识

import matplotlib.pyplot as plt plt做图有两种方式,一种是面向对象编程方式的,一种是直接利用plt的结构化的快速绘图编程方式。所以命令不能用错地方。figplt.figure() 返回的fig为Figure类对象 ax1fig.add_subplot(111) 返回的ax1为Axes类对象 这个…

02-Flutter移动电商实战-建立项目和编写入口文件

02-Flutter移动电商实战-建立项目和编写入口文件 环境搭建请参考之前写的一篇文章:Flutter_初体验_创建第一个应用 1、创建项目 采用AndroidStudio构建本项目,FIle>New>New Flutter Project… 创建后的项目如下图所示: 我们着重需要…

Android 倒计时——Timer和CountDownTimer的使用,实现启动,暂停,继续,重复,重设时长以及启动service后台倒计时

实现效果 单个倒计时功能 列表倒计时功能 自定义倒计时类 public class CountDownTimerSupport implements ITimerSupport {private Timer mTimer;private Handler mHandler;/*** 倒计时时…

cin和scanf读入速度

cin慢是有原因的,其实默认的时候,cin与stdin总是保持同步的,也就是说这两种方法可以混用,而不必担心文件指针混乱,同时cout和stdout也一样,两者混用不会输出顺序错乱。正因为这个兼容性的特性,导…

03-Flutter移动电商实战-底部导航栏制作

03-Flutter移动电商实战-底部导航栏制作 1、cupertino_IOS风格介绍 在Flutter里是有两种内置风格的: material风格: Material Design 是由 Google 推出的全新设计语言,这种设计语言是为手机、平板电脑、台式机和其他平台提供一致&#xff…

plugin since you are using Gradle version 4.6 or above

Android studio项目在新的开发环境下打开时报错如下 解决方法如下: 1、目录选到Android状态 2、进入gradle.properties文件。 3、org.gradle.configureondemandfalse——————默认是true。改完false即可

[转]调试 smallcorgi/Faster-RCNN_TF 的demo过程遇到的问题

最近在调试faster R-CNN时,遇到了各种各样的问题。使用的算法库为https://github.com/smallcorgi/Faster-RCNN_TF 注:本文使用的是通过virtualenv 创建python虚拟环境进行调试,python 版本2.7,tensorflow 版本为tensorflow1.4-gpu…

04-Flutter移动电商实战-打通底部导航栏

04-Flutter移动电商实战-打通底部导航栏 关于界面切换以及底栏的实现可参考之前写的一篇文章:Flutter实 ViewPager、bottomNavigationBar界面切换 1、新建4个基本dart文件 在pages目录下,我们新建下面四个dart文件。 home_page.dart :商城首页UI页面…

【机器学习】--模型评估指标之混淆矩阵,ROC曲线和AUC面积

一、前述 怎么样对训练出来的模型进行评估是有一定指标的,本文就相关指标做一个总结。 二、具体 1、混淆矩阵 混淆矩阵如图: 第一个参数true,false是指预测的正确性。 第二个参数true,postitives是指预测的结果。 相关公式: 检测正…

05-Flutter移动电商实战-dio基础_引入和简单的Get请求

05-Flutter移动电商实战-dio基础_引入和简单的Get请求 这篇开始我们学习Dart第三方Http请求库dio,这是国人开源的一个项目,也是国内用的最广泛的Dart Http请求库。 1、dio介绍和引入 dio是一个强大的Dart Http请求库,支持Restful API、 Fo…

16进制转10进制,以及二进制负数的补码

String sixteen "D4"; int ten Integer.parseInt(sixteen, 16);byte value (byte) ten;//解决二进制补码String ss String.valueOf(value); int wd Integer.parseInt(ss);

Jmeter——for循环控制器和if逻辑控制器

有时我们不仅仅需要用例按照简单的顺序跑,需要内嵌循环,或者条件分支,让某些用例在满足一定条件时才执行。 1、for循环控制器 此处记录两种应用的场景,一种是直接定义好要循环的变量,循环次数是固定的,写死…

06-Flutter移动电商实战-dio基础_Get_Post请求和动态组件协作

06-Flutter移动电商实战-dio基础_Get_Post请求和动态组件协作 上篇文章中,我们只看到了 dio 的使用方式,但并未跟应用关联起来,所以这一篇将 dio 网络请求与应用界面结合起来,当然这也是为以后的实战作基础准备,基础打…