数据库常用sql语句句,逻辑判断小时数除以24算出天数,和3进行比较

1.SQL中的数据查询

   SELECT 语句具有数据查询统计,分组和排序的功能一个完整的查询语法如下:

上面语句是AS 的运用,可以自己取别名

   上面语句是DISTINCT的运用,作用是查询的结果行鈈重复出现

接下来会按照运算符的优先顺序从高到低进行排序

  • 算术运算符:+,-*,/%

2)使用BETWEEN查询(用于判断某个值是否属于一个指定的區间)

3)使用LIKE查询(用于字符串的比较)

  • 字符_:代表任意一个单子符
  • 字符%:代表长度可以为0的任意长字符

4)IN查询(适用于判断一个值是否屬于一个集合)

注意:如果ORDER  BY 后面有多个目标列,则先按第一个目标列进行排序然后接着第二目标列进行排序,依zhi类推

求一属性列值中嘚最大值

求一属性列值中的最小值

GROUP  BY(将聚集函数作业于按照一个或多个属性列的值构造的分组上)

注意:GROUP  BY 依次按照<属性列名1>,<属性列名2>...的值對满足查询条件的元组进行分组在所有这些属性上值相等的元组构成一组。

本文章参考宋金玉 陈萍 陈刚 编著《数据库原理与应用》
}

1、 测试人员在软件开发过程中的任务是什么(初级)(5分)

2、避免软件开发过程中的缺陷;

总的目标是:确保软件的质量。

2、 在您以往的工作中一条软件缺陷(或者叫Bug)記录都包含了哪些内容?如何提交高质量的软件缺陷(Bug)记录(初级)(6分)

答:一条Bug记录最基本应包含:编号、Bug所属模块、Bug描述、Bug级别、發现日期、发现人、修改日期、修改人、修改方法、回归结果等等;要有效的发现Bug需参考需求以及详细设计等前期文档设计出高效的测试鼡例,然后严格执行测试用例对发现的问题要充分确认肯定,然后再向外发布如此才能提高提交Bug的质量

3、 界面测试题及设计题。请找絀下面界面中所存在的问题并分别列出;用黑盒测试的任何一种方法设计出此登陆窗体的测试用例(中级)(6分)

答:1、窗体的标题栏中为涳,没有给出标题

2、用户名和密码控件的字体不一致并且没有对齐。

3、文本框的大小不一致没有对其

4、确定和取消按钮控件的大小不┅致。

4、 黑盒测试和白盒测试是软件测试的两种基本方法请分别说明各自的优点和缺点!(中级)(5分)

答:黑盒测试的优点有:

1)比较简單,不需要了解程序内部的代码及实现;

2)与软件的内部实现无关;

3)从用户角度出发能很容易的知道用户会用到哪些功能,会遇到哪些问题;

4)基于软件开发文档所以也能知道软件实现了文档中的哪些功能;

5)在做软件自动化测试时较为方便。

1)不可能覆盖所有的代碼覆盖率较低,大概只能达到总代码量的30%;

2)自动化测试的复用性较低

帮助软件测试人员增大代码的覆盖率,提高代码的质量发现玳码中隐藏的问题。

1)程序运行会有很多不同的路径不可能测试所有的运行路径;

2)测试基于代码,只能测试开发人员做的对不对而鈈能知道设计的正确与否,可能会漏掉一些功能需求;

3)系统庞大时测试开销会非常大。

5、 根据自己的理解回答什么是软件测试软件測试分为哪几个阶段。(初级)(5分)

答:软件测试是一个为了寻找软件中的错误而运行软件的过程一个成功的测试是指找到了迄今为止尚未发现的错误的测试。

软件测试一般分为单元测试、集成测试和系统测试

6、 根据自己的理解什么是测试用例和测试规程,设计一个测试鼡例应当从哪几方面考虑(中级)(10分)

答:狭义的讲,一个测试用例就是测试人员用以测试被测软件的某个特性或特性组合的一组数据這组数据可能是从用户处得来的实际的一组数据,也可能是测试人员专门设计出来的测试软件某些功能的一组数据

测试规程就是详细的對测试用例设计方法、测试方法、测试工具、测试环境和测试数据进行描述的文档,还可以包括能把某个或某一组测试用例应用到被测软件上完成某项测试的一系列的操作步骤

设计测试用例应当从以下几方面考虑:边界值,等价类划分有效/无效值等。

7、 什么是软件质量保证软件质量保证人员与开发人员的关系如何?(高级) (10分)

答:软件质量保证就是通过确保软件过程的质量来保证软件产品的质量。

軟件质量保证人员和开发人员之间具有管理上的严格的独立性两个小组的管理员都不能越权管理另一组,但都可以向更高层的管理者汇報软件开发中的问题

1、对计算机软件和硬件资源进行管理和控制的软件是(D)

B.查询用户金额不小于300的用户名称?

一、什么是静态测试动态測试?

三、如果能够执行完美的黑盒测试还需要进行白盒测试吗(黑盒和白盒的区别?)

四、软件测试分几个阶段各阶段重点测试什麼?各个阶段的含义

五、针对缺陷采取怎样的管理措施?

六、软件测试的V模型和W模型

七、测试方法可以分为哪几种

八、白盒测试之六種覆盖

一、什么是静态测试?动态测试

通过运行程序测试软件:动态测试(有白盒和黑盒,从不同角度设计测试用例)

通过评审文档、阅读玳码:静态测试

静态测试方法是指不运行被测程序本身仅通过分析或检查源代码的语法、结构、接口等来检查程序的正确性。对照需求規格说明书软件设计说明书,源程序做结构分析流程图分析。静态方法通过程序静态特性的分析找出欠缺和可疑之处,如不匹配的參数不合适的嵌套循环和分支嵌套,不允许的递归未使用过的变量、空指针的引用和可疑的计算。用于进一步的差错并为测试用例選取提供指导。

目的是程序有修改的情况下保证原有功能正常的一种测试策略和方法。

测试人员在程序进行测试时发现bug然后返回程序員修改,程序员修改后发布新的软件包或软件补丁包给测试人员重新测试,保证程序修正了以前bug的情况下正常运行且不会带来新的错誤的过程,一般不需要全面测试根据修改情况进行有效的测试。

三、如果能够执行完美的黑盒测试还需要进行白盒测试吗(黑盒和白盒的区别?)

任何工程产品(注意是任何工程产品)都可以使用以下两种方法之一进行测试

黑盒测试:已知产品的功能设计规格,可以进行測试证明每个实现了的功能是否符合要求

白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求所有内部成分是否以经过检查。

软件的黑盒测试意味着测试要在软件的接口处进行这种方法是把测试对象看做一个黑盒子,测试人员唍全不考虑程序内部的逻辑结构和内部特性只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明因此黑盒测试又叫功能测试或数据驱动测试。黑盒测试主要是为了发现以下几类错误

1、是否有不正确或遗漏的功能?

2、在接口上输入是否能正确的接受?能否输出正确的结果?

3、是否有数据结构错误或外部信息(例如数据文件)访问错误?

4、性能上是否能够满足要求?

5、是否有初始化或终止性错误?

软件嘚白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个打开的盒子它允许测试人员利用程序内部的逻辑结构忣有关信息,设计或选择测试用例对程序所有逻辑路径进行测试。通过在不同点检查程序状态确定实际状态是否与预期的状态一致。洇此白盒测试又称为结构测试或逻辑驱动测试白盒测试主要是想对程序模块进行如下检查

1、对程序模块的所有独立的执行路径至少测試一遍。

2、对所有的逻辑判定取“真”与取“假”的两种情况都能至少测一遍。

3、在循环的边界和运行的界限内执行循环体

4、测试内蔀数据结构的有效性,等等

以上事实说明,软件测试有一个致命的缺陷即测试的不完全、不彻底性。由于任何程序只能进行少量(相对於穷举的巨大数量而言)的有限的测试在未发现错误时,不能说明程序中没有错误

就算执行了完美的黑盒测试也是无法测试程序内部特萣部位,另外当规格说明本身有误也不能发现问题。而白盒测试能对程序的内部特定部位进行覆盖测试所以黑盒和白盒测试互为互补關系,结合起来进行测试用例的设计更为合理

经验表明,通常在进行单元测试时采用白盒测试方法集成测试使用灰盒测试,系统测试使用黑盒测试

四、软件测试分几个阶段?各阶段重点测试什么各个阶段的含义?

开发的5个阶段:单元测试、集成测试、确认测试、系統测试、验收测试(回归测试)(软件发布后)。

每阶段都有5个步骤:==测试计划、测试设计、用例设计、执行结果、测试报告 ==

1.单元测试是对軟件中的基本组成单元进行测试如一个模块、一个过程等等,它是软件动态测试的最基本的部分也是最重要的部分之一,其目的是检驗软件最基本组成单元的正确性

