1.什么是兼容性测试?兼容性测试侧重哪些方面?
兼容性测试是检查软件在不同的软件平台,硬件平台上是否可以正常运行的测试。主要查看软件在不同操作系统、浏览器、数据库中是否运行正常。
主要侧重的是系统所在的环境兼容。
2.单元测试的策略有哪些?
同行评审、逻辑覆盖、循环覆盖、代码走查、代码评审、静态数据流分析、桌前检查等
3.你所熟悉的软件测试类型都有哪些?请试着分别比较这些不同的测试类型的区别与联系(如功能测试、性能测试……)?
功能测试:功能测试又是黑盒测试,测试人员把被测软件当做一个黑盒子,我们不需要知道这个程序是怎么运行的,只需要检查软件能否正常实现用户需求中提出的各种功能。
性能测试:是检查软件是否满足了客户需求中的性能,如CPU利用率、响应时间等
负载测试:在标准的用户环境下运行软件,并且增大对软件的负荷,如:增大用户访问量,延长访问时间、增加并发量。从而查看这个软件所能承受的最大负荷。
压力测试:在标准的用户环境下运行软件,并且不断增大对软件的负荷,查看软件是否会崩溃。
负载测试和压力测试都是性能测试的一种。
4.简述一下缺陷的生命周期?
首先是有测试人员测试开发人员的模块,发现与用户需求不一致或者有错误的地方,在bugzilla上提出一个bug并且状态为new,由项目经理分配这个bug给相应的开发人员,然后由开发人员对这个bug进行修复,修复完成后由测试人员重新进行测试,如果bug已经修改完成的话测试人员将这个bug关闭,如果仍然存在问题的话就将这个bug重新打开,重新有开发人员进行修复直到问题解决。
5.软件的安全性应从哪几个方面去测试?
首先,从程序上来讲,要有用户认证机制,并且对于一些关键性的数据要进行加密。其次,要将数据库进行备份以方便恢复。最后对于系统来讲,要安装杀毒软件并且记录一些安全日志等。
6.一套完整的测试应该由哪些阶段组成?
首先,有项目经理与客户共同确认需求说明书,然后测试人员介入项目,并且详细的理解需求说明书。 然后,在开发人员进行开发的同时,测试人员要编写测试计划和测试用例。之后要由项目经理、开发人员、测试人员一起对测试用例进行评审,来控制测试的覆盖率。 之后在开发人员进行单元测试,以保证程序的最小模块是没有太大问题的。过后测试人员将各个模块集合起来进行集成测试,主要是测试各模块间的接口是否有问题。然后要进行系统测试,将整个程序当成一个完整的系统来测试。查看他在不同的浏览器,数据库,平台上能否正常运行。并且要进行回归测试,以保证开发人员修复一个bug后不会产生其他新的bug。最后要编写性能测试文档,功能测试文档,用户使用手册等文档。
7.单元测试的主要内容?
路径测试、错误数据测试、逻辑覆盖测试、循环覆盖测试、模块接口测试、边界测试。
8.集成测试也叫组装测试或者联合测试,请简述集成测试的主要内容?
集成测试就是将系统中每个最小的模块集合起来进行的测试,主要是查看各模块间的接口是否有问题。有的时候单个模块测试的时候是没有太大的问题的,但是几个模块集合起来测试的时候就会出现问题了。另外有些功能是需要几个子功能组成的,集成测试可以查看由几个子功能组合起来的功能是否正确。还有一点就是,有的时候单个模块中存在的一些小问题是对程序没有影响的,集成测试可以查看这些小问题在大的模块中是否会产生客户无法接受的错误。
9.简述集成测试与系统测试关系?
集成测试:是将各个小的模块集合起来进行测试,主要是测试各模块间的接口是否有问题。
系统测试:是将程序当成一整个系统来进行测试,检查他与其他一些浏览器、操作系统、平台之间是否存在矛盾。
10.如何理解强度测试?
强度测试是在不标准的用户环境下,对软件进行的测试。比如说很差的硬件平台上。
而负载测试是在标准的用户环境下对软件进行的测试。
11.如何理解压力、负载、性能测试测试?
性能测试:是检查软件是否满足了客户需求中的性能,如CPU利用率、响应时间等
负载测试:在标准的用户环境下运行软件,并且增大对软件的负荷,如:增大用户访问量,延长访问时间、增加并发量。从而查看这个软件所能承受的最大负荷。
压力测试:在标准的用户环境下运行软件,并且不断增大对软件的负荷,查看软件是否会崩溃。
负载测试和压力测试都是性能测试的一种。
12.配置和兼容性测试的区别是什么?
配置测试:就是查看软件能否在特定的既用户需求的硬件、软件平台上运行成功。
兼容性测试:是查看软件在不同硬件平台、软件平台上能否运行成功。
13.在配置测试中,如何判断发现的缺陷是普通问题还是特定的配置问题?
在不同的配置中重复出现这个缺陷的步骤,如果在不同的配置中都出现这样的缺陷的话,就说明是普通问题。
而如果在有的配置中出现有的配置中不出现的话就是配置问题了。
14.请试着比较一下黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系?
黑盒测试:就是把软件看成一个无法打开的黑盒子,测试人员不用知道软件内部是如何实现的,只需要查看他的功能是否满足客户需求中所提出的功能。
白盒测试:就是把软件看成一个打开的盒子,测试人员可以知道其内部的代码结构,可以根据代码结构来检查这个软件是否运行正常。
单元测试:是测试软件最小的模块,由开发人员编写一段代码来检测最小的模块是否有问题。
集成测试:是把已经进行单元测试后的模块集合在一起进行测试,主要是测试一些模块间的接口是否有问题。
系统测试:是把软件当成一个完整的系统来进行测试,查看在不同的操作系统,硬件,软件平台上运行是否正常。
验收测试:是测试人员对软件进行测试,查看这个软件能否提交给客户进行测试。
15.您以往是否曾经从事过性能测试工作?如果有,请尽可能的详细描述您以往的性能测试工作的完整过程?
暂时没有从事过性能工作,但是也了解一些,比如说要增大用户访问量,延长访问时间、这样可以检测出来程序的最大负荷量等等。
16.您认为性能测试工作的目的是什么?做好性能测试工作的关键是什么?
性能测试的目的,是在大用户量的长时间访问下,系统可以正常工作。
性能测试的工作关键是模拟出真实的用户环境来进行测试。
17.单元测试、集成测试、系统测试的侧重点是什么?
单元测试侧重点是对模块的测试。
集成测试的侧重点是对模块之间的接口是否存在问题的测试。
系统测试的侧重点是把整个程序当做一个系统来进行测试,查看在不同平台上是否能运行成功。
单元测试到系统测试是从微观到宏观的一个转变。
18.集成测试通常都有那些策略?
首先,进行集成测试就是把已经进行过单元测试的模块集合起来进行测试,来查看模块间的接口是否有问题。
其次,单个模块在测试的时候可能没有存在太大问题,但是将几个模块集合起来测试的话就会存在一些模块间不兼容的问题。
然后,有些功能需要几个子功能才能实现的,集成测试可以查看这个功能是否运行成功。
最后,模块完全测试是不可能的,总会存在一些细小的问题,集成测试可以查看这个细小的问题在大的模块中是否会产生客户无法接受的大问题。
19.需求测试注意事项有哪些?
完整性:需求中对于功能的描述要是完整的清晰的,不能描述到一半就没有了。这样子开发人员在开发的时候可能会引起不必要的误解。
一致性:需求中对于一个功能的描述要一致的,不能A说是这样的,B说是那样的。
无二义性:需求中对于一个功能的描述要清晰的,意思是明确的,不能从A的角度上看是True,而从B的角度上看就是False。
必要性:需求中的功能必须是客户所要求的,不能有一些客户不需要的功能。在需求调研的报告中要可以查询到的。
可执行性:需求中的功能要开发人员可以完成的,不能一味的满足客户的需要最终花费大量的人力物力来完成这个需求。
20.软件验收测试除了alpha ,beta测试以外,还有哪一种?
还有一种正式验收测试