1、软件的生命周期
计划阶段—需求分析—设计阶段—编码—测试—运行与维护
2、测试用例主要包括哪些项目
用例编号、测试项目、测试标题、重要级别、预置条件、输入数据、执行步骤、预期结果
3、你在测试过程中发现了一个bug,但是开发经理不认为这是一个bug,你应该怎样解决?
首先将问题提交到缺陷管理系统,进行备案。
接下来,获取判断的依据和标准:
根据需求说明书,设计文档等,确认实际结果是否有与计划不一致的地方,提供是否为缺陷的直接依据;
如果没有文档依据,根据软件的一般特性,用户一般使用习惯或者与设计人员,开发人员,客户代表等讨论,确认是否为缺陷;
合理的陈述向测试经理说明理由,客观严谨;
若仍存在争议,向上级反映。
4、给你一个网站,请问如何测试?
首先查找需求说明,网站设计等相关文档,分析测试需求,制定测试计划,确定测试范围和测试策略,一般包括以下几个部分:功能测试,界面测试,性能测试,安全测试,数据库测试和兼容性测试
设计测试用例:
功能性测试:
1、链接测试:链接是否正确跳转,是否存在空页面和无效页面,是否有不正确的出错信息返回。
2、提交功能的测试。
3、多媒体元素是否可以正确的加载和显示。
4、多语言支持是否能够正确的显示选择的语言等。
界面测试:
1、页面是否风格统一,美观。
2、页面布局是否合理,重点内容和热点内容是否突出。
3、控件是否正常使用。
4、文字检查等。
性能测试:
压力测试,负载测试,强度测试等。
数据库测试:
要具体决定是否需要开展。数据库一般要考虑连接性,对数据的存取操作,数据内容的验证等方面。
安全性测试:
1、基本登录功能的检查。
2、是否存在溢出错误,导致系统崩溃或权限泄露。
3、相关开发语言的安全性问题检查,例如SQL语言的注入等。
4、高级的安全性测试可能需要专业安全公司的帮助。
兼容性测试:
根据需求说明的内容,确定支持的平台组合
1、浏览器的兼容性
2、操作系统的兼容性
3、软件平台的兼容性
4、数据库的兼容性等。
开展测试,并记录缺陷。合理的安排调整测试进度,提前获取测试所需的资源,建立管理体系,定期评审,对测试进行评估和总结,调整测试内容。
5、什么是软件测试?软件测试的目的与原则?
在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能够满足设计要求进行评估的过程。
软件测试目的:
测试是程序的执行过程,目的在于发现错误;一个成功的测试用例在于发现至今未发现的错误;一个成功的测试是发现了至今未发现的错误的测试;确保产品完成了他所承诺或公布的功能,并且用户能够访问到的功能都要明确的书面说明;确保产品满足性能和效率的要求;确保产品是健壮的适应用户环境的。
测试的原则:
测试用例中一个必须部分是对预期输出或结果进行定义;程序员应避免测试自己编写的程序;编写软件的组织不应该测试自己编写的软件;应当彻底检查每个测试的执行结果;检查程序是否做了其应该做的,检查程序是否做了其不应该做的;计划测试工作室不应该假定默许不会发生错误;程序某部分存在更多错误的可能性,与该部分已经发现的错误数量成正比等。
6、对测试最大的兴趣是什么?
测试是一个经验行业,工作越久越能感觉到做好测试的难度和乐趣,具有很大的挑战性,通过自己的努力让软件质量得到提升,获得成就感!
7、测试流程?
首先进行需求分析会议,参加人员有产品,开发和测试,主要是研讨需求的一些主要的功能点,完了之后,就开始排期进行开发,根据主管写出的计划和分配到的任务制定测试用例,写完之后进行用例评审,修改形成最终的用例版本,之后开发人员版本编译完成后,根据测试用例来执行测试,测试过程中,提交bug,跟踪bug,直接关闭,另外还会执行一些探索性测试,测试完成之后编写测试报告。进行需求的集成。
8、测试的职业发展规划是什么?
测试经验越多,测试能力越高,所以职业发展是需要时间积累的,一步步向着高级测试工程师奔去。初步的职业规划是前三年积累测试经验,按如何做好测试工程师的要点去要求自己,不断进步,做好测试任务。
9、如何做好测试?
首先需要一个良好的沟通,只有沟通无碍了,才会有良好的协作,才会有更高的效率;然后技术一定要过关,做测试要有足够的耐心,和一个良好的工作习惯,不懂得就要问,实时与同事沟通好才能做好工作。
10、一台客户端有三百个客户与三百个客户端有三百个客户对服务器施压,有什么区别?
300个用户在一个服务端上,会占用客户机更多的资源,而影响测试的结果,线程之间可能发生干扰,产生异常。
300个用户在一个服务端上,需要更大的带宽。
IP地址的问题,可能需要IP spoof来绕过服务器对于单一IP地址最大连接数的限制。
所有用户在一个客户端上,不必考虑分布式管理的问题;而用户分布在不同的客户端上,需要考虑使用控制器来整体调配不同客户机上的用户。同时,还需要给予相应的权限配置和防火墙设置。
11、目前主要的测试用例设计方法是什么?
白盒测试:逻辑覆盖,循环覆盖,基本路径覆盖
黑盒测试:边界值分析,等价类划分,错误猜测,因果图,状态图,测试大纲,随机测试,场景法。
12、什么是测试用例?什么是测试脚本?二者的关系是什么?
测试用例:为实施测试而向被测试系统提供的输入数据、操作或各种环境设置以及期望结果的一个特定的集合。
测试脚本:为了进行自动化测试而编写的脚本。
测试脚本的编写必须对应相应的测试用例。
13、你对自动化测试的定义是什么?自动化测试能代替手工吗?
自动化的定义就是采用脚本或者工具的驱动下,执行相应的操作。自动化不能代替人工,自动化执行路径有限,不能覆盖所有的测试点,并且自动化的维护成本高。
14、如果你来测试一个需求,什么时候用自动化?什么时候采用人工呢?
对于主流程,冒烟测试,路径比较浅的采用自动化的方式执行,执行路径复杂的case一般不适合用自动化,另外自动化主要是起线上监控的作用,单分支测试并不是很适合做,维护成本比较高。
15、所有bug都要修复吗?
原则上是所有bug都要修复的,有时候可能由于时间关系或者这个bug对用户的影响非常小,而修复的成本比较大,可能就会遗留到下个版本修复或者不修复。
16、简述什么是静态测试、动态测试、黑盒测试,白盒测试,α测试,β测试?
静态测试:不运行程序本身,而寻找程序代码中可能存在的错误或评估程序的过程。
动态测试:实际运行被测程序,输入相应的测试实例,检查运行结果与预期结果的差异,判断执行结果是否符合要求,从而检验程序的正确性、可靠性和有效性,并分析系统运行效率和健壮性等性能。
黑盒测试:一般用来确认软件功能的正确性和可操作性,目的是检测软件的各个功能是否能够得以实现,把被测的程序当作一个黑盒,不考虑其内部结构,在知道该程序输入输出之间的关系或程序功能的情况下,依靠软件规格说明书来确定测试用例和推断测试结果的正确性。
白盒测试:根据软件内部的逻辑结构分析来进行测试,是基于代码的测试,测试人员通过阅读程序代码或者使用开发工具中的单步调试来判断软件的质量,一般白盒测试由项目经理在程序员开发中实现。
α测试:一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试(不能由程序员或者测试员来进行)。
β测试:软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场(不能由程序员或者测试员来完成)。