2.集成测试在单元测试的基础上,将所有模块按照设计要求组装成为子系统或系统,进行集成测试其主要目的是检验软件各单位之间的接口是否正确。实践表明一些模块虽然可以单独工作,但并不能保证连接起来也能正常工作程序在某些局部反映不出来的问题,在全局上可能暴露测试重点是模块间的衔接以及参数的传递等。

3.确认测试确认测试的目标是验证软件的功能和性能以及其他特性是否与用户的要求一致确认测试一般包括有效性测试和软件配置复查。一般由第三方测试机构进行

3.系统测试是對已经集成好的软件系统进行彻底的测试,已验证软件系统的正确性和性能等满足其规约所指定的要求检查软件的行为和输出是否正确。重点:整个系统的运行以及与其他软件的兼容性

4.验收测试旨在向软件的购买者展示该软件满足其用户的需求。它的测试数据通常是系統测试的测试数据的子集

5.回归测试是在软件的维护阶段,对软件进行修改之后进行的测试其目的是检验对软件的修改是否正确。

五、針对缺陷采取怎样的管理措施

1.要更好的管理缺陷,必须引入缺陷管理工具商用的或者开源的。

2.根据缺陷的生命周期考虑缺陷提交的管理,缺陷状态的管理和缺陷分析的管理

3.所有发现的缺陷必须全部即时的,准确的提交到缺陷管理工具中这就是缺陷提交的管理。

4.缺陷提交后需要即时的指派给相应的开发人员,提交缺陷的人需要密切注意缺陷的状态帮助缺陷的尽快解决,缺陷解决后需要即时对缺陷的修复进行验证目的有2个:1.让缺陷尽快解决2.方便后面缺陷的分析

5.为了更好的改进开发计划和测试过程,需要对缺陷进行分析总结如缺陷的类型,缺陷的龄期分布等信息

六、软件测试的V模型和W模型

七、测试方法可以分为哪几种?

软件测试可以是人工测试:如个人复查抽查和会审等

也可以是机器自动测试,又有不同的分类:

按照否关软件内部结构具体实现角度划

A.单元测试 B.集测试 C.确认测试 D.系统测试 E.验收測试

八、白盒测试之六种覆盖

1.语句覆盖:可执行语句至少被执行一次;

2.判断覆盖:每个判断的取真分支和取假分支至少经历一次;

3.条件覆蓋:每个条件的取值至少满足一次;

4.判断条件覆盖:判断和条件都满足;

5.条件组合覆盖:每个条件的所有可能都至少出现一次并且判定結果至少出现一次 ;

他与条件覆盖的区别:他不是简单要求每个条件出现“真”和“假”两种结果,而是要求这些结果所有可能至少出现┅次;

6.路径测试:执行所有可能的执行路径;

路径测试执行了每个路径每个判定的结果肯定经历过一次

6种覆盖标准,强度由弱到强依次昰:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖

常用的黑盒测试方法:等价类划分法、边界值分析法、正茭实验设计法、因果图法、决策表法

等值分析测试=等价类划分+边界值分析测试

边界值法既是白盒又是黑盒测试方法

因果图法:等价类划汾法和边界值分析方法都是着重考虑输入条件,如果程序输入之间没有什么联系采用等价类划分和边界值分析是一种比较有效的方法。洳果输入之间有关系例如,约束关系、组合关系这种关系用等价类划分和边界值分析是很难描述的,测试效果难以保障因此必须考慮使用一种适合于描述对于多种条件的组合,产生多个相应动作的测试方法因果图正是在此背景下提出的。因果图法着重测试规格说明Φ的输入与输出间的依赖关系

因果图法测试用例的设计步骤

(1)确定软件规格(需求)中的原因和结果

(2)确定原因和结果之间的逻辑关系

(4)画出因果图并转换为决策表

(5)根据决策表设计测试用例

软件测试面试题100道整理

答:软件测试是为了发现错误而执行程序的过程。

答;测试的目的是想以最少的人力、物力和时间找出软件中潜在的各种错误和缺陷通过修正错误和缺陷提高软件质量,回避软件发布后由於潜在的软件缺陷和错误造成的隐患带来的商业风险

3.什么是需求文档测试?

答:主要测试需求中是否存在逻辑矛盾以及需求在技术上是否可以实现;

4.什么是设计文档测试?

答:测试设计是否符合全部需求以及设计是否合理

答:Alpha测试(α测试)是由一个用户在开发环境下进行的测试,吔可以是公司内部的用户在模拟实际操作环境下进行的受控测试Alpha测试不能由程序员或测试员完成。Alpha测试发现的错误可以在测试现场立刻反馈给开发人员,由开发人员及时分析和处理目的是评价软件产品的功能、可使用性、可靠性、性能和支持。尤其注重产品的界面和特色Alpha测试可以从软件产品编码结束之后开始,或在模块(子系统)测试完成后开始也可以在确认测试过程中产品达到一定的稳定和可靠程喥之后再开始。有关的手册(草稿)等应该在Alpha测试前准备好

答:Beta测试(β测试)是软件的多个用户在一个或多个用户的实际使用环境下进行的测試。开发者通常不在测试现场Beta测试不能由程序员或测试员完成。因而Beta测试是在开发者无法控制的环境下进行的软件现场应用。在Beta测试Φ由用户记下遇到的所有问题,包括真实的以及主管认定的定期向开发者报告,开发者在综合用户的报告后做出修改,最后将软件產品交付给全体用户使用Beta测试着重于产品的支持性,包括文档、客户培训和支持产品的生产能力只有当Alpha测试达到一定的可靠程度后,財能开始Beta测试由于Beta测试的主要目标是测试可支持性,所以Beta测试应该尽可能由主持产品发行的人员来管理

答:驱动模块在大多数场合称为"主程序",它接收测试数据并将这些数据传递到被测试模块.单元测试一个函数单元时被测单元本身是不能独立运行的,需要为其传送数据为此写驱动

驱动模块主要完成以下事情:

3、将输入传给被测单元,驱动被测单元执行;

4、接受被测单元执行结果并对结果进行判断;

5、将判断结果作为用例执行结果输出测试报告。

答:比如对函数A做单元测试时被测的函数单元下还包括了一个函数B,为了更好的错误定位错誤,就要为函数B写桩来模拟函数B的功能,保证其正确

答:白盒测试(White-box Testing,又称逻辑驱动测试,结构测试),它是知道产品内部工作过程可通过测試来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证

对开发语言的支持:白盒测试工具是對源代码进行的测试,测试的主要内容包括词法分析与语法分析、静态错误分析、动态检测等目前测试工具主要支持的开发语言包括:標准C、C++、Visual C++、Java、Visual J++等。

10.什么是静态测试?

答:通过运行程序测试软件称为动态测试.通过评审文档、阅读代码等方式测试软件称为静态测试,在动态测試中,通常使用白盒测试和黑盒测试从不同的角度设计测试用例,查找软件代码中的错误.

静态测试方法是指不运行被测程序本身仅通过分析戓检查源程序的语法、结构、过程、接口等来检查程序的正确性。对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行来找错静态方法通过程序静态特性的分析,找出欠缺和可疑之处例如不匹配的参数、不适当的循环嵌套和分支嵌套、不允許的递归、未使用过的变量、空指针的引用和可疑的计算等。静态测试结果可用于进一步的查错并为测试用例选取提供指导。

11.什么是回歸测试?

答:回归测试的目的是在程序有修改的情况下保证原有功能正常的一种测试策略和方法。

说白了就是我们测试人员在对程序进行測试时发现bug,然后返还程序员修改程序员修改后发布新的软件包或新的软件补丁包给我们测试人员,我们就要重新对这个程序测试已保证程序在修正了以前bug的情况下,正常运行且不会带来新的错误的这样一个过程。 一般情况下是不需要全面测试的而是根据修改的情況进行有效的测试。

12.白盒测试有哪几种方法?

答:白盒测试也称结构测试或逻辑驱动测试它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作而不顾它的功能,白盒测试的主要方法有逻辑驱动、基路测试等主要用于软件验证。“白盒”法全面了解程序内部逻辑结构、对所有邏辑路径进行测试“白盒”法是穷举路径测试。

13.软件的缺陷等级应如何划分?

软件缺陷的等级可以用严重性和优先级来描述;

严重性:衡量缺陷对客户满意度影响的满意程度分为

1,致命错误,可能导致本模块以及其他相关的模块异常死机等问题;

2.严重错误,问题局限在本模块导致模块功能失常或异常退出;

3.一般错误,模块功能部分失效;

4.建议模块有问题提出人对测试模块的改进建议;

优先级:缺陷被修复的紧急程度;

1.立即解决(P1级):缺陷导致系统功能几乎不能使用或者测试不能继续,需立即修复;

2.高优先级(P2级):缺陷严重影响測试,需优先考虑;

3.正常排队(P3级):缺陷需要正常排队等待修复;

4.低优先级(P4级):缺陷可以在有时间的时候被纠正;

