1、常见的测试用例设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。
1)等价类划分
常见的软件测试面试题划分等价类: 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类.
2)边界值分析法
边界值分析方法是对等价类划分方法的补充。测试工作经验告诉我,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种边界情况设计测试用例,可以查出更多的错误.
使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据.
3)错误推测法
基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法.
错误推测方法的基本思想: 列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例. 例如, 在单元测试时曾列出的许多在模块中常见的错误. 以前产品测试中曾经发现的错误等, 这些就是经验的总结。还有, 输入数据和输出数据为0的情况。输入表格为空格或输入表格只有一行. 这些都是容易发生错误的情况。可选择这些情况下的例子作为测试用例.
4)因果图方法
前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系, 相互组合等. 考虑输入条件之间的相互组合,可能会产生一些新的情况. 但要检查输入条件的组合不是一件容易的事情, 即使把所有输入条件划分成等价类,他们之间的组合情况也相当多. 因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例. 这就需要利用因果图(逻辑模型). 因果图方法最终生成的就是判定表. 它适合于检查程序输入条件的各种组合情况.
5)正交表分析法
有时候,可能因为大量的参数的组合而引起测试用例数量上的激增,同时,这些测试用例并没有明显的优先级上的差距,而测试人员又无法完成这么多数量的测试,就可以通过正交表来进行缩减一些用例,从而达到尽量少的用例覆盖尽量大的范围的可能性。
6)场景分析方法
指根据用户场景来模拟用户的操作步骤,这个比较类似因果图,但是可能执行的深度和可行性更好。
2、您认为做好测试用例设计工作的关键是什么?
白盒测试用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果
黑盒法用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。不可能做到完全测试,以最少的用例在合理的时间内发现最多的问题
3、详细的描述一个测试活动完整的过程。
1)项目经理通过和客户的交流,完成需求文档,由开发人员和测试人员共同完成需求文档的评审,评审的内容包括:需求描述不清楚的地方和可能有明显冲突或者无法实现的功能的地方。项目经理通过综合开发人员,测试人员以及客户的意见,完成项目计划。然后sqa进入项目,开始进行统计和跟踪
2)开发人员根据需求文档完成需求分析文档,测试人员进行评审,评审的主要内容包括是否有遗漏或者双方理解不同的地方。测试人员完成测试计划文档,测试计划包括的内容上面有描述。
1、什么是数据库?
答:数据库是按照某种数据模型组织起来的并存放二级存储器中的数据集合。
2、什么是关系型数据库?
答:关系型数据库是建立在关系数据库模型基础上的数据库,借助集合代数等概念和方法处理数据库中的数据。目前主流的关系数据库有:oracle、SQL、DB2、sqlserver、access、sybase等。
3、主键、外键的作用,索引的优点与不足?
答:主键:是表中的唯一标示键。作用:保证实体的完整性;加快数据库的操作速度;增加新的表记录时,数据库会自动检索新记录的主键值,不允许该值与其他表中记录的主键重复;数据库会按主键值的顺序显示记录,如果没有设定主键,则按输入的顺序显示记录。
外键:是主键的从属,表示了两个表之间的联系。作用:使用外键可以避免冗余。
索引的优点:
1、通过创建唯一性的索引,可以保证表中数据的唯一性;
2、加速数据的检索速度;
3、加快表与表之间的连接;
4、在使用分组与排序数据检索时,可以显著检索分组与排序的时间;
5、在查询的过程中使用优化隐藏器,提供系统性能。
缺点:
1、创建索引需要时间,且随着数据量的增加而增加;
2、索引需要占用物理空间;
3、当对表中数据进行修改时,索引也要动态维护,降低了数据的维护速度。
4、测试类型有哪些?
答:黑盒测试、白盒测试、单元测试、集成测试、功能测试、系统测试、负载测试、性能测试、兼容测试、可用性测试、安装|卸载测试、恢复测试、安全测试、比较测试、Alpha测试、Beta测试、端到端测试、健全测试、衰竭测试、接受测试、累积综合测试
5、黑盒测试和白盒测试的定义与区别?测试分哪几个阶段?这几个阶段之间的区别和联系?
答:黑盒测试:不关心软件内部结构,只关心输入输出,主要测试依据是需求文档;
白盒测试:关注软件的内部结构和程序的设计实现,主要测试依据是设计文档;
区别:
白盒测试只考虑测试软件产品,他不保证完整的需求规格是否被满足;
黑盒测试只考虑测试需求规格,它不保证实现的所有部分是否被测试到;
黑盒测试会发现遗漏的缺陷,指出规格的哪些部分没有被完成;
白盒测试会发现代理方面缺陷,指出哪些实现部分是错误的。
测试分:单元测试、集成测试、系统测试、验收测试。
单元测试:一般由开发小组采用白盒方式来测试,主要测试单元是否符合详细设计规格说明书的要求。
集成测试:界于单元测试和系统测试之间,起到”桥梁作用”,一般由测试小组或开发小组采用白盒+黑盒的方式来测试,主要测试模块接口及集成后的整体功能,验证与概要设计规格说明书的符合度。
系统测试:一般由独立测试小组采用黑盒方式来测试,主要测试系统是否符合需求规格说明书的要求。
验收测试:与系统测试非常相似,主要区别是测试人员不同,验收测试由用户代表或最终用户执行。
6、测试用例设计方法有哪些?
黑盒测试的测试用例设计方法有:等价类划分、边界值划分、因果图分析和错误猜测;
白盒测试的测试用例设计方法有:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、多重条件覆盖
8、性能测试的流程?
1.测试需求分析2.测试计划制定与评审3.测试用例设计与开发4.测试执行与监控5.分析测试结果6.编写性能测试报告7.测试经验总结
9、a测试,B测试定义?
a测试是软件开发公司组织内部人员,模拟各类用户,对即将上市的软件产品进行测试,试图发现错误并修复的过程。
β测试是由软件的多个用户在实际使用环境中进行的测试,这些用户返回有关错误信息给开发者。
10、测试用例要素?
用例编号、测试名称、重要级别、前置条件、测试输入、操作步骤、预期结果
11、压力测试与负载测试?
负载测试:通常运行时间比较短,在系统上逐渐加压,直到性能指标达到饱和状态(比如相应时间超出预期要求、系统资源占用率居高不下等),从而验证系统预期的性能目标、相应时间等。
压力测试:长时间运行,逐渐增加超负荷(并发、循环、多用户等),直到系统产生异常以及对异常的处理能力,从而验证系统可靠性、找到系统的瓶颈。 **微软压力测试的经验值为72小时。**
12、什么是回归测试?
回归测试:缺陷修正后,执行符合一定条件的测试用例来确保缺陷的修正没有在软件中引入新的缺陷,这些缺陷可能存在于被测试的软件模块中,也可能在与之相关或不相关的其他软件模块中。当软件发生变更或者使用软件的环境发生变化时,需要进行回归测试
13、简述bug的生命周期?
1, 有效地记录BUG
2, 使用BUG模板
3, 评价BUG优先级和严重性
4, BUG的生命
5, 维护BUG数据库
14、缺陷记录应包含的内容?
缺陷标识、缺陷类型、缺陷严重程度、缺陷产生可能性、缺陷优先级、缺陷状态、缺陷起源、缺陷来源、缺陷原因;
4. 接着问题就可以有一大堆了,这些问题很多都是要看自己的测试经验以及对测试的理解来作答了,如:
(1) 你对SQA的职责和工作活动(如软件度量)的理解:
SQA就是独立于软件开发的项目组,通过对软件开发过程的监控,来保证软件的开发流程按照指定的CMM规程(如果有相应的CMM规程),对于不符合项及时提出建议和改进方案,必要是可以要高层经理汇报以求问题的解决。通过这样的途径来预防缺陷的引入,从而减少后期软件的维护成本。SQA主要的工作活动包括制定SQA工作计划,参与阶段产物的评审,进行过程质量、功能配置及物理配置的审计等;对项目开发过程中产生的数据进行度量等等;
(2) 说说你对软件配置管理的理解:
项目在开发的过程中要用相应的配置管理工具对配置项(包括各个阶段的产物)进行变更控制,配置管理的使用取决于项目规模和复杂性能及风险的水平。软件的规模越大,配置管理就显得越重要。还有在配置管理中,有一个很重要的概念,那就是基线,是在一定阶段各个配置项的组合,一个基线就提供了一个正式的标准,随后的工作便基于此标准,并且只有经过授权后才能变更这个标准。配置管理工具主要有CC,vss/” target=”_blank” >VSS,CVS等,偶只用过CVS,对其它的不熟悉