
msql的一个事务的回归测试,可以自测一下,了解下事务。
举个例子:小明和小飞两个人现在手里各有¥100,突然小飞脑袋出问题了说给小明¥50,现在他们手里的钱就是(小明:¥150,小飞:¥50);这样同步就是一个事务的完成,下面是demo
/*
事务 ACID
原子性 Atomic
一致性 Consistency
隔离性 Isolation
持久性 Durability
*/
var mysql = require('mysql')var connection = mysql.createConnection({
host:'localhost',
user:'root',
password:'',
database:'yudi'
})
connection.connect()
//开始一个事务
connection.beginTransaction(function(err){
if(err) throw err
connection.query('update account1 set mny=0 where id=1',function(err,results){
if(err){
connection.rollback(function(){
throw err
})
throw err
}
connection.query('update account2 set mny=200 where id=1',function(err,results){
if(err){
//回滚一个事物
connection.rollback(function(){
throw err
})
throw err
}
//提交一个事物
connection.commit(function(err){
if(err){
connection.rollback(function(){
throw err
})
throw err
}
console.log('success')
})
})
})
})
首先, 我要着重详述下为什么我们没有把MySQL 5.6 直接拿过来作为二次开发的基础,去做一个产品,可以称为 MariaDB 5.6. 这个原因的细节我们直接都没有和众人分享。1. MySQL5.6 的代码库的文件结构已经被改动了。比如单个代码文件已经被分成多个,又或者是某些代码已经被重新归类到了不同的文件内。所以要把MariaDB 去配合现在这个文件结构一定是一个非常消耗时间的过程。而其实我确实不是很明白MySQL为什么要改动现有的文件结构。
2. MairaDB 5.5 已经有大量的代码不同于MySQL 5.5 的版本,而且也有很多的新的特征被整合到MariaDB 5.5 中,而这些特征直到 5.6 版本才出现在MySQL中。所以我们在比较同样功能的MySQL 和MariaDB的版本,同时在完成设计和QA方面的审核后,一个很明显的结论是MariaDB会是一个更好的产品。在大多数情况下,在选择MariaDB的时候,人们会更多的考虑到功能方面的偏好。
3. 所以MySQL的新代码,至少是修改bug的代码以后都没有必要进行相应的测试了。我们试想一下,当有这样一个功能要加入到一段代码中,而这个功能原本就是来源于这段代码的情况下,测试将是一个异常重要的过程来保证这个功能的正常运行。
sjZ52
翻译于 2年前
0人顶
顶 翻译的不错哦!
和上文中提到的第二点和第三点一样,Stewart Smith在Percona写到关于Mysql最后安全补丁的回归测试和QA如何测试使用MariaDB工程,以及保存在Percona服务器用作回归测试的测试用例的重要性。参考:wrote yesterday about the latest security fix in MySQL introducing a regression
MariaDB不仅仅是Mysql的一个替代品。它的主要目的是创新和提高Mysql的技术,Mysql5.6不是一个合适的创新基础平台,所以我们就做了下面的事情:
1.由于我们引入了一些新功能(像 multi-source replication多源复制, Cassandra integration, engine independent statistics独立统计系统等),所以我们需要搞个新版本。通常当你引入新功能时,你需要新建个版本。
2.下个版本称作“MariaDB5.6”是不准确的,因为他不是基于Mysql5.6,取而代之,我们决定版本号调为10.0
3.MariaDB引入Mysql5.6作为一种替代方案的话,需要提升很多功能,我们已经迈出了第一步,正朝着合并或者重建Mysql5.6的功能方向发展。
要知道基本的测试理论,和一些常用的测试工具:如roadrunner,QTP,winrunner.1.白箱测试和黑箱测试是什么?什么是回归测试?回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。自动回归测试将大幅降低系统测试、维护升级等阶段的成本。回归测试包括两部分:函数本身的测试、其他代码的测试。2.单元测试、集成测试、系统测试的侧重点是什么?单元测试是在软件开发过程中要进行的最低级别的测试活动,在单元测试活动中,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。集成测试,也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求,组装成为子系统或系统,进行集成测试。实践表明,一些模块虽然能够单独地工作,但并不能保证连接起来也能正常的工作。程序在某些局部反映不出来的问题,在全局上很可能暴露出来,影响功能的实现。系统测试是将经过测试的子系统装配成一个完整系统来测试。它是检验系统是否确实能提供系统方案说明书中指定功能的有效方法。3.设计用例的方法、依据有那些?白盒测试:逻辑覆盖法,主要包括语句覆盖,判断覆盖,条件覆盖,判断-条件覆盖,路径覆盖黑盒测试:等价划分类,边界值分析,错误推测法。5.集成测试通常都有那些策略?1、在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失;2、各个子功能组合起来,能否达到预期要求的父功能;3、一个模块的功能是否会对另一个模块的功能产生不利的影响;4、全局数据结构是否有问题;5、单个模块的误差积累起来,是否会放大,从而达到不可接受的程度。7.一个缺陷测试报告的组成缺陷的标题,缺陷的基本信息,复现缺陷的 *** 作步骤,缺陷的实际结果描述,期望的正确结果描述,注释文字和截取的缺陷图象。8.基于WEB信息管理系统测试时应考虑的因素有哪些?9.软件本地化测试比功能测试都有哪些方面需要注意?软件本地化测试的目的:软件本地化测试的测试策略:1.本地化软件要在各种本地化 *** 作系统上安装并测试。2.源语言软件安装在另一台相同源语言 *** 作系统上,作为对比测试。3.重点测试因本地化引起的软件的功能和软件界面的错误。4.测试本地化软件的翻译质量。5.手工测试和自动测试相结合。11.需求测试注意事项有哪些?一个良好的需求应当具有一下特点:完整性:每一项需求都必须将所要实现的功能描述清楚,以使开发人员获得设计和实现这些功能所需的所有必要信息。正确性:每一项需求都必须准确地陈述其要开发的功能。一致性:一致性是指与其它软件需求或高层(系统,业务)需求不相矛盾。可行性:每一项需求都必须是在已知系统和环境的权能和限制范围内可以实施的。无二义性:对所有需求说明的读者都只能有一个明确统一的解释,由于自然语言极易导致二义性,所以尽量把每项需求用简洁明了的用户性的语言表达出来。健壮性:需求的说明中是否对可能出现的异常进行了分析,并且对这些异常进行了容错处理。必要性:“必要性”可以理解为每项需求都是用来授权你编写文档的“根源”。要使每项需求都能回溯至某项客户的输入,如UseCase或别的来源。可测试性:每项需求都能通过设计测试用例或其它的验证方法来进行测试。可修改性:每项需求只应在SRS中出现一次。这样更改时易于保持一致性。另外,使用目录表、索引和相互参照列表方法将使软件需求规格说明书更容易修改。可跟踪性:应能在每项软件需求与它的根源和设计元素、源代码、测试用例之间建立起链接链,这种可跟踪性要求每项需求以一种结构化的,粒度好(fine-grained)的方式编写并单独标明,而不是大段大段的叙述。欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)