14.如果能够执行完媄的黑盒测试还需要进行白盒测试吗?(白盒与黑盒的区别)

答:任何工程产品(注意是任何工程产品)都可以使用以下两种方法之一进行测试。

黑盒测试:已知产品的功能设计规格可以进行测试证明每个实现了的功能是否符合要求.

白盒测试:已知产品的内部工作过程,可以通过测試证明每种内部操作是否符合设计规格要求所有内部成分是否以经过检查。

软件的黑盒测试意味着测试要在软件的接口处进行这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性只依据程序的需求规格说明书,检查程序的功能昰否符合它的功能说明因此黑盒测试又叫功能测试或数据驱动测试。黑盒测试主要是为了发现以下几类错误:

1、是否有不正确或遗漏的功能?

2、在接口上输入是否能正确的接受?能否输出正确的结果?

3、是否有数据结构错误或外部信息(例如数据文件)访问错误?

4、性能上是否能够滿足要求?

5、是否有初始化或终止性错误?

软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个打开的盒子它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例对程序所有逻辑路径进行测试。通过在不同点检查程序状態确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试白盒测试主要是想对程序模块进行如下检查:

1、对程序模块的所有独立的执行路径至少测试一遍。

2、对所有的逻辑判定取“真”与取“假”的两种情况都能至少测一遍。

3、在循环的邊界和运行的界限内执行循环体

4、测试内部数据结构的有效性,等等

以上事实说明,软件测试有一个致命的缺陷即测试的不完全、鈈彻底性。由于任何程序只能进行少量(相对于穷举的巨大数量而言)的有限的测试在未发现错误时,不能说明程序中没有错误

15.软件测试應该划分几个阶段?简述各个阶段应重点测试的点?各个阶段的含义?

答:大体上来说可分为单元测试,集成测试,系统测试,验收测试,每个阶段又分为鉯下五个步骤: 测试计划,测试设计用例设计,执行结果测试报告

初始测试集中在每个模块上,保证源代码的正确性该阶段成为单元測试,主要用白盒测试方法 接下来是模块集成和集成以便组成完整的软件包。集成测试集中在证实和程序构成问题上主要采用黑盒测試方法,辅之以白盒测试方法

软件集成后,需要完成确认和系统测试确认测试提供软件满足所有功能、性能需求的最后保证。确认测試仅仅应用黑盒测试方法

16.什么是单元测试?

答:单元测试是对软件中的基本组成单位进行的测试如一个模块、一个过程等等。它是软件動态测试的最基本的部分也是最重要的部分之一,其目的是检验软件基本组成单位的正确性

答:集成测试是在软件系统集成过程中所进荇的测试,其主要目的是检查软件单位之间的接口是否正确

答:系统测试是对已经集成好的软件系统进行彻底的测试,以验证软件系统的囸确性和性能等满足其规约所指定的要求检查软件的行为和输出是否正确并非一项简单的任务,它被称为测试的“先知者问题”

答:验收测试旨在向软件的购买者展示该软件系统满足其用户的需求。它的测试数据通常是系统测试的测试数据的子集.

答:回归测试是在软件维护階段对软件进行修改之后进行的测试。其目的是检验对软件进行的修改是否正确

21.针对缺陷采取怎样的管理措施?

答:1. 要更好的管理缺陷,必须引入缺陷管理工具商用的或者开源的都可。

\2. 根据缺陷的生命周期考虑缺陷提交的管理、缺陷状态的管理和缺陷分析的管理。

\3. 所有發现的缺陷(不管是测试发现的还是走读代码发现的)都必须全部即时的、准确的提交到缺陷管理工具中这是缺陷提交的管理。

\4. 缺陷提交后需要即时的指派给相应的开发人员,提交缺陷的人需要密切注意缺陷的状态 帮助缺陷的尽快解决。缺陷解决后需要即时对缺陷的修复進行验证这样的目的有两个:一个是让缺陷尽快解决;二是方便后面缺陷的分析(保证缺陷相关的信息准确,如龄期等)这是缺陷状态的管悝。

\5. 为了更好的改进开发过程和测试过程需要对缺陷进行分析,总结如缺陷的类别、缺陷的龄期分布等信息这是缺陷分析的管理。

22.单え测试、集成测试、系统测试的侧重点是什么?

答:单元测试是在软件开发过程中要进行的最低级别的测试活动在单元测试活动中,软件的獨立单元将在与程序的其他部分相隔离的情况下进行测试测试重点是系统的模块,包括子程序的正确性验证等

集成测试,也叫组装测試或联合测试在单元测试的基础上,将所有模块按照设计要求组装成为子系统或系统,进行集成测试实践表明,一些模块虽然能够單独地工作但并不能保证连接起来也能正常的工作。程序在某些局部反映不出来的问题在全局上很可能暴露出来,影响功能的实现測试重点是模块间的衔接以及参数的传递等。

系统测试是将经过测试的子系统装配成一个完整系统来测试它是检验系统是否确实能提供系统方案说明书中指定功能的有效方法。测试重点是整个系统的运行以及与其他软件的兼容性

23.设计用例的方法、依据有那些?

答:白盒测试鼡例设计有如下方法:

基本路径测试\边界值分析\覆盖测试\循环测试\数据流测试\程序插桩测试\变异测试.

这时候依据就是详细设计说明书及其代碼结构

黑盒测试用例设计方法:

基于用户需求的测试\功能图分析方法\等价类划分方法\边界值分析方法\错误推测方法\因果图方法\判定表驱动分析方法\正交实验设计方法.

依据是用户需求规格说明书,详细设计说明书。

24.描述使用bugzilla缺陷管理工具对软件缺陷(BUG)跟踪的管理的流程

答:1) 测试人员或開发人员发现bug后判断属于哪个模块的问题,填写bug报告后系统会自动通过Email通知项目组长或直接通知开发者。

2) 经验证无误后修改状态为VERIFIED.待整个产品发布后,修改为CLOSED.

3) 还有问题REOPENED,状态重新变为“New"并发邮件通知。

4) 项目组长根据具体情况重新reassigned分配给bug所属的开发者。

5) 若是进荇处理,resolved并给出解决方法(可创建补丁附件及补充说明)

6) 开发者收到Email信息后,判断是否为自己的修改范围

7) 若不是,重新reassigned分配给项目组长或應该分配的开发者

8) 测试人员查询开发者已修改的bug,进行重新测试

25.请你分别介绍一下单元测试、集成测试、系统测试、验收测试、回归測试

答;1、单元测试:完成最小的软件设计单元(模块)的验证工作,目标是确保模块被正确的编码使用过程设计描述作为指南,对重要嘚控制路径进行测试以发现模块内的错误通常情况下是白盒的,对代码风格和规则、程序设计和结构、业务逻辑等进行静态测试及早嘚发现和解决不易显现的错误。

2、集成测试:通过测试发现与模块接口有关的问题目标是把通过了单元测试的模块拿来,构造一个在设計中所描述的程序结构应当避免一次性的集成(除非软件规模很小),而采用增量集成

自顶向下集成:模块集成的顺序是首先集成主模块,然后按照控制层次结构向下进行集成隶属于主模块的模块按照深度优先或广度优先的方式集成到整个结构中去。

自底向上集成:從原子模块开始来进行构造和测试因为模块是自底向上集成的,进行时要求所有隶属于某个给顶层次的模块总是存在的也不再有使用穩定测试桩的必要。

3、系统测试:是基于系统整体需求说明书的黑盒类测试应覆盖系统所有联合的部件。系统测试是针对整个产品系统進行的测试目的是验证系统是否满足了需求规格的定义,找出与需求规格不相符合或与之矛盾的地方系统测试的对象不仅仅包括需要測试的产品系统的软件,还要包含软件所依赖的硬件、外设甚至包括某些数据、某些支持软件及其接口等因此,必须将系统中的软件与各种依赖的资源结合起来在系统实际运行环境下来进行测试。

4、回归测试:回归测试是指在发生修改之后重新测试先前的测试用例以保證修改的正确性理论上,软件产生新版本都需要进行回归测试,验证以前发现和修复的错误是否在新软件版本上再次出现根据修复恏了的缺陷再重新进行测试。回归测试的目的在于验证以前出现过但已经修复好的缺陷不再重新出现一般指对某已知修正的缺陷再次围繞它原来出现时的步骤重新测试。

5、验收测试:验收测试是指系统开发生命周期方法论的一个阶段这时相关的用户或独立测试人员根据測试计划和结果对系统进行测试和接收。它让系统用户决定是否接收系统它是一项确定产品是否能够满足合同或用户所规定需求的测试。验收测试包括Alpha测试和Beta测试

Alpha测试:是由用户在开发者的场所来进行的,在一个受控的环境中进行

Beta测试:由软件的最终用户在一个或多個用户场所来进行的,开发者通常不在现场用户记录测试中遇到的问题并报告给开发者,开发者对系统进行最后的修改并开始准备发咘最终的软件。

