- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件测试工程师资料整理
如何解决死锁问题
原理:产生死锁的原因主要是
因为系统资源不足。
进程运行推进的顺序不合适。
资源分配不当等。
如果系统资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁。其次,进程运行推进顺序与速度不同,也可能产生死锁。
死锁的条件
互斥条件(Mutual exclusion):资源不能被共享,只能由一个进程使用。
请求与保持条件(Hold and wait):已经得到资源的进程可以再次申请新的资源。
非剥夺条件(No pre-emption):已经分配的资源不能从相应的进程中被强制地剥夺。
循环等待条件(Circular wait):系统中若干进程组成环路,改环路中每个进程都在等待相邻进程正占用的资源。
处理死锁的策略
1.忽略该问题。例如鸵鸟算法,该算法可以应用在极少发生死锁的的情况下。为什么叫鸵鸟算法呢,因为传说中鸵鸟看到危险就把头埋在地底下,可能鸵鸟觉得看不到危险也就没危险了吧。跟掩耳盗铃有点像。
2.检测死锁并且恢复。
3.仔细地对资源进行动态分配,以避免死锁。
4.通过破除死锁四个必要条件之一,来防止死锁产生。
有两个小组对同一个软件进行测试(测试的时间不清楚,软件的规模不清楚),A组测试出50个Bug;B组测试出55个Bug,提交汇总后发现其中有25个是相同的;我的问题是:请你估算一下这个软件还有多少个Bug没被发现?
?
听一个同事说有次面试的时候主考官给他出了这样一道题,正好在很久以前看到过类似的资料,这里给大家共享出来,看看这种算法合理不。
?
先说这个问题的答案是30,怎么算出来的呢?可以按照下面的公式:
可以估计出的软件的缺陷共有:50*55/25=110个
目前已经发现的有:50+55-25=80个
没有发现的bug有:110-80=30个
?
这个公式又是怎么得出来的呢,可以看看下面的推导过程:
?
B---组A和组B都发现的缺陷数
N1---组A发现的缺陷数
N2---组B发现的缺陷数
T---软件所有的缺陷数
?
根据原理:组A发现的缺陷数占总缺陷数的比例等于组A和组B都发现的缺陷数占组B发现的缺陷数的比例,即N1/T=B/N2
?
上面的公式改变形式即:T= N1*N2/B(软件总bug数)
一个程序读入3个整数,a:输出最大值或最小值??A:最大值:(最小值把“”替换为“”,“max”替换为“min”)#include stdio.h#definr max(x,y) (((x) (y)) ? (x) : (y))int main(){int a,b,c,d;scanf(“%d,%d,%d”.a,b,c);d=max(a,max(b,c));printf(“max=%d\n”,d)}
白箱测试和黑箱测试是什么?什么是回归测试?
白盒测试是 测试人员要了解程序结构和处理过程,按照程序内部逻辑测试程序,检查程序中的每条通路是否按照预定要求正确工作.它主要的针对被测程序的源代码,测试着可以完全不考虑程序的功能.
白盒测试流程:源程序--分析程序内部逻辑结构--流程图--制定测试用例--被测程序--执行路径--覆盖情况分析
黑盒测试:主要是根据功能需求来测试程序是否按照预期工作,是要从用户的角度分析.尽量发现代码所表现的外部行为的错误.黑盒测试应该是由测试团队来完成的.根据某个给定的输入,应该能够理解并详细说明程序的预期输出.
黑盒测试流程:功能需求--产生测试用例--被测程序--输出实际结果--与预期结果比较--分析功能是否实现.
回归测试:在对软件进行修正后进行的有选择的重新测试过程.一般要重复已用的测试用例.目的是检验软件在更改后所引起的错误,验证软件在修改后未引起不希望的有害效果.如果想成为一个比较好的软件测试工程师的话,以下这些条件是需要具备的:
1.你要有较好的编写代码的水平,最好是自己亲自独立完成过某软件的开发工作
2.需要对数据库有较为清楚的认识,以及会编写数据库脚本
3.了解至少2种以上的操作系统,并且对问题有较强的分析判断能力
5.集成测试通常都有那些策略?
1、在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失;
2、各个子功能组合起来,能否达到预期要求的父功能;
3、一个模块的功能是否会对另一个模块的功能产生不利的影响;
5、单个模块的误差积累起来,是否会放大,从而达到不可接受的程度。
请问单元测试、集成测试、系统测试的侧重点是什么?
单元测试的重点是系统的模块,包括子程序的正确性验证等。
集成测试的重点是模块间的衔接以及参数的传递等。
系统测试的重点是整个系统的运行以及与其他软件的兼容
文档评论(0)