26.请你回答一下单元测试、集成测试、系统测试、验收测试、回归测试这几步中最重要的是哪一步

答:这些测试步骤分别在軟件开发的不同阶段对软件进行测试我认为对软件完整功能进行测试的系统测试很重要,因为此时单元测试和集成测试已完成能够对軟件所有功能进行功能测试,能够覆盖系统所有联合的部件是针对整个产品系统进行的测试,能够验证系统是否满足了需求规格的定义因此我认为系统测试很重要。

27.请回答集成测试和系统测试的区别以及它们的应用场景主要是什么?

1、计划和用例编制的先后顺序:从V模型来讲在需求阶段就要制定系统测试计划和用例,HLD的时候做集成测试计划和用例有些公司的具体实践不一样,但是顺序肯定是先做系统测试计划用例再做集成。

2、用例的粒度:系统测试用例相对很接近用户接受测试用例集成测试用例比系统测试用例更详细,而且對于接口部分要重点写毕竟要集成各个模块或者子系统。

3、执行测试的顺序:先执行集成测试待集成测试出的问题修复之后,再做系統测试

集成测试:完成单元测试后,各模块联调测试;集中在各模块的接口是否一致、各模块间的数据流和控制流是否按照设计实现其功能、以及结果的正确性验证等等;可以是整个产品的集成测试也可以是大模块的集成测试;集成测试主要是针对程序内部结构进行测試,特别是对程序之间的接口进行测试集成测试对测试人员的编写脚本能力要求比较高。测试方法一般选用黑盒测试和白盒测试相结合

系统测试:针对整个产品的全面测试,既包含各模块的验证性测试(验证前两个阶段测试的正确性)和功能性(产品提交个用户的功能)测试又包括对整个产品的健壮性、安全性、可维护性及各种性能参数的测试。系统测试测试软件《需求规格说明书》中提到的功能是否有遗漏是否正确的实现。做系统测试要严格按照《需求规格说明书》以它为标准。测试方法一般都使用黑盒测试法

28.请问测试开发需要哪些知识?需要具备什么能力

软件测试基础理论知识,如黑盒测试、白盒测试等;

计算机基础知识如数据库、Linux、计算机网络等;

測试框架,如JUnit等

业务分析能力,分析整体业务流程、分析被测业务数据、分析被测系统架构、分析被测业务模块、分析测试所需资源、汾析测试完成目标;

缺陷洞察能力一般缺陷的发现能力、隐性问题的发现能力、发现连带问题的能力、发现问题隐患的能力、尽早发现問题的能力、发现问题根源的能力;

团队协作能力,合理进行人员分工、协助组员解决问题、配合完成测试任务、配合开发重现缺陷、督促项目整体进度、出现问题勇于承担;

专业技术能力掌握测试基础知识、掌握计算机知识、熟练运用测试工具;

逻辑思考能力,判断逻輯的正确性、对可行性逻辑分析、站在客观角度思考;

问题解决能力技术上的问题、工作中的问题、沟通问题;

沟通表达能力,和技术囚员、产品人员、上下级的沟通;

宏观把控能力有效控制测试时间、有效控制测试成本、有效制定测试计划、有效进行风险评估、有效控制测试方向。

29.请说一说黑盒与白盒的测试方法

黑盒测试也称功能测试或数据驱动测试它是在已知产品所应具有的功能,通过测试来检測每个功能是否都能正常使用在测试时,把程序看作一个不能打开的黑盆子在完全不考虑程序内部结构和内部特性的情况下,测试者茬程序接口进行测试它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息并且保持外部信息(如数据库或文件)的完整性。

“黑盒”法着眼于程序外部结构、不考虑内部逻辑结构、针对软件界面和软件功能進行测试“黑盒”法是穷举输入测试,只有把所有可能的输入都作为测试情况使用才能以这种方法查出程序中所有的错误。实际上测試情况有无穷多个因此不仅要测试所有合法的输入,而且还要对那些不合法但是可能的输入进行测试

常用的黑盒测试方法有:等价类劃分法;边界值分析法;因果图法;场景法;正交实验设计法;判定表驱动分析法;错误推测法;功能图分析法。

白盒测试也称为结构测試或逻辑驱动测试是针对被测单元内部是如何进行工作的测试。它根据程序的控制结构设计测试用例主要用于软件或程序验证。白盒測试法检查程序内部逻辑结构对所有的逻辑路径进行测试,是一种穷举路径的测试方法但即使每条路径都测试过了,但仍然有可能存茬错误因为:穷举路径测试无法检查出程序本身是否违反了设计规范,即程序是否是一个错误的程序;穷举路径测试不可能检查出程序洇为遗漏路径而出错;穷举路径测试发现不了一些与数据相关的错误

白盒测试需要遵循的原则有:1. 保证一个模块中的所有独立路径至少被测试一次;2. 所有逻辑值均需要测试真(true)和假(false);两种情况;3. 检查程序的内部数据结构,保证其结构的有效性;4. 在上下边界及可操作范围内运行所有循环

静态测试:不用运行程序的测试,包括代码检查、静态结构分析、代码质量度量、文档测试等等它可以由人工进荇,充分发挥人的逻辑思维优势也可以借助软件工具(Fxcop)自动进行。

动态测试:需要执行代码通过运行程序找到问题,包括功能确认與接口测试、覆盖率分析、性能分析、内存分析等

白盒测试中的逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组匼覆盖和路径覆盖。六种覆盖标准发现错误的能力呈由弱到强的变化:

1.语句覆盖每条语句至少执行一次

2.判定覆盖每个判定的每个分支至尐执行一次。

3.条件覆盖每个判定的每个条件应取到各种可能的值

4.判定/条件覆盖同时满足判定覆盖条件覆盖。

5.条件组合覆盖每个判定中各條件的每一种组合至少出现一次

6.路径覆盖使程序中每一条可能的路径至少执行一次。

30.请说一下手动测试与自动化测试的优缺点

1、重复的掱工回归测试代价昂贵、容易出错。

2、依赖于软件测试人员的能力

1、测试人员具有经验和对错误的猜测能力。

2、测试人员具有审美能仂和心理体验

3、测试人员具有是非判断和逻辑推理能力。

1、对程序的回归测试更方便这可能是自动化测试最主要的任务,特别是在程序修改比较频繁时效果是非常明显的。由于回归测试的动作和用例是完全设计好的测试期望的结果也是完全可以预料的,将回归测试洎动运行可以极大提高测试效率,缩短回归测试时间

2、可以运行更多更繁琐的测试。自动化的一个明显的好处是可以在较少的时间内運行更多的测试

3、可以执行一些手工测试困难或不可能进行的测试。比如对于大量用户的测试,不可能同时让足够多的测试人员同时進行测试但是却可以通过自动化测试模拟同时有许多用户,从而达到测试的目的

4、更好地利用资源。将繁琐的任务自动化可以提高准确性和测试人员的积极性,将测试技术人员解脱出来投入更多精力设计更好的测试用例有些测试不适合于自动测试,仅适合于手工测試将可自动测试的测试自动化后,可以让测试人员专注于手工测试部分提高手工测试的效率。

5、测试具有一致性和可重复性由于测試是自动执行的,每次测试的结果和执行的内容的一致性是可以得到保障的从而达到测试的可重复的效果。

6、测试的复用性由于自动測试通常采用脚本技术,这样就有可能只需要做少量的甚至不做修改实现在不同的测试过程中使用相同的用例。

7、增加软件信任度由於测试是自动执行的,所以不存在执行过程中的疏忽和错误完全取决于测试的设计质量。一旦软件通过了强有力的自动测试后软件的信任度自然会增加。

2、手工测试比自动测试发现的缺陷更多

3、对测试质量的依赖性极大

4、测试自动化不能提高有效性

5、测试自动化可能会淛约软件开发由于自动测试比手动测试更脆弱,所以维护会受到限制从而制约软件的开发。

6、工具本身并无想像力

31.请问你怎么看待软件测试的潜力和挑战

软件测试是正在快速发展充满挑战的领域。尽管现在许多自动化测试软件的出现使得传统手工测试的方式被代替泹自动化测试工具的开发、安全测试、测试建模、精准测试、性能测试、可靠性测试等专项测试中仍然需要大量具有专业技能与专业素养嘚测试人员,并且随着云计算、物联网、大数据的发展传统的测试技术可能不再适用,测试人员也因此面临着挑战需要深入了解新场景并针对不同场景尝试新的测试方法,同时敏捷测试、Devops的出现也显示了软件测试的潜力

32.你觉得软件测试的核心竞争力是什么

测试人员的核心竞争力在于提早发现问题,并能够发现别人无法发现的问题

1、早发现问题:问题发现的越早,解决的成本越低如果一个需求在还未实现的时候就能发现需求的漏洞,那么这种问题的价值是最高的

2、发现别人无法发现的问题:所有人都能发现的问题,你发现了那僦证明你是可以被替代的。别人发现不了而你可以发现,那么你就是无法被替代

33.你觉得测试和开发需要怎么结合才能使软件的质量得箌更好的保障

测试和开发应该按照W模型的方式进行结合,测试和开发同步进行能够尽早发现软件缺陷,降低软件开发的成本

在V模型中,测试过程被加在开发过程的后半部分单元测试所检测代码的开发是否符合详细设计的要求。集成测试所检测此前测试过的各组成部分昰否能完好地结合到一起系统测试所检测已集成在一起的产品是否符合系统规格说明书的要求。而验收测试则检测产品是否符合最终用戶的需求V模型的缺陷在于仅仅把测试过程作为在需求分析、系统设计及编码之后的一个阶段,忽视了测试对需求分析、系统设计的验证因此需求阶段的缺陷很可能一直到后期的验收测试才被发现,此时进行弥补将耗费大量人力物力资源

相对于V模型,W模型增加了软件各開发阶段中应同步进行的验证和确认活动W模型由两个V字型模型组成,分别代表测试与开发过程图中明确表示出了测试与开发的并行关系。

W模型强调:测试伴随着整个软件开发周期而且测试的对象不仅仅是程序,需求、设计等同样要测试也就是说,测试与开发是同步進行的W模型有利于尽早地全面的发现问题。例如需求分析完成后,测试人员就应该参与到对需求的验证和确认活动中以尽早地找出缺陷所在。同时对需求的测试也有利于及时了解项目难度和测试风险,及早制定应对措施这将显著减少总体测试时间,加快项目进度

W模型中测试的活动与软件开发同步进行,测试的对象不仅仅是程序还包括需求和设计,因此能够尽早发现软件缺陷降低软件开发的荿本。

34.你觉得单元测试可行吗

可行单元测试可以有效地测试某个程序模块的行为,是未来重构代码的信心保证事前可以保证质量,事後可以快速复现问题并在修改代码后做回归自测。可行性考虑的是要用一些可行的方法做到关键的代码可测试如通过边界条件、等价類划分、错误、因果,设计测试用例要覆盖常用的输入组合、边界条件和异常

35.你觉得自动化测试有什么意义,都需要做些什么

1、可以对程序的新版本自动执行回归测试

2、可以执行手工测试困难或者不可能实现的测试如压力测试,并发测试

3、能够更好的利用资源,节省時间和人力

执行自动化测试之前首先判断这个项目是不是和推广自动化测试然后对项目做需求分析,指定测试计划搭建自动化测试框架,设计测试用例执行测试,评估

36.请你回答一下测试的相关流程是什么

需求测试->概要设计测试->详细设计测试->单元测试->集成测试->系统测試->验收测试

37.请你说一下如何写测试用例?

1、测试人员尽早介入彻底理解清楚需求,这个是写好测试用例的基础

2、如果以前有类似的需求可以参考类似需求的测试用例,然后还需要看类似需求的bug情况

3、清楚输入、输出的各种可能性以及各种输入的之间的关联关系,理解清楚需求的执行逻辑通过等价类、边界值、判定表等方法找出大部分用例

4、找到需求相关的一些特性,补充测试用例

5、根据自己的经验汾析遗漏的测试场景

6、多总结类似功能点的测试点才能够写出质量越来越高的测试用例

7、书写格式一定要清晰

38.请问你觉得测试项目具体笁作是什么?

测试并提交BUG表单

执行自动化测试,编写脚本执行,分析报告

进行性能测试,压力测试等其他测试执行,分析调优,报告

39.请问如果想进行bug的测评怎么去评测bug?

1、blocker:即系统无法执行崩溃,或严重资源不足应用模块无法启动或异常退出,无法测试慥成系统不稳定。常见的有严重花屏、内存泄漏、用户数据丢失或破坏、系统崩溃/死机/冻结、模块无法启动或异常退出、严重的数值计算錯误、功能设计与需求严重不符、其它导致无法测试的错误 如服务器500错误。

2、critical:即映像系统功能或操作主要功能存在严重缺陷,但不會映像到系统稳定性常见的有:功能未实现,功能错误、系统刷新错误、数据通讯错误、轻微的数值计算错误、影响功能及界面的错误芓或拼写错误

3、major:即界面、性能缺陷、兼容性,常见的有:操作界面错误边界条件错误,提示信息错误长时间操作无进度提示,系統未优化兼容性问题。

3、high:高度重视有时间要马上解决

4、low:在系统发布前解决,或确认可以不用解决

40.请你说一说测试用例的边界?

边堺值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充这种情况下,其測试用例来自等价类的边界

2)屏幕上光标在最左上、最右下位置

3)报表的第一行和最后一行

4)数组元素的第一个和最后一个

5)循环的第 0 次、第 1 次囷倒数第 2 次、最后一次

41.请你说一下软件质量的六个特征?

按照软件质量国家标准GB-T8566–2001G,软件质量可以用下列特征来评价:

a.功能特征:与一组功能及其指定性质有关的一组属性这里的功能是满足明确或隐含的需求的那些功能。

b.可靠特征:在规定的一段时间和条件下与软件维持其性能水平的能力有关的一组属性。

c.易用特征:由一组规定或潜在的用户为使用软件所需作的努力和所作的评价有关的一组属性

d.效率特征:与在规定条件下软件的性能水平与所使用资源量之间关系有关的一组属性。

e.可维护特征:与进行指定的修改所需的努力有关的一组属性

f.可移植特征:与软件从一个环境转移到另一个环境的能力有关的一组属性。

42.请你说一下设计测试用例的方法

等价类划分是将系统的输叺域划分为若干部分然后从每个部分选取少量代表性数据进行测试。等价类可以划分为有效等价类和无效等价类设计测试用例的时候偠考虑这两种等价类。

边界值分析法是对等价类划分的一种补充因为大多数错误都在输入输出的边界上。边界值分析就是假定大多数错誤出现在输入条件的边界上如果边界附件取值不会导致程序出错,那么其他取值出错的可能性也就很小

边界值分析法是通过优先选择鈈同等价类间的边界值覆盖有效等价类和无效等价类来更有效的进行测试,因此该方法要和等价类划分法结合使用

正交是从大量的试验點中挑选出适量的、有代表性的点。正交试验设计是研究多因素多水平的一种设计方法他是一种基于正交表的高效率、快速、经济的试驗设计方法。

状态迁移法是对一个状态在给定的条件内能够产生需要的状态变化有没有出现不可达的状态和非法的状态,状态迁移法是設计足够的用例达到对系统状态的覆盖、状态、条件组合、状态迁移路径的覆盖

流程分析法主要针对测试场景类型属于流程测试场景的測试项下的测试子项进行设计,这是从白盒测试中路径覆盖分析法借鉴过来的一种很重要的方法

输入域测试法是针对输入会有各种各样嘚输入值的一个测试,他主要考虑 极端测试、中间范围测试特殊值测试 。

输出域分析法是对输出域进行等价类和边界值分析确定是要覆盖的输出域样点,反推得到应该输入的输入值从而构造出测试用例,他的目的是为了达到输出域的等价类和边界值覆盖

判定表是分析和表达多种输入条件下系统执行不同动作的工具,他可以把复杂的逻辑关系和多种条件组合的情况表达的即具体又明确;

因果图是用于描述系统输入输出之间的因果关系、约束关系因果图的绘制过程是对被测系统的外部特征的建模过程,根据输入输出间的因果图可以得箌判定表从而规划出测试用例。

错误猜测法主要是针对系统对于错误操作时对于操作的处理法的猜测法从而设计测试用例

异常分析法昰针对系统有可能存在的异常操作,软硬件缺陷引起的故障进行分析分析发生错误时系统对于错误的处理能力和恢复能力依此设计测试鼡例。

白盒测试也称为结构测试或逻辑驱动测试是针对被测单元内部是如何进行工作的测试。它根据程序的控制结构设计测试用例主偠用于软件或程序验证。白盒测试法检查程序内部逻辑结构对所有的逻辑路径进行测试,是一种穷举路径的测试方法但即使每条路径嘟测试过了,但仍然有可能存在错误因为:穷举路径测试无法检查出程序本身是否违反了设计规范,即程序是否是一个错误的程序;穷舉路径测试不可能检查出程序因为遗漏路径而出错;穷举路径测试发现不了一些与数据相关的错误

白盒测试需要遵循的原则有:1. 保证一個模块中的所有独立路径至少被测试一次;2. 所有逻辑值均需要测试真(true)和假(false);两种情况;3. 检查程序的内部数据结构,保证其结构的囿效性;4. 在上下边界及可操作范围内运行所有循环

静态测试:不用运行程序的测试,包括代码检查、静态结构分析、代码质量度量、文檔测试等等它可以由人工进行,充分发挥人的逻辑思维优势也可以借助软件工具(Fxcop)自动进行。

动态测试:需要执行代码通过运行程序找到问题,包括功能确认与接口测试、覆盖率分析、性能分析、内存分析等

白盒测试中的逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。六种覆盖标准发现错误的能力呈由弱到强的变化:

1.语句覆盖每条语句至少执行一次

2.判萣覆盖每个判定的每个分支至少执行一次。

3.条件覆盖每个判定的每个条件应取到各种可能的值

4.判定/条件覆盖同时满足判定覆盖条件覆盖。

5.条件组合覆盖每个判定中各条件的每一种组合至少出现一次

6.路径覆盖使程序中每一条可能的路径至少执行一次。

43.请你说一说测试工程師的必备技能

? 软件测试基础理论知识如黑盒测试、白盒测试等;

? 计算机基础知识,如数据库、Linux、计算机网络等;

? 测试框架如JUnit等。

? 业务分析能力分析整体业务流程、分析被测业务数据、分析被测系统架构、分析被测业务模块、分析测试所需资源、分析测试完成目标;

? 缺陷洞察能力,一般缺陷的发现能力、隐性问题的发现能力、发现连带问题的能力、发现问题隐患的能力、尽早发现问题的能力、发现问题根源的能力;

? 团队协作能力合理进行人员分工、协助组员解决问题、配合完成测试任务、配合开发重现缺陷、督促项目整體进度、出现问题勇于承担;

? 专业技术能力,掌握测试基础知识、掌握计算机知识、熟练运用测试工具;

? 逻辑思考能力判断逻辑的囸确性、对可行性逻辑分析、站在客观角度思考;

? 问题解决能力,技术上的问题、工作中的问题、沟通问题;

? 沟通表达能力和技术囚员、产品人员、上下级的沟通;

? 宏观把控能力,有效控制测试时间、有效控制测试成本、有效制定测试计划、有效进行风险评估、有效控制测试方向

44.请你说一下app性能测试的指标

1、内存:内存消耗测试节点的设计目标是为了让应用不占用过多的系统资源,且及时释放内存保障整个系统的稳定性。当然关于内存测试在这里我们需要引入几个概念:空闲状态、中等规格、满规格。

空闲状态指打开应用后点击home键让应用后台运行,此时应用处于的状态叫做空闲;中等规格和满规格指的是对应用的操作时间的间隔长短不一中等规格时间较長,满规格时间较短

内存测试中存在很多测试子项,清单如下:

●空闲状态下的应用内存消耗;

●中等规格状态下的应用内存消耗;

●滿规格状态下的应用内存消耗;

●压力测试后的内存使用

网络流量测试是针对大部分应用而言的,可能还有部分应用会关注网速、弱网の类的测试

流量测试包括以下测试项:

应用首次启动流量提示;

应用后台连续运行2小时的流量值;

应用高负荷运行的流量峰值。

●测试掱机安装目标APK前后待机功耗无明显差异;

●常见使用场景中能够正常进入待机待机电流在正常范围内;

●长时间连续使用应用无异常耗電现象。

第一类:首次启动–应用首次启动所花费的时间;

第二类:非首次启动–应用非首次启动所花费的时间;

第三类:应用界面切换–应用界面内切换所花费的时间

6、滑动速度、界面切换速度

7、与服务器交互的网络速度

45.请你说一说app测试的工具

a) 轻量接口自动化测试

iOS内存問题分析:ARC模式

c) 后台服务性能测试

手工测试:操作系统,分辨率rom,网络类型

Android自带的流量管理

流量节省方法:压缩数据,json优于xml;WebP优于传統的JPGPNG;控制访问的频次;只获取必要的数据;缓存;

基于测试设备的方法,购买电量表进行测试

手机自带的网络状况模拟工具

基于代悝的弱网络的模拟:

46.请你说一说bug的周期,以及描述一下不同类别的bug

当某个“bug”被第一次发现的时候测试人员需要与项目负责人沟通以确认發现的的确是一个bug,如果被确认是一个bug就将其记录下来,并将bug的状态设为New

当一个bug被指认为New之后将其反馈给开发人员,开发人员将确认這是否是一个bug如果是,开发组的负责人就将这个bug指定给某位开发人员处理并将bug的状态设定为“Assigned”

3、Open(打开的)

一旦开发人员开始处理bug嘚时候,他(她)就将这个bug的状态设置为“Open”这表示开发人员正在处理这个“bug”

4、Fixed(已修复的)

当开发人员进行处理(并认为已经解决)之后,他就可以将这个bug的状态设置为“Fixed”并将其提交给开发组的负责人然后开发组的负责人将这个bug返还给测试组

当bug被返还到测试组后,我们将bug的状态设置为Pending Reset”

测试组的负责人将bug指定给某位测试人员进行再测试并将bug的状态设置为“Reset”

如果测试人员经过再次测试之后确认bug 巳经被解决之后,就将bug的状态设置为“Closed”

8、Reopen(再次打开的)

如果经过再次测试发现bug(指bug本身而不是包括因修复而引发的新bug)仍然存在的话测试人员将bug再次传递给开发组,并将bug的状态设置为“Reopen”

如果测试人员传递到开发组的bug被开发人员认为是正常行为而不是bug时这种情况下開发人员可以拒绝,并将bug的状态设置为“Pending Reject”

测试组的负责人接到上述bug的时候如果他(她)发现这是产品说明书中定义的正常行为或者经過与开发人员的讨论之后认为这并不能算作bug的时候,开发组负责人就将这个bug的状态设置为“Rejected”

有些时候对于一些特殊的bug的测试需要搁置┅段时间,事实上有很多原因可能导致这种情况的发生比如无效的测试数据,一些特殊的无效的功能等等在这种情况下,bug的状态就被設置为“Postponed“

47.请你说一说PC网络故障以及如何排除障碍

(1)首先是排除接触故障,即确保你的网线是可以正常使用的然后禁用网卡后再启用,排除偶然故障打开网络和共享中心窗口,单击窗口左上侧“更改适配器设置”右击其中的“本地连接“或”无线网络连接”单击快捷菜单中的“禁用”命令,即可禁用所选网络接下来重启网络,只需右击后单击启用即可

(2)使用ipconfig查看计算机的上网参数

1、单击“开始|所有程序|附件|命令提示符“,打开命令提示符窗口

2、输入ipconfig按Enter确认,可以看到机器的配置信息输入ipconfig/all,可以看到IP地址和网卡物理地址等相关网络詳细信息。

(3)使用ping命令测试网络的连通性定位故障范围

在命令提示符窗口中输入”ping 127.0.0.1“,数据显示本机分别发送和接受了4个数据包丢包率為零,可以判断本机网络协议工作正常如显示”请求超时“,则表明本机网卡的安装或TCP/IP协议有问题接下来就应该检查网卡和TCP/IP协议,卸載后重装即可

在确认127.0.0.1地址能被ping通的情况下,继续使用ping命令测试本机的IP地址能否被ping通如不能,说明本机的网卡驱动程序不正确或者网鉲与网线之间连接有故障,也有可能是本地的路由表面收到了破坏此时应检查本机网卡的状态是否为已连接,网络参数是否设置正确洳果正确可是不能ping通,就应该重新安装网卡驱动程序丢失率为零,可以判断网卡安装配置没有问题工作正常。

网关地址能被ping通的话表明本机网络连接以及正常,如果命令不成功可能是网关设备自身存在问题,也可能是本机上网参数设置有误检查网络参数。

48.请你说┅说测试的常用方法

黑盒测试也称功能测试或数据驱动测试它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使鼡在测试时,把程序看作一个不能打开的黑盆子在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试它只檢查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息并且保持外部信息(如數据库或文件)的完整性。

“黑盒”法着眼于程序外部结构、不考虑内部逻辑结构、针对软件界面和软件功能进行测试“黑盒”法是穷舉输入测试,只有把所有可能的输入都作为测试情况使用才能以这种方法查出程序中所有的错误。实际上测试情况有无穷多个因此不僅要测试所有合法的输入,而且还要对那些不合法但是可能的输入进行测试

常用的黑盒测试方法有:等价类划分法;边界值分析法;因果图法;场景法;正交实验设计法;判定表驱动分析法;错误推测法;功能图分析法。

白盒测试也称为结构测试或逻辑驱动测试是针对被测单元内部是如何进行工作的测试。它根据程序的控制结构设计测试用例主要用于软件或程序验证。白盒测试法检查程序内部逻辑结構对所有的逻辑路径进行测试,是一种穷举路径的测试方法但即使每条路径都测试过了,但仍然有可能存在错误因为:穷举路径测試无法检查出程序本身是否违反了设计规范,即程序是否是一个错误的程序;穷举路径测试不可能检查出程序因为遗漏路径而出错;穷举蕗径测试发现不了一些与数据相关的错误

白盒测试需要遵循的原则有:1. 保证一个模块中的所有独立路径至少被测试一次;2. 所有逻辑值均需要测试真(true)和假(false);两种情况;3. 检查程序的内部数据结构,保证其结构的有效性;4. 在上下边界及可操作范围内运行所有循环

静态測试:不用运行程序的测试,包括代码检查、静态结构分析、代码质量度量、文档测试等等它可以由人工进行,充分发挥人的逻辑思维優势也可以借助软件工具(Fxcop)自动进行。

动态测试:需要执行代码通过运行程序找到问题,包括功能确认与接口测试、覆盖率分析、性能分析、内存分析等

白盒测试中的逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。六种覆蓋标准发现错误的能力呈由弱到强的变化:

1.语句覆盖每条语句至少执行一次

2.判定覆盖每个判定的每个分支至少执行一次。

3.条件覆盖每个判定的每个条件应取到各种可能的值

4.判定/条件覆盖同时满足判定覆盖条件覆盖。

5.条件组合覆盖每个判定中各条件的每一种组合至少出现┅次

6.路径覆盖使程序中每一条可能的路径至少执行一次。

49.请你说一说你知道的自动化测试框架

FRAMEWORK)需要创建小而独立的可以描述的模块、爿断以及待测应用程序的脚本这些树状结构的小脚本组合起来,就能组成能用于特定的测试用例的脚本在五种框架中,模块化框架是朂容易掌握和使用的在一个组件上方建立一个抽象层使其在余下的应用中隐藏起来,这是众所周知的编程技巧这样应用同组件中的修妀隔离开来,提供了程序设计的模块化特性模块化测试脚本框架使用这一抽象或者封装的原理来提高自动测试组合的可维护性和可升级性。

测试库框架(Test Library Architecture)与模块化测试脚本框架很类似并且具有同样的优点。不同的是测试库框架把待测应用程序分解为过程和函数而不是腳本这个框架需要创建描述模块、片断以及待测应用程序的功能库文件。

3、关键字驱动或表驱动的测试框架

对于一个独立于应用的自动囮框架关键字驱动(KEYWORD DRIVEN)I9LJJ试和表驱动(TABLE DRIVEN)测试是可以互换的术语。这个框架需要开发数据表和关键字这些数据表和关键字独立于执行它們的测试自动化工具,并可以用来“驱动"待测应用程序和数据的测试脚本代码关键宇驱动测试看上去与手工测试用例很类似。在一个關键字驱动测试中把待测应用程序的功能和每个测试的执行步骤一起写到一个表中。这个测试框架可以通过很少的代码来产生大量的测試用例同样的代码在用数据表来产生各个测试用例的同时被复用。

数据驱动(DATA DRIVEN)LJ试是一个框架。在这里测试的输入和输出数据是从数據文件中读取(数据池ODBC源,CSV文件EXCEL文件,ADO对象等)并且通过捕获工具生成或者手工生成的代码脚本被载入到变量中在这个框架中,变量不仅被用来存放输入值还被用来存放输出的验证值整个程序中,测试脚本来读取数值文件记载测试状态和信息。这类似于表驱动测試在表驱动测 试中,它的测试用例是包含在数据文件而不是在脚本中对于数据而言,脚本仅仅是一个“驱动器”或者是一个传送机構。然而数据驱动测试不同于表驱动测试,尽管导航数据并不包含在表结构中在数据驱动测试中,数据文件中只包含测试数据这个框架意图减少需要执行所有测试用例所需要的总的测试脚本数。数据驱动需要很少的代码来产生大量的测试用例这与表驱动极其类似。

朂普遍的执行框架是上面介绍的所有技术的一个结合取其长处,弥补其不足这个混合测试框架是由大部分框架随着时间并经过若干项目演化而来的

50.请你说一说web测试和app测试的不同点

web项目,一般都是b/s架构基于浏览器的

app项目,则是c/s的必须要有客户端,用户需要安装客户端

web测试只要更新了服务器端,客户端就会同步会更新App项目则需要客户端和服务器都更新。

web页面主要会关注响应时间

而app则还需要关心流量、电量、CPU、GPU、Memory这些

它们服务端的性能没区别,都是一台服务器

web是基于浏览器的,所以更倾向于浏览器和电脑硬件电脑系统的方向的兼容

app测试则要看分辨率,屏幕尺寸还要看设备系统。

web测试是基于浏览器的所以不必考虑安装卸载

而app是客户端的,则必须测试安装、更噺、卸载除了常规的安装、更新、卸载还要考虑到异常场景。包括安装时的中断、弱网、安装后删除安装文件

此外APP还有一些专项测试:如网络、适配性。

51.请问你了解什么测试方法

等价类划分边界值分析,错误推测因果图法,逻辑覆盖法程序插桩技术,基本路径法符号测试,错误驱动测试

52.请问黑盒测试和白盒测试有哪些方法

黑盒测试方法有等价类划分边界值分析,错误推测因果图法

白盒测试方法有逻辑覆盖法,程序插桩技术基本路径法,符号测试错误驱动测试

53.请问你怎么看待测试,知道哪些测试的类型有用过哪些测试方法?

测试是软件开发中不可或缺的一环测试通过经济,高效的方法捕捉软件中的错误,从而达到保重软件内在质量的目的

测试分為功能测试和非功能测试,非功能测试又可以分为性能测试、压力测试、容量测试、健壮性测试、安全性测试、可靠性测试、恢复性测试、备份测试、协议测试、兼容性测试、可用性测试、配置测试、GUI测试

测试方法用过等价划分法、边值分析法、错误推测法、因果图法。

54.請问你怎么测试网络协议?

协议测试包括四种类型的测试

1、一致性测试:检测协议实现本身与协议规范的符合程度

2、互操作性测试:基于某┅协议检测不同协议实现间互操作互通信的能力

3、性能测试:检测协议实现的性能指标比如数据传输速度,连接时间执行速度,吞吐量并发度,

4、健壮性测试:检测协议是现在各种恶劣环境下运行的能力比如注入干扰报文,通信故障信道被切断

软件测试笔试面试題目完全汇总

1)软件未实现产品说明书要求的功能

2)软件出现了产品说明书指明不应该出现的错误

3)软件实现了产品说明书未提到的功能

4)软件未实现产品说明书虽未明确提及但应该实现的目标

5)软件难以理解、不易使用、运行缓慢或者从测试员的角度看最终用户会认为不恏。

软件测试:为了发现软件产品中的各种缺陷而对软件产品进行验证和确认的活动过程,此过程贯穿整个软件开发生命周期 简单的說,软件测试是以发现错误为目的而执行的一个程序或系统的过程

1.验证软件需求和功能是否得到完整实现

2.验证软件是否可以发布

3.尽可能哆的发现软件中的bug

4.尽可能早的发现软件中的bug

5.对软件质量做出合理评估

6.预防下个版本可能出现的问题

7.预防用户使用可能出现的问题

8.发现开发過程中的问题和风险

1、所有测试的标准都是建立在用户需求之上 。

2、合理控制测试深度与广度完全测试不可能,测试的投入与产出要均衡

3、80-20原则,软件中80%的bug可以在分析、设计与评审阶段就能被发现与修正16%的缺陷在系统的软件测试中发现,最后剩下的4%是用户长期使用的過程中才能暴露出来

4、尽可能早的开展测试,越早发现错误修改的代价越小。

5、发现错误较多的程序段应进行更深入的测试。

6、软件项目一启动软件测试也就是开始,而不是等程序写完才开始进行测试 。

7、软件开发人员即程序员应当避免测试自己的程序

8、严格执荇测试计划排除测试的随意性,以避免发生疏漏或者重复无效的工作

web测试和APP测试的区别

仅仅从功能测试的层面上来讲的话在流程和功能测试上是没有区别的。那么区别在哪里呢

由于载体不一样,所以系统测试和一些细节可能会不一样

那么我们就要先来了解,web和app的区別

web项目,一般都是b/s架构基于浏览器的,而app则是c/s的必须要有客户端。那么在系统测试测试的时候就会产生区别了

首先从系统架构来看的话,web测试只要更新了服务器端客户端就会同步会更新。而且客户端是可以保证每一个用户的客户端完全一致的但是app端是不能够保證完全一致的,除非用户更新客户端如果是app下修改了服务端,意味着客户端用户所使用的核心版本都需要进行回归测试一遍

接着是性能方面,web页面可能只会关注响应时间而app则还需要关心流量、电量、CPU、GPU、Memory这些了。至于服务端的性能是没区别这里就不谈。

相比较web测试app更是多了一些专项测试:

一些异常场景的考虑以及弱网络测试。这里的异常场景就是中断来电,短信关机,重启等

而弱网测试是app測试中必须执行的一项测试。包含弱网和网络切换测试需要测试弱网所造成的用户体验,重点要考虑回退和刷新是否会造成二次提交需要测试丢包,延时的处理机制避免用户的流失。这些在前面的弱网测试那篇已经讲过这里不再讲了。

web测试是基于浏览器的所以不必栲虑这些而app是客户端的,则必须测试安装、更新、卸载除了常规的安装、更新、卸载还要考虑到异常场景。包括安装时的中断、弱网、安装后删除安装文件更新的强制更新与非强制更新、增量包更新、断点续传、弱网,卸载后删除app相关的文件等等

性能使用的工具web则昰LR,app使用Jmeter要多一点

如何提交高质量的缺陷报告单

1、 缺陷的概要描述要清晰准确要使相关开发负责人员能够一目了然问题是什么。

2、 一个唍整的缺陷报告单必须包含其必要的元素信息,例如:概要描述缺陷发现人,测试环境浏览器,缺陷重现步骤严重等级,指派人所属功能模块等等,必要元素信息必须描述全面清楚

3、 缺陷的重现步骤必须描写清晰明了,使相关开发负责人能够根据重现步骤准确嘚重现所提交的缺陷使其定位缺陷的原因所在。

4、测试数据测试的数据作为重现缺陷的一个重要元素信息,一定要将测试时所使用的信息给描写清楚准确让开发人员根据测试所提供的测试数据准确重现缺陷。

5、附件截图信息附件或截图信息能让开发人员能够一目了嘫的清楚问题的所在。

如何对web系统进行全面测试

链接是Web应用系统的一个主要特征,它是在页面之间切换和指导用户去一些不知道地址的頁面的主要手段链接测试可分为三个方面。首先测试所有链接是否按指示的那样确实链接到了该链接的页面;其次,测试所链接的页面昰否存在;最后保证Web应用系统上没有孤立的页面,所谓孤立页面是指没有链接指向该页面只有知道正确的URL地址才能访问。 链接测试可以洎动进行现在已经有许多工具可以采用。链接测试必须在集成测试阶段完成也就是说,在整个Web应用系统的所有页面开发完成之后进行鏈接测试

当用户给Web应用系统管理员提交信息时,就需要使用表单操作例如用户注册、登陆、信息提交等。在这种情况下我们必须测試提交操作的完整性,以校验提交给服务器的信息的正确性例如:用户填写的出生日期与职业是否恰当,填写的所属省份与所在城市是否匹配等如果使用了默认值,还要检验默认值的正确性如果表单只能接受指定的某些值,则也要进行测试例如:只能接受某些字符,测试时可以跳过这些字符看系统是否会报错。

Cookies通常用来存储用户信息和用户在某应用系统的操作当一个用户使用Cookies访问了某一个应用系统时,Web服务器将发送关于用户的信息把该信息以Cookies的形式存储在客户端计算机上,这可用来创建动态和自定义页面或者存储登陆等信息 如果Web应用系统使用了Cookies,就必须检查Cookies是否能正常工作测试的内容可包括Cookies是否起作用,是否按预定的时间进行保存刷新对Cookies有什么影响等。

Web设计语言版本的差异可以引起客户端或服务器端严重的问题例如使用哪种版本的HTML等。当在分布式环境中开发时开发人员都不在一起,这个问题就显得尤为重要除了HTML的版本问题外,不同的脚本语言例如Java、JavaScript、 ActiveX、VBScript或Perl等也要进行验证。

在Web应用技术中数据库起着重要的作鼡,数据库为Web应用系统的管理、运行、查询和实现用户对数据存储的请求等提供空间在Web应用中,最常用的数据库类型是关系型数据库鈳以使用SQL对信息进行处理。 在使用了数据库的Web应用系统中一般情况下,可能发生两种错误分别是数据一致性错误和输出错误。数据一致性错误主要是由于用户提交的表单信息不正确而造成的而输出错误主要是由于网络速度或程序设计问题等引起的,针对这两种情况鈳分别进行测试。

用户连接到Web应用系统的速度根据上网方式的变化而变化他们或许是电话拨号,或是宽带上网当下载一个程序时,用戶可以等较长的时间但如果仅仅访问一个页面就不会这样。如果Web系统响应时间太长(例如超过5秒钟)用户就会因没有耐心等待而离开。 另外有些页面有超时的限制,如果响应速度太慢用户可能还没来得及浏览内容,就需要重新登陆了而且,连接速度太慢还可能引起數据丢失,使用户得不到真实的页面

负载测试是为了测量Web系统在某一负载级别上的性能,以保证Web系统在需求范围内能正常工作负载级別可以是某个时刻同时访问Web系统的用户数量,也可以是在线数据处理的数量例如:Web应用系统能允许多少个用户同时在线?如果超过了这个數量,会出现什么现象?Web应用系统能否处理大量用户对同一个页面的请求?

负载测试应该安排在Web系统发布以后在实际的网络环境中进行测试。因为一个企业内部员工特别是项目组人员总是有限的,而一个Web系统能同时处理的请求数量将远远超出这个限度所以,只有放在Internet上接受负载测试,其结果才是正确可信的 进行压力测试是指实际破坏一个Web应用系统,测试系统的反映压力测试是测试系统的限制和故障恢复能力,也就是测试Web应用系统会不会崩溃在什么情况下会崩溃。黑客常常提供错误的数据负载直到Web应用系统崩溃,接着当系统重新啟动时获得存取权 压力测试的区域包括表单、登陆和其他信息传输页面等。

导航描述了用户在一个页面内操作的方式在不同的用户接ロ控制之间,例如按钮、对话框、列表和窗口等;或在不同的连接页面之间通过考虑下列问题,可以决定一个Web应用系统是否易于导航:导航是否直观?Web系统的主要部分是否可通过主页存取?Web系统是否需要站点地图、搜索引擎或其他的导航帮助? 在一个页面上放太多的信息往往起到與预期相反的效果Web应用系统的用户趋向于目的驱动,很快地扫描一个Web应用系统看是否有满足自己需要的信息,如果没有就会很快地離开。很少有用户愿意花时间去熟悉Web应用系统的结构因此,Web应用系统导航帮助要尽可能地准确 导航的另一个重要方面是Web应用系统的页媔结构、导航、菜单、连接的风格是否一致。确保用户凭直觉就知道Web应用系统里面是否还有内容内容在什么地方。 Web应用系统的层次一旦決定就要着手测试用户导航功能,让最终用户参与这种测试效果将更加明显。

在Web应用系统中适当的图片和动画既能起到广告宣传的莋用,又能起到美化页面的功能一个Web应用系统的图形可以包括图片、动画、边框、颜色、字体、背景、按钮等。

(1)要确保图形有明确的用途图片或动画不要胡乱地堆在一起,以免浪费传输时间Web应用系统的图片尺寸要尽量地小,并且要能清楚地说明某件事情一般都链接箌某个具体的页面。

(2)验证所有页面字体的风格是否一致

(3)背景颜色应该与字体颜色和前景颜色相搭配。

(4)图片的大小和质量也是一个很重要嘚因素一般采用JPG或GIF压缩。

内容测试用来检验Web应用系统提供信息的正确性、准确性和相关性 信息的正确性是指信息是可靠的还是误传的。例如在商品价格列表中,错误的价格可能引起财政问题甚至导致法律纠纷;信息的准确性是指是否有语法或拼写错误这种测试通常使鼡一些文字处理软件来进行,例如使用Microsoft Word的拼音与语法检查功能;信息的相关性是指是否在当前页面可以找到与当前浏览信息相关的信息列表戓入口也就是一般Web站点中的所谓相关文章列表。

整体界面是指整个Web应用系统的页面结构设计是给用户的一个整体感。例如:当用户浏覽Web应用系统时是否感到舒适是否凭直觉就知道要找的信息在什么地方?整个Web应用系统的设计风格是否一致? 对整体界面的测试过程,其实是┅个对最终用户进行调查的过程一般Web应用系统采取在主页上做一个调查问卷的形式,来得到最终用户的反馈信息 对所有的可用性测试來说,都需要有外部人员(与Web应用系统开发没有联系或联系很少的人员)的参与最好是最终用户的参与。

}

数据库是数据分析师必须掌握的┅项技能数据库的相关知识点在面试中经常被问到,为了帮助道友们在面试中能够更好的表现我决定将最常见的(也是大多数公司要求掌握的)MySQL核心知识点总结一下,希望能在最短的时间内帮助大家回顾一下相关内容

数据库(database):保存有组织的数据的容器,包括三种模型:层次模型、网状模型和关系模型其优点包括持久化存储、读写速度极高、保证数据的有效性、对程序支持性非常好、容易扩展。

RDBMS(关系型数据库管理系统):创建和操纵关系型数据库的容器

decimal(M,N) 高精度小数,由用户指定精度的小数例如,decimal(10,5)表示一共10位其中小数5位。

char(n) 萣长字符串存储指定长度的字符串,例如char(20)总是存储20个字符的字符串

varchar(n) 变长字符串,存储可变长度的字符串例如,varchar(20)可以存储0-20个字符的字苻串

date 日期类型存储日期,例如

time 时间类型,存储时间例如,15:22:05

datetime 日期和时间类型存储日期+时间,例如 15:22:05

}

我要回帖

更多关于 数据库常用sql语句 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信