精华内容
下载资源
问答
  • 移动端软件测试面试题及答案-2021年最新版
    千次阅读
    2021-10-15 15:48:43

    一、基础题(软能力)

            主要考察面试者的语言表达能力、逻辑思维能力、反应能力、理解能力、协调能力等,一般会在面试开始热身的时候问一两道题。

    1、自我介绍

    2、换工作的意图,遇到了什么问题,你想要新的公司/团队给你带来什么?

    3、为什么选择软件测试这一行,觉得自己有什么优势或劣势?

            沟通能力强,善于与人打交道;

            是一个比较细心且有耐心的人;

            有点强迫症,追求完美;

            爱总结,会将测试过程中发现的问题进行归纳总结,形成经验教训;

            爱学习并且善于学习,能很快掌握新工具的使用;

            综合起来我觉得我是胜任这个工作的。

    4、你未来的职业规划?

    5、当开发人员说不是bug时,你如何应付?


    二、测试理论(基础题)

            主要考察面试者的基本能力,比如测试计划、流程、bug的定义、做过哪些测试。一般我们认为这些能力做的再好都是应该的,不会有加分;但如果做的不好,那就是个不合格的测试工程师了。

    1、请描述你上个项目的测试流程?

            参与需求评审->编写测试计划->设计测试用例->用例评审->执行测试用例->缺陷提单->编写测试报告

            细一点的话,可以将冒烟测试-接口测试-UAT用户验收测试等也加入进去,视情况而定。

    2、请描述下bug的几个要素?        

          包含:标题、问题描述,详细操作步骤,发现时间,系统环境,硬件环境,严重程度,功能模块,是否会重现,最好提供:有问题的账号、对应的报错截图、或者报错日志等。

    3、测试分为哪几个阶段,分别由谁来负责?

            一般来说分为5个阶段:单元测试、集成测试、系统测试、验收测试

            单元测试一般由开发人员进行自测;

            集成测试和系统测试,由测试工程师负责;

            验收测试,则由甲方或者业务方进行验收。

    三、移动端测试(专项题)

            如今是移动互联网的天下,大部分公司都有APP应用、小程序、公众号等,做好响应准备是必备的。

    1、你是如何做应用的兼容性测试的?

            主要涉及iOS和Android端,

    (硬件方面)

            1)设备类型:区分iOS不同机型、Android不同机型、平板电脑、穿戴式设备等;

            2)生产商:Android手机不同厂商会有定制化差异

            3)显示屏:屏幕大小、分辨率、刘海屏、大屏、小屏、折叠屏、曲面屏等

            4)、不同系统(12、13、14、15等)

    (软件方面)

            操作系统:安卓不同版本的系统、鸿蒙系统、iOS不同版本的系统等;

     (其他方面)

            1)开发技术、语言的不同:RN、H5、native等;

            2)网络:2G、3G、4G、5G、wifi、弱网等;

            3)用户使用习惯:如大字体的适配、语言的变化(中文、英文、繁体)等。

    2、举几个你测试过程中遇到的兼容性问题?

            1)H5页面中CSS样式兼容:样式错乱、布局不灵活、样式便捷处理不好看,导致窄屏手机显示异常等;(一些属性的浏览器标示前缀没有添加,导致默认浏览器不认识这个属性,所以样式错乱)

            2)H5页面缓存问题:页面一直显示修改前的样式,需要强制刷新页面或者清除缓存才生效;

            3)上下滑动卡顿:安卓和大部分iOS手机上下滑动顺滑,小部分iOS手机卡顿等

    3、你觉得哪些场景需要做兼容性验证?

    • UI显示
    • 多次快速点击
    • 拉起虚拟键盘挡住输入区
    • 虚拟物理按键收起与显示
    • 多个输入框来回切换
    • 控件焦点热区文体
    • 前后台、多个应用切换
    • 指纹识别和faceid等
    • 框架升级
    • 网络
    • 新老版本兼容
    • 第三方依赖库或者SDK升级
    • 前后端版本兼容
    • 安装卸载更新

    4、有没有遇到过手机崩溃(闪退)?碰到了怎么解决,通常是什么原因造成的?一般怎么抓取日志?

            1)系统不兼容,版本不兼容,导致一安装就闪退;

            2)空指针:对象没有初始化就使用了(点击某个功能的时候闪退);

            3)代码错误:没有经过测试的新功能,可能会导致App在生产环境中失败等。

    四、接口测试

    1、在接口测试过程中发现的bug多不多?能举几个例子?

            比如,输入框,在页面上输入负数,肯定是无法提交过去(前端页面会判断金额),如果我不走前端,直接用接口工具发请求,输入一个负数过去。 (假设服务端没做提现金额数据判断) 余额=当前余额(100)-提现金额(-100),那么提现-100,余额就变成200了,也就是越提现,余额越大了。

            1)数字录入框:输入非数字

            2)长度校验:输入超过最大长度、输入空等

    2、你们公司的接口测试流程是怎样的?

      首先是从开发那里拿到API接口文档,了解接口业务、包括接口地址、请求方式,入参、出参,token鉴权,返回格式等信息。

      然后使用Postman或Jmeter工具执行接口测试,一般使用Jmeter的步骤是这样的:

    1)在测试计划下新建一个线程组;

    2)添加HTTP请求默认值(输入接口服务器IP和端口);

    3)添加对应的HTTP请求,一个请求一个用例(包括输入接口路径,访问方式,参数等);

    4)然后创建断言和查看结果树;

    5)最后调试并执行用例,最后编写接口测试报告。

    3、jmeter中如何实现关联?

      先从上一个接口中通过正则表达式提取器或jsonpath解析器截取下一个接口需要的参数值保存到变量,然后在下一个接口中通过${变量名}去获取。

            Jmeter,JSON提取器【提取满足特定条件的变量值】

    4、谈谈你对HTTP协议的了解?

            http:超文本传输协议,端口为80,特点(无记忆功能、快速)是由请求和响应两部分组成。请求由请求头、请求行、请求正文组成;响应是由响应头、响应行、响应正文组成,之前我们公司的接口是采用https协议的。

            https:http+ssl协议,端口443,面向安全的超文本传输协议,较http更安全。    

    5、get和post请求有什么区别?

    get和post请求都是客户端向服务器提交的一种请求方式

    get是明文传输参数、倾向于请求服务器资源。比如打开网站

    post传输数据不可见,安全性高,倾向于向服务器提交数据,比如注册等

    五、SQL数据库(必备技能)

    1、说下左连接和右连接的用法?

            left join (左连接)、right join (右连接)、inner join (等值连接或者叫内连接)、full join (全外连接)

            用法:select * from A表 left join B表 on A.id = B.id; 

    2、写一个更新语句?

            update 表A  a set a.phone = '188XXXXXXXX' where a.id = '2212';

    3、模糊查询用什么关键词?like

    六、Linux(必备技能)

    1、说说你常用的linux命令?

    2、查日志一般用什么命令?tail 

    3、查日志时,搜索关键词的命令?

            tail -f log |grep '188XXXXXXXX'

    4、如何查看进程,CPU使用率?top

    七、敏捷开发模式(项目模式)

    1、有做过敏捷项目吗,和传统的项目有什么区别,使用了什么措施?

            敏捷项目:每日站会,看板监控,燃尽图,开短会,计划发布,迭代复盘会议等,

            敏捷相对于传统项目迭代会更快,一般2周一个迭代,快速响应需求,需求变更频繁等。

    2、敏捷测试下的工作流程?

            1)更侧重于用x-mind编写测试场景,进行测试场景评审,减少测试用例、测试计划等工作的比重

            2)在前后端联调期间即进行接口测试,尽早开始测试;

            3)关注持续迭代的新功能,针对新功能进行足够的SIT测试;

            4)引入探索性测试,由于时间原因,一般只进行一轮回归测试等。

    更多相关内容
  • 施工企业安全生产测试题及答案.docx
  • 企业安全生产测试题及答案2017.pdf
  • 安全生产培训测试题及答案.pdf
  • 安全生产培训测试题及答案[整理].doc
  • 安全生产测试题答案.pdf
  • 安全生产培训测试题答案.doc
  • 2019年济宁市兖州区招聘安全生产安全岗位测试题(2)试题及答案解析.docx
  • 正确认知安全生产管理测试题答案.pdf
  • 煤矿安全生产及管理知识测试题库答案_1.docx
  • 安全生产法-测试题答案.docx
  • 安全生产管理概述测试题(无答案).docx
  • 2022年安全生产知识应知应会考试-附答案参考.pdf
  • 2021年安全生产月知识竞赛考试题目测试题库有答案.pdf
  • 学习化工安全四十一条禁令测试及答案.pdf
  • 2021年安全生产月主题知识竞赛测试题(附答案).rar
  • 时事政治—价格变动对生产经营影响的经典测试题答案(4).pdf
  • 根据集团公司 项目关键岗位人员安全生产责任清单 试行工程施工前项目经理应 根据集团公司 项目关键岗位人员安全生产责任清单 试行工程施工前项目经理应 根据公司下达的安全生产 目标结合工程情况组织制定本项目的 A ...
  • 软件测试期末试题及答案(史上最全)

    千次阅读 多人点赞 2021-07-15 15:26:39
    软件测试期末试题及答案 软件缺陷是由很多方面造成的,以下哪个方面是造成软件缺陷的最多 的地方( A ) A. 规格说明书 B. 系统设计结果 C. 编写代码 D. 其他 覆盖准则最强的是( D ) A. 语句覆盖 B. 判定覆盖 C. ...

    软件测试期末试题及答案

    1. 软件缺陷是由很多方面造成的,以下哪个方面是造成软件缺陷的最多
      的地方( A ) A. 规格说明书 B. 系统设计结果 C. 编写代码 D. 其他
    2. 覆盖准则最强的是( D )
      A. 语句覆盖 B. 判定覆盖 C. 条件覆盖 D. 路径覆盖
    3. 实际的逻辑覆盖测试中,一般以(C )为主设计测试用例。
      A. 条件覆盖 B. 判定覆盖 C. 条件组合覆盖 D. 路径覆盖
    4. 发现错误能力最弱的覆盖准则是( A )。
      A. 语句覆盖 B. 判定覆盖 C. 条件覆盖 D. 路径覆盖
    5. 单元测试所使用的主要测试方法是( B )
      A. 黑盒测试 B. 白盒测试 C. 集成测试

    D. 验收测试
    6. 对于软件缺陷的修复费用,在哪个阶段的费用花费最小( A )
    A. 分析阶段 B. 设计阶段 C. 编码阶段 D. 发布阶段
    7. 静态测试的主要对象是(AB )
    A. 代码检查 B. 代码风格与规范 C. 软件的功能 D. 设计的合理性
    8. 单元测试主要测试是模块在(ABC )上的错误。
    A. 语法 B. 格式 C. 逻辑 D. 功能
    9. 单元测试主要由( C )完成?其中( A )起主要作用。
    A. 开发人员 B. 测试人员
    C. 开发人员和测试人员 D. 以上都不对
    10. 集成测试所使用的主要测试方法是( A )。
    A. 黑盒测试 B. 静态测试 C. 动态测试

    D. 白盒测试
    11. 系统测试主要包括包含了多种测试活动,主要分为( AB )。
    A. 功能性测试 B. 非功能性测试 C. 回归测试 D. 单元测试
    12. 系统集成测试常见的有哪几种不同模式( AB )。
    A. 非渐增式测试模式 B. 渐增式测试模式 C. 独立测试模式 D. 非独立测试模式
    13. 软件的兼容性测试包括( AD )。
    A. 向前和向后兼容 B. 多语言测试 C. 多版本测试 D. 横向测试
    14. 软件的缺陷通常集中在( AB )阶段。
    A. 需求分析 B. 系统设计 C. 编写代码 D. 软件测试
    15. 对于一些关键代码或新人写的代码,主要采取( B )方式。
    A. 走查 B. 会议审查 C. 代码互评

    D. 自查
    16. 在集成测试中,主要的集成方法有( ABCD )。
    A.自顶向下 B.自底向上 C.大爆炸 D.三明治
    17. 文档测试主要检查文档的(ABCD )。
    A. 正确性 B. 完备性 C. 易理解性 D. 一致性
    18. 验收测试完成后还需要提交(AC ),才可交付用户使用。
    A. 验收报告 B. 项目完成报告 C. 交付报告
    D. 无需提供任何报告
    19. 软件本地化工作中除了翻译之外还应该( ABCD )。
    A. 处理字符集问题 B. 数据格式 C. 页面显示和布局 D. 配置和兼容性等问题
    20. 造成软件的主要原因可从( ABC)方面来查找。
    A. 技术问题 B. 软件本身 C. 团队工作

    D. 资金问题
    21. 代码评审有哪些方法(ABCD )。
    A. 代码走查 B. 正式会议审查 C. 代码会审 D. 代码咨询
    22. 软件产品的质量中的非功能需求包括( ABCD )等。
    A. 适用性 B. 有效性 C. 可靠性 D. 性能
    23. 当程序有修改,并且要求保证原有功能正常的情况下,必须采用( D )
    方法。 A. 单元测试 B. 集成测试 C. 系统测试 D. 回归测试
    24. 对于整个软件的本地化过程来说,需要解决的技术问题主要有(AC)。
    A. 数据格式 B. 页面显示和布局 C. 配置和兼容性问题 D. 翻译问题
    25. 测试团队的基本责任应该是( ABCD )。
    A. 发现软件程序、系统或产品中的所有问题 B. 尽早地发现问题

    C. 督促开发人员尽快地解决程序中的缺陷 D. 帮助团队解决资金问题
    26. 驱动程序,用以模拟被测模块的( A )模块。
    A. 上级模块 B. 下级模块 C. 同级模块 D. 其他
    27. 整体测试用例的质量要求包括( ABCD )。
    A. 覆盖率 B. 易用性 C. 易维护性 D. 粒度适中
    28. 易用性、兼容性、安装、文档测试等主要在( A )阶段完成。
    A. 单元测试 B. 集成测试 C. 功能测试 D. 验收测试
    二、判断题(分值)
    1.
    能够尽可能早的发现软件缺陷,就能够尽可能地节约修复缺陷的成本,因此,因

                此在软件的设计阶段修复缺陷的费用最低。( F ) 2. 
    

    根据著名的瀑布模型,软件测试应该处在“编程”的下游、在“软件维护”的上游,先有编程,后有测试,测试的位置很清楚。( T ) 3. 为了能更多测试出软件的缺陷,测试用例的一般要求越复杂越好。( F ) 4. 因为软件开发人员不止一人,因此在测试时候,只能进行松散地实施测试。(F ) 5.
    每一种测试方法都必须执行程序,才能得到最好的效果。( F )

    1. 单元测试的主要人员构成是开发人员。( T ) 7. 集成测试就是系统测试。( F )

    在进行系统测试的时候,当发现有错误时候,应该及时修正,紧接着修正下一个错误。( T )
    9. 有的时候因为时间紧迫,可以临时安排几个程序员或者行业新手做测试工作。(F)
    10. 在实际的运用中,无论对于白盒测试和黑盒测试,通常使用其中一种方法就可以
    完成对某一软件的测试工作。( F )
    11. 验收测试是测试的最后一个环节,该测试完成后,马上可以交付用户使用。( F ) 12. 软件质量的要求是要满足软件的功能性需求。( F )
    13. 系统测试的目的是检查已经通过单元测试的单元之间的接口是否存在问题。(T) 14. 在软件的开发中,每次回归测试都要重新运行完整的测试包。( F )
    15. 在整个软件团队中,对软件测试人员的要求比较低,会操作计算机、有一定的软
    件使用经验就可以。(F )
    16. 在对软件缺陷的描述中,测试人员可以对有个人的观点,也可以对开发人员进行
    评价,有利于开发人员提高开发质量。(F )
    17. 在整个软件生命周期中的每个阶段、每个时刻都存在着软件测试活动,软件测试
    伴随着软件开发。( T ) 18. 验收测试是由用户完成的。( F )
    19. 在一个规范的软件的开发中,开发人员的人数一般大于测试人员的人数。( F ) 20. 在整个开发周期中要对测试用例进行有效的跟踪和维护。( T ) 21. 功能测试也可以采用白盒测试的方法。(F )

    在软件测试过程中,应该遵循的原则是?(1)、尽早可能展开预防性测试;(2)、可追溯性;(4)、投入/产出原则;(5)、80/20原则;(6)、独立的软件测试机构或委托第三方测试,即避免开发人员一边开发,一边测试的情况的出现。 2. 测试用例的设计的步骤一般包括?(1)、测试需求分析;(2)、业务流程分析;(3)、测试用例设计;(4)、测试用例评审;(5)、测试用例更新完善。
    3. 测试用例的原则?(1)测试用例的代表性;(2)测试结果的可判断性;(3)测试结果的可再现性。
    4. 常用到的软件质量模型有哪些?并简述一下。(1)软件测试瀑布模型:分为测试计划、需求分析、概要设计、详细设计、软件测试、运行和维护7个阶段,自顶向下执行。强调阶段划分及顺序性、各阶段工作及其文档的完备性。(2)软件测试V模型:也称为RAD模型,即快速应用开发模型。属于线性顺序一类的软件开发模型。 5. 什么是软件测试计划?是指导测试过程的纲领性文件,包含产品概述、测试策略、测试方法、测试区域、测试配置、测试周期、测试资源、测试交流和风险分析等内容。 6.
    制定软件测试的计划的原则有?(1)制定测试计划应尽早开始;(2)保持测试计划的灵活性;(3)保持测试计划简洁和易读;(4)尽量争取多渠道评审测试计划;(5)计算测试计划的投入。 7.
    制定软件测试的技术的步骤有?(1)产品基本情况调研;(2)测试需求说明;(3)测试的策略和记录;(4)测试资源配置;(5)计划表;(6)问题跟踪报告;(7)测试计划的评审 8. 什么是静态测试、动态测试?静态测试:是一种不通过执行程序而进行测试的技术,只是检测和评审。动态测试:直接执行被测试程序以提供测试支持。
    9.
    什么是白盒测试、黑盒测试?二者的关系是什么?一、(1)白盒测试:又称功能功能测试、数据驱动测试和行为测试,是一种从用户观点出发的测试,被测程序为黑盒子,通过测试来检测每个功能是否能够正常使用(2)黑盒测试:又称结构测试和逻辑驱动测试,是知道产品内部工作过程,通过测试来检测产品内部动作是否按照规格说明书的规定去正常运行。二、白盒测试偏重实现方式,注重局部;黑盒测试偏重业务方面,注重整体。有着本质区别,又是相互联系、相辅相成。
    10. 软件测试的过程是什么?(1)测试一致性;(2)可持续改进测试过程;(3)便于管理;
    (4)系统测试;(5)验收测试;
    11. 软件测试与软件开发的过程的关系是什么?(1)测试工程师与开发工程师目标一致、
    行为对立、并行工作,有生产就必然有质检,二者的工作相辅相成,开发人员和测试人员的主要矛盾就集中在对bug的定义上。(2)软件测试工程师:查找bug、管理bug、质量保证。软件开发:系统设计、编码、修改bug
    12. 白盒测试的覆盖准则有哪些?(1)语句覆盖 ;(2)判定覆盖;(即分支覆盖); (3)
    条件覆盖 ;(4)判定-条件覆盖 ;(5)条件组合覆盖 ;(6)路径覆盖 。

    1. 白盒测试的常用工具有哪些?各适用于什么情况?(1)静态白盒测试:在不执行的条
      件下有条理地仔细审查软件设计、体系结构和代码,从而找出软件缺陷的过程。(2)动态白盒测试:需要对各个模块功能、模块间的接口、局部数据结构、主要执行路径、错误处理等反面的测试

    2. 单元测试是什么?单元测试是在软件开发过程中要进行的最低级别的测试活动,起目
      的在于发现每个模块内部可能存在的差距。

    3. 单元测试的原则有哪些?(1)单元测试越早进行越好;(2)单元测试应该根据《软件
      详细设计规格说明》进行;(3)对于修改过的代码应该重做单元测试,以保证对已发现错误的修改没有引入新的错误;(4)当测试用例的测试结果与设计规格说明书的预期结果不一致时,测试人员应该如实记录实际的测试结果;(5)单元测试应注意选择好被测试软件单元的大小;(6)一个完整的单元测试说明应该包含软件证明测试和负面测试;(7)注意使用单元测试工具。

    4. 单元测试的重要性及目的是什么?一、(1)提前发现问题并解决可以节约时间(2)是
      测试阶段的基础,为后期的集成测试和系统测试做好准备;(3)对单元独立测试,容易发现问题,减少成本。二、目的:是暴漏出失败和错误。失败的可能性是可预期的,并且可以使用断言来进行检查。而错误则是不可预期的问题

    5. 简述单元测试的过程?(1)准备阶段;(2)编制阶段(3)代码审查阶段;(4)单元
      测试阶段;(5)评审、提交阶段。

    6. 什么是插桩程序设计?是在保证被测程序原有逻辑完整性的基础上在程序中插于一些
      探针,通过探针的执行抛出程序运行的特征数据,通过这些数据的分析,可以获得程序的控制流和数据信息,进而得到逻辑覆盖等动态信息,从而实现测试目标的方法。 19. 集成测试是什么?是在假定各个软件单元已经通过了单元测试的前提下,检测各个软
      件单元之间相互接口是否正确。

    7. 集成测试的主要任务是什么?(1)将各个模块连接起来,检查模块相互调用时,数据
      结构接口是否丢失;(2)将各个子功能组合起来,检查能否达到预期要求的各项功能;(3)一个模块的功能是否会对另一个模块的功能产生不利的影响;(4)全局数据结构是否有问题,会不会被异常修改;(5)单个模块的误差积累起来,是否被放大,从而达到不可接受的程度。

    8. 集成测试与单元测试,系统测试的区别是什么?一、集成测试与单元测试的区别:(1)
      集成测试关注的是模块间的接口、接口之间的数据传递关系、单元组合后是否实现预计的功能;(2)集成测试组装的对象比单元测试的对象级别要高。二、集成测试与系统测试的区别:(1)系统测试对象是整个系统以及与系统交互的硬件和软件平台;(2)集成测试所测试的对象是模块间的接口,其目的是在找出在模块接口上面,包括整体体系结构上的问题;(3)软件的集成测试工作最好由不属于该软件开发组的软件设计人员承担,以提高集成测试的效果。

    9. 集成测试的内容有哪些?(1)制定集成测试计划;(2)设计集成测试;(3)实施集成
      测试;(4)执行集成测试;(5)评估集成测试。

    10. 如何进行集成测试的用例设计?(1)为系统运行设计用例;(2)为正向测试设计用例;
      (3)为逆向测试设计用例;(4)为满足特殊需求设计用例;(5)为高覆盖设计用例;(6)测试用例补充;(7)注意事项。

    11. 集成测试的方法有哪些?分别适用于哪些情况?一、非曾式集成;将所有经过单元测
      试的模块一次性组装到被测系统中进行测试,不考虑模块之间的依赖性和可能的风险;二、自顶向下集成;从控制模块开始,沿着程序的控制层向下移动,逐渐把各个模块结合起来。三、自底向上集成;从最底层的模块开始,按结构图自下而上和自底向上的集成方法;四、混合集成。对高风险模块优先进行重点测试,保证系统稳定性。 25. 系统测试是什么?是指测试整个系统已确定其是否能够提供应用的所有需求行为,包
      含了多种测试活动,主要分为功能性测试和非功能测试。

    12. 系统测试与用户测试有何不同?系统测试是测试整个系统已确定其是否能够提供应用
      的所有需求行为;用户测试分为体验、界面、验收、用户测试报告组成

    13. 简述系统测试的主要内容?(1)功能测试。即测试软件系统的功能是否正确,其
      依据是需求文档,如《产品需求规格说明书》。(2)健壮性测试。即测试软件系统在异常情况下能否正常运行的能力。健壮性有两层含义:一是容错能力,二是恢复能力

    14. 容量测试与压力测试的区别有哪些?(1)压力测试是在给系统不断加压,增加并发量,
      直到崩溃,找到系统所能承受的极限值。(2)容量测试是在预先分析的极限值下,系统能否正常运行。

    15. 什么是性能测试?通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对
      系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者结合进行。 30. 什么是回归测试?它有什么好处?一般如何进行回归测试?一、回归测试是指修改了
      旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。二、大幅降低系统测试、维护升级等阶段的成本。三、(1)为每个项目创建用例基线库;(2)标识每个用例的重要性及有线级;(3)建立用例直接的关系。

    16. 验收测试是什么?是在软件产品完成了功能测试和系统测试之后,产品发布之前所进
      行的软件测试活动,它是技术测试的最后一个阶段,是将程序与其最初的需求及最终用户当前的需要进行比较的过程,也叫交付测试。

    17. 验收测试的主要内容是什么?(1)文档审查(2)安装测试(3)功能测试(4)性能
      测试(5)界面测试(6)加载测试(7)配置测试(8)恢复测试(9)安全性测试。 33. α测试和β测试有什么不同?a 测试是在公司内部由用户组织与的测试;a 测试对发
      现缺陷是可控的,但缺陷是人数有限、地域限制。b测试是在外部有用户进行的测试;b测试不会认真地去发现缺陷,有时仅仅是为了抢占市场。

    18. 如何组织软件测试团队?(1)建立合理、高效的组织结构(2)建立正确的分工体系,
      即角色与职责;(3)培养合格的测试人员。

    19. 如何进行软件测试人员的培养?(1)人员选择要求;(2)人员培训与培养;(3)测试
      人员职业发展规划;
      软件测试 A卷(11+18+12+19+40=100分)
      一、单项选择(每空1分,共11分)
      1、执行函数测试时,当多次调用底层函数,底层模拟器的"模拟值"输入栏可设定多个模拟值,一次最多可设置( C )个模拟值。
      A、1 B、3 C、6 D、11
      2、当函数测试存在失败断言时,在白盒覆盖率信息窗口中VU会显示一个( B )的条块来提示,没有失败断言时,会显示一个( A )的条块来显示;在逻辑结构窗口中,未覆盖的路径用( B )画出,已覆盖的路径用( A )画出,未覆盖的分支是( D )的条块。
      A、深绿色 B、深红色 C、浅蓝色 D、粉红色 E、浅绿色

    3、VU导出的测试报告文件格式为:( C ),表格化测试用例数据导出的文件格式为:( E )
    A、.pdf B、.txt C、.htm D、.csv E、.xls F、.doc
    4、在软件生命周期中的任何一个阶段,只要软件发生了改变,就可能给该软件带来新的问题。软件的改变可能是源于发现错误并做好了修改,可能是因为在集成或维护阶段加入了新的模块,为了验证软件修改后的正确性需要进行( E )。
    A、白盒测试 B、黑盒测试 C、单元测试 D、性能测试
    E、回归测试 F、验收测试
    5、当用底层模拟器去模拟被测单元调用的底层函数的输出函数,并且此输出参数为指针数据类型,应该设置此参数的模拟值为( D )。
    A、指针值 B、引用的地址 C、指针指向的数据类型的值 D、NULL
    6、当用底层模拟器去模拟被测单元调用的底层函数的返回值,并且此输出参数为指针数据类型,应该设置此参数的模拟值为( C )。
    A、指针值 B、引用的地址 C、指针指向的数据类型的值 D、NULL
    二、多项选择(每空2分,共18分)
    1、底层模拟能很好的解决( BCF )。
    A、集成测试问题 B、装代码和数据失真 C、测试不可控
    D、性能测试问题 E、内部输出的模拟
    F、模拟参数为复杂数据类型,单元测试时难以初始化
    2、底层模拟器能够模拟( ABCEH)。
    A、底层函数的参数 B、底层函数的返回值 C、全局变量
    D、函数改写文件中的数据 E、成员变量 F、函数改写数据库中的数据
    G、内部输出 H、调用次数
    3、执行函数测试后,源代码窗口能够标识出未覆盖的(BCD)。逻辑结构图窗口能够标识出未覆盖的( AF)。
    A、路径 B、条件 C、MC/DC D、语句 E、C/DC F、分支

    4、VU与按自动的边界测试,用于边界测试的边界值是由菜单项"数据"→定义边界值来维护的。VU提供的int类型的默认值有( ACHJM ),bool类型的默认边界值有( I L),double类型的默认类型边界值有( DFGKN )。
    A、0 B、99999.9 C、0x80000000 D、0.0 E、-99999.9
    F、1.0 G、9999.99 H、1 I、true J、0x7FFFFFFF
    K、-9999.99 L、false M、-1 N、-1.0 O、0x80000000
    P、0x7FFFFFFF
    5、在利用VU进行单元测试的过程中,针对同一个测试用例集合,以下()类的白盒覆盖情况是可能会出现的。( A E//ac )
    补:分支覆盖达到100%则语句覆盖也一定是达到了100%。
    语句覆盖是最弱的覆盖
    A、语句覆盖:100% 分支覆盖:100% 路径覆盖:100%
    B、语句覆盖:32% 分支覆盖:100% 路径覆盖:98% X
    C、语句覆盖:100% 分支覆盖:18% 路径覆盖:100%
    D、语句覆盖:30% 分支覆盖:50% 路径覆盖:47%
    E、语句覆盖:100% 分支覆盖:95% 路径覆盖:15%
    6、在利用VU单元测试(ac//a)的过程中,可能会出现"语句:95%,分支:100%,路径:15%"的情况。
    A、_01_pow() B、_11_Mcdc1() C、_12_Mcdc2()
    三、判断题(每空2分,共12分)
    注:正确的打钩,错误的打叉,并说明错误原因
    1、一个测试用例只允许有一个底层模拟,而一个函数可以有多个底层模拟。(T)
    错误原因:
    2、底层模拟器可用于控制测试。( T )
    错误原因:
    3、底层模拟器模拟的内部输入能够实现用例数据的表格化。( T )
    错误原因:
    4、包含有空指针的测试用例能够实现用例数据的表格化。(F)
    错误原因:空指针会被认为没有输入买自动设置为null,所以不能表格化
    5、VU在单元测试时,设计的每个测试用例都必须设置其预期输出。( T )
    错误原因:
    6、在测试用例集中,测试用例的数量等于断言的数量。( F )
    错误原因:错误,一个测试用例中可以出现多个断言

    四、简述题(1、2、3题各3分,4题6分,5题4分,共19分)
    1、简述在VU的单元测试中,提高路径覆盖率的3种方法。
    1:添加测试用例
    2:删除分支
    3:删除不可达路径

    2、简述在VU的源代码窗口中,当前测试用例未覆盖的语句,VU如何标识测试用例集未覆盖的语句。VU如何标识测试用例集未覆盖的条件和Mc/Dc,VU如何标识。
    答: 未覆盖语句:淡红色背景的红色字体 表示
    未覆盖的条件和Mc/Dc:淡红色背景的红色字体 [ T F M ] 表示
    T 表示真值未覆盖,F 表示假值未覆盖 ,M 表示 MC/DC未覆盖

    3、简述C/Dc和Mc/Dc的定义。
    C/DC :条件/判定覆盖:判断中每个条件的所有可能取值至少执行一次,同时每个判断本身所有可能结果也至少执行一次。
    MC/DC :修正的条件/判定覆盖,是一种软件结构覆盖率的测试准则。
    修正条件判定覆盖要求:单元的入口和出口必须被调用一次,程序中判断的每一个分支必须至少被执行一次。对于程序中通过逻辑运算组成判断的基本布尔条件,每个条件必须取遍所有可能的值,且每一个条件对判断的结果具有独立的作用。

    **掌握理论和实际情况下白盒覆盖准则相互间包含的关系,如下

    第六个成员函数
    源代码

    白盒覆盖率信息:均为100%
    测试用例

    4、分别设计出最少数量的测试用例,构成两套测试用例集,使CMyClass2的成员函数_11_Mcdc1(BOOL,BOOL,BOOL)被100% C/DC和Mc/Dc ,

    _12_Mcdc2(BOOL,BOOL,BOOL,BOOL,BOOL,BOOL,BOOL,BOOL,BOOL,BOOL,BOOL) 被100% C/DC,
    并为每个测试用例列出它在函数执行时所覆盖的条件的判定。
    int CMyClass2::_11_Mcdc1(BOOL A,BOOL B,BOOL C) (100%C/DC 和 MC/DC)
    {
    if(A && (B || C))
    return 1;
    return 0;
    }
    测试用例如下 :
    条件判定如下 :

    int CMyClass2::_12_Mcdc2(BOOL A,BOOL B,BOOL C,BOOL D,BOOL E,BOOL F,BOOL G,BOOL H,BOOL I,BOOL J,BOOL K) ( 100%C/DC)
    {
    if(A && ( (B||C) && (D&&E) ) && ((F||G) && (H||I||J)||K) )
    return 1;
    return 0;
    }
    测试用例如下 :
    条件判定如下 :

    5、为成员函数_01_Pow()设计测试用例,使其被100%语句,条件和C/DC覆盖,统计出失败断言数,如果存在失败断言,列出失败断言(即测试用例的输入,预期输出和实际输出),指出软件曲线位置,并修复缺陷,保证测试结束,失败断言为0。
    unsigned int CMyClass::_01_Pow(unsigned int g,unsigned int e){
    unsigned int result = 0;
    if(g0)
    result = 0;
    else if(g
    1)
    result = 1;
    else if(e0)
    result = 1;
    else if(e
    1)
    result = g;
    else{
    for(unsigned int i=0; i<e; i++)
    result *=g;
    }
    return result;
    }

    失败断言数:1
    失败断言为:case3

    软件曲线位置:

    修复缺陷:unsigned int result = 0; ——>> unsigned int result = 1;

    五、程序测试题(1、3题各15分,2题10分,共40分)
    1、单元测试CMyClass2的成员函数_07_DeleteComment(char *,char *),补充给定的测试用例集的预期输出和实际输出,统计失败断言的数量,如果失败断言数大于0,则说明软件存在缺陷,找到缺陷的具体位置,并修复它。/函数说明:
    名称:CMyClass2::_07_DeleteComment
    功能:删除C++代码中的注释
    参数:pSrc:源代码
    pDes:保存删除注释后的代码
    返回:无
    /
    void CMyClass2::_07_DeleteComment(char * pSrc,char * pDes){
    int len = strlen(pStr);
    if(len == 0)
    return;
    bool cmmSin = false;//由//开始\n结束的单行注释
    bool cmmMul = false;//由/开始/结束的多行注释
    char ch = *pSrc++;
    char next = 0;
    while(ch){
    if(!cmmSin && (cmmMul)){//非注释
    if(ch==’/’){//注释开始的第一个字符
    next = *pSrc;
    if(next ‘\0’)//结束
    break;
    else if(next
    ’/’)
    cmmSin = true;
    if(cmmMUl || cmmSin){
    pSrc++;//忽略/后的一个字符
    ch = *pStr++;
    continue;
    }
    }
    *pDes++ = ch;
    ch = *pSrc++;
    }else if(cmmSin){//单行注释
    if(ch==’\n’){//单行注释结束
    cmmSin = false;
    *pDes++ = ch;//\n是不能丢的
    }
    ch = pSrc++;
    }else if(cmmMul){//多行注释
    if(ch==’
    ’){//开始多行注释
    next = *pSrc;
    if(next==’/’){
    cmmMul = false;
    *pSrc++;//忽略后面的/
    }
    }
    ch = *pSrc++;
    }
    }
    }
    Name Case1 Case2 Case3
    pSrc “int a;//comment\n” “int a:/comment/\n” “int /Comment/a;//comment\n”

    pDes
    实际输出

    Name Case4 Case5 Case6 Case7 Case8
    pSrc “int a;/” “int a=c/d;” “int a;/a = bc*/\n” “” “int a”

    pDes
    实际输出
    Case9:输入(char *pSrc = 0;char *pDes = 0;)(注:Case9不能表格化)

    失败断言2个,有两处缺陷:1,没有判断空指针 2,测试用例4未得到正确结果。
    

    修改:
    1,在函数开始处加
    if(pSrc0||pDes0)
    return;

    2,2,在if(next==’\0’) 里加上*pDes=ch;

    3、单元测试triml()C函数,设计测试用例集(包括能表格化的普通测试用例和不能表格化的特殊测试用例),使语句、分支、条件、C/DC、MC/DC和路径的覆盖率达到100%,统计出失败断言的数量,列出包含失败断言的测试用例的实际输出,找出软件缺陷的位置,并修复它,使失败断言数为0。
    /*
    体验可视化编程:删除字符串左边的空格
    参数:str,源字符串
    返回:返回结果字符串指针
    */
    char *triml(char *str){
    char *i,*j;
    i = str;
    j = str;
    while(*i==32)
    ++i;
    while(*i!=’\0’){
    *j = *i;
    ++i;
    ++j;
    }
    *j = ‘\0’;
    return str;
    }

    失败断言1个,缺陷是没有判断空指针,修复在char *i,*j;后面加上if(str==0) return;
    测试用例
    NAME CASE1 CASE2 CASE3 CASE4 CASE5
    str “aa” “ aa” “aa ” “” “ ”
    ret “aa” “aa” “aa ” “” “”

    4、单元测试findr()C函数,设计出测试用例集(包括能表格化的普通测试用例和不能表格化的特殊测试用例),使语句覆盖、C/DC覆盖和路径覆盖的覆盖率达到100%。统计失败断言的数量,列出包含失败断言的测试用例的实际输出,找出软件缺陷的位置,并修复它,使失败断言数为0。
    /*
    体验可视化编程:在一个字符串中反向查找子串
    参数:str,源字符串
    stub,需查找的子串
    返回:如果找到返回子串的位置,否则返回-1
    */
    int findr(char *str,char *sub){
    char *i,*j,*k,*n;
    int l,m;
    int len_str,len_sub;

    ( if(str0 | | sub0) 要改的地方
    return -1;
    if(*str==’\0’ | | *sub==’\0’)
    return -1;
    )

    len_str = 0;
    len_sub = 0;
    i = str;
    j = sub;
    while(*i!='\0'){
    	i++;
    	len_str++;
    }
    i--;
    while(*j!='\0'){
    	j++;
    	len_sub++;
    }
    j--;
    n = j;
    
    for(l=len_str;l>len_str - len_sub+1; l--){    //for(l=len_str;l>len_str-1;l--)
    	k = i;
    	for(m=l;m<=len_sub;m++){      // for(m=1;m<=len_sub;m++)  这是 m 一
    		if(*k==*j){
    			k--;
    			j--;
    		}else
    			break;
    	}
    	if(m>len_sub)
    		break;
    	i--;
    	j = n;
    }
    if(l<len_str - len_sub+1)      //if(l<len_sub-1)
    	return -1;
    else
    return (l-len_sub+1);
    

    }

    缺陷有5个
    int findr(char* str, char* sub)
    {
    char *i,*j,*k,*n;
    int l,m;
    int len_str,len_sub;
    if(str0 || sub0)return -1;//有误
    if(*str==’\0’ || *sub==’\0’)return -1;
    len_str = 0;
    len_sub = 0;
    i = str;
    j = sub;
    while(*i!=’\0’)
    {
    i++;
    len_str++; //有几个字符
    }
    i–; //计算字符串长度
    while(*j!=’\0’)
    {
    j++;
    len_sub++;
    }
    j–;
    n = j;
    for(l=len_str;l>len_sub-1; l–) //有误
    {
    k = i;
    for(m=1;m<=len_sub;m++) //有误
    {
    if(*k==*j)
    {
    k–;
    j–;
    }else
    break;
    }
    if(m>len_sub) //完全匹配时
    break;
    i–;
    j = n;
    }
    if(l<=len_sub-1) //有误
    return -1;
    else
    return (l-len_sub+1);
    }

    之前测试失败断言10个
    测试用例
    特殊测试用例
    软件测试期末试题及答案
    1、判定覆盖设计足够多的测试用例,使得被测试程序中的每个判断的“真”、“假”分支_至少被执行一次。
    2、黑盒测试的具体技术方法
    等价类划分法,边界值分析法,决策表法,因果图法
    3、黑盒测试又称之为___________测试。
    功能
    4、等价类划分有两种不同的情况:
    有效等价类,无效等价类
    5、根据覆盖目标的不同,逻辑覆盖又可分为:
    ,条件组合覆盖,判断/条件覆盖。
    语句覆盖,判定覆盖,条件覆盖,路径覆盖
    6、根据软件生命周期中的定义,可以把自动化测试工具划分3大类____________,
    白盒测试工具、黑盒测试工具、测试管理工具
    7、软件测试是为发现程序中的______________而执行程序的

    错误,过程
    8、测试用例是由______________和预期的______________两部分组成。
    测试输入数据 ,输出数据
    9、白盒测试又称为
    ____,可以分为______________和______________两大类。
    结构测试,静态测试,动态测试
    10、软件是包括____________﹑的完整集合。
    程序,数据,相关文档
    11、边界值分析法属于

    黑盒测试
    12、单元测试是以____________说明书为指导,测试源程序代码。
    详细设计
    13、集成测试以____________说明书指导,测试软件结构。
    概要设计
    14、确认测试以____________说明书为指导。
    需求分析
    15、软件开发的基本过程____________,
    ____________,
    需求分析、概要设计、详细设计,编码,测试、维护
    16、代码复审属于
    ,不实际运行程序。
    静态测试
    17、集成测试把模块组成成系统的测试方式:

    一次性集成测试,增量式集成测试
    18、黑盒测试有两种基本方法,即:

    通过测试,失败测试
    二、选择题(每题3分,共10题,分数为30分)

    1. 下列哪一项不是白盒测试?(C)
      A.单元测试 B.集成测试 C.系统测试 D.回归测试
    2. 属于黑盒测试的方法?©
      A.基于基本路径 B.控制流 C.基于用户需求测试 D.逻辑覆盖
      3.在Assert类中断言对象为NULL是_____。(C)
      A.assertEquals B.assertTrue C.assertNull D.fail
      4.的目的是对最终软件系统进行全面的测试确保最终软件系统产品满足需求。(A)
      A.系统测试   B.集成测试   
      C.单元测试     D.功能测试
      5.在Assert类中断言两个对象相等是
      。(A)
      A.assertEquals B.assertTrue C.assertSame D.fail
      6.有一组测试用例使得每一个被测试用例的分支覆盖至少被执行一次,它满足的覆盖标准
      _____。(B)
      A. 语句覆盖 B.判定覆盖 C.条件覆盖 D.路径覆盖
    3. 在Assert类中断言测试失败是_____。(D)
      A.assertEquals B.assertTrue C.assertSame D.fail
      8.软件测试的目的是___________。(C)
      A.表明软件的正确性  B.评价软件质量  
      C.尽可能发现软件中的错误    D.判定软件是否合格
      9.关于白盒测试与黑盒测试的最主要区别,正确的是___________。(A)
      A.白盒测试侧重于程序结构,黑盒测试侧重于功能  
      B.白盒测试可以使用测试工具,黑盒测试不能使用工具   
      C.白盒测试需要程序参与,黑盒测试不需要   
      D.黑盒测试比白盒测试应用更广泛
      10.软件测试类型按开发阶段划分___________。(B)
      A.需要测试﹑ 单元测试﹑集成测试 
      B.单元测试﹑集成测试﹑确认测试﹑系统测试﹑验收测试   
      C.单元测试 ﹑集成测试﹑确认测试  
      D.调试﹑单元测试﹑功能测试
      11.在Junit中,testXXX()方法就是一个测试用例,测试方法是______。(B)
      A. private void testXXX()  B.public void testXXX()      
      C. public float testXXX()  D.public int testXXX() 
      12.在下面所列举中的逻辑测试覆盖中,测试覆盖最强的是__________。(B)
      A.条件覆盖  B.条件组合覆盖   
      C.语句覆盖     D.判定覆盖
      13.在下面所列举中的逻辑测试覆盖中,测试覆盖最弱的是__________。(C)
      A.条件覆盖  B.条件组合覆盖  
      C.语句覆盖     D.判定覆盖
      14.软件测试是软件质量保证的重要手段,下述哪种测试是软件测试的最基础环节?(B)
      A.集成测试 B.单元测试 
      C.目的测试 D.确认测试
      15.增量式集成测试有3种方式:自顶向下增量测试方法, 和混合增量测试方式。(B)
      A.自中向下增量测试方法 B.自底向上增量测试方法
      C.多次性测试 D.维护
      16.Junit的TestCase类提供 和tearDown()方法,分别完成对测试环境的建立和拆除。(A)
      A.setUp()
      B.set()
      C.setap()
      D.setDown()
    4. 方法根据输出对输入的依赖关系设计测试用例。(C)
      A.路径测试      B.等价类            
      C.因果图        D.归纳测试
      18.Junit测试在单元测试阶段测试,主要用于
      。(A)
      A. 白盒测试 B.灰盒测试      
      C. 黑盒测试      D.确认测试
      19.不属于白盒测试的技术是
      ________。(C)
      A.路径覆盖 B.判定覆盖
      C.边界值分析 D.条件覆盖
      20.软件测试过程中的集成测试主要是为了发现___________阶段的错误码。(B)
      A.需求分析 B.概要设计
      C.编码 D.维护
      21.增量式集成测试有3种方式: ,自底向上增量测试方法和混合增量测试方式。(A)
      A.自顶向下增量测试方法 B.一次性集成测试
      C.多次性测试 D.维护
      22.Junit适用于java开发人员在______阶段,进行单个方法实现功能或者类本身的测试,主要用于白盒测试。(C)
      A.集成测试 B.验收测试      
      C.单元测试   D.确认测试
      23.软件测试是按照特定的规程,的过程。(A)
      A.发现软件错误 B. 说明程序正确      
      C.证明程序没有错误   D.设计并运行测试用例
      24.一个成功的测试是
      。(B)
      A.发现错误码 B. 发现了至今尚未发现的错误     
      C.没有发现错误码 D.证明发现不了错误
      25.按照测试组织划分,软件测试可分为:开发方测试,第三方测试, ___________。(C)
      A.集成测试 B.确认测试 
      C.用户测试 D.灰盒测试
      26.下列模型哪个软件测试过程模型 ___________。(A)
      A.W模型 B.漠布模型
      C.L模 型 D.G模型
      27.Junit有两个包:和Junit.extensions。(B)
      A.Junit.frametest B. Junit.framework    
      C.Junit.amework   D.Junit.assert
      28.单元测试一般以__________为主。(A)
      A.白盒测试 B. 黑盒测试    
      C.系统测试   D.分析测试
      29.编码阶段产生的错误由__________检查出来的。(A)
      A.单元测试 B. 集成测试    
      C.系统测试   D.有效性测试
      30.代码检查法有桌面检查法,走查和
      。(B)
      A.静态测试 B. 代码审查    
      C.动态测试    D.白盒测试

    三﹑简答题(每题10分,共4题,分数为40分)
    1.计算环路复杂度方法有哪三种?
    答:(1)V(G)=判定节点数+ 1 ;
    (2)V(G) = E-N+2 ;
    (3)V(G)=区域数+ 1
    2.白盒测试有几种方法?
    答:白盒测试方法分为两大类:静态测试方法和动态测试方法。
    静态测试方法:检查软件的表示和描述是否一致,没有冲突或者没有歧义。
    动态测试方法:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖。
    3.什么是软件测试,软件测试分为哪几个阶段。
    答:软件测试是为了发现程序中的错误而执行程序的过程。
    软件测试一般分为单元测试、集成测试和系统测试。
    4.比较白盒测试和黑盒测试?
    答:使用白盒测试方法时,测试根据程序的内部逻辑和指定的覆盖标准;
    黑盒测试法是通过分析程序的接口功能设计测试用例的。
    5. 为以下程序段设计一组测试用例,要求分别满足语句覆盖、判定覆盖、条件覆盖。
    int test(int A,int B)
    {
    if((A>1) AND (B<10)) then
    X=A-B;
    if((A=2) OR (B>20)) then
    X=A+B;
    return x;
    }
    答:语句覆盖测试用例:A=2,B=0;
    判定覆盖测试用例:A=3,B=0;A=2,B=20;
    条件覆盖测试用例:A=2,B=0;A=0,B=21;

    1. 为以下程序段设计一组测试用例,要求分别满足语句覆盖、判定覆盖、条件覆盖。
      void DoWork (int x,int y,int z)
      {
      int k=0,j=0;
      if ( (x>3)&&(z<10) )
      { k=xy-1;
      j=sqrt(k);
      } //语句块1
      if ( (x==4)||(y>5) )
      { j=x
      y+10; } //语句块2
      j=j%3; //语句块3
      }
      答:语句覆盖测试用例:x=4、y=5、z=5;
      判定覆盖测试用例::x=4、y=5、z=5;x=2、y=5、z=5;
      条件覆盖测试用例:x=4、y=6、z=5 ;x=2、y=5、 z=15 ;
      7.某公司人事软件的工资计算模块的需求规格说明书中描述:
      (1)年薪制员工:严重过失,扣当月薪资的4%;过失,扣年终奖的2%.
      (2)非年薪制员工:严重过失,扣当月薪资的8%;过失,扣当月薪资的4%.
      根据题目内容列出条件和结果,给出决策表。
      答:条件:C1:年薪制
           C2:严重过失
      结果:e1:扣月4%
      e2: 扣月8%
      e3: 扣年2%
      1 2 3 4
      条件: C1
      C2 1 1 0 0
      1 0 1 0
      动作 e1
      e2
      e3 √ √

    8.看代码程序:
    void Sort ( int iRecordNum, int iType )
    1 {
    2 int x=0;
    3 int y=0;
    4 while ( iRecordNum> 0 )
    5 {
    6 If ( iType0 )
    7 x=y+2;
    8 else
    9 If ( iType
    1 )
    10 x=y+10;
    11 else
    12 x=y+20;
    13}
    14}

    要求(1)给以上代码画出控制流图(2)控制流图的环复杂度V(G),写出独立路径。
    (1)控制流图:
    (2)V(G)= 4
    路径1:4→14
    路径2:4→6→7→13 → 4 → 14
    路径3:4→6→9→10→13→4→14
    路径4:4→6→9→12→13→4→14

    1.从供选择的答案中选出应填入下列(   )中的字句。
    软件测试的目的是( A )。为了提高测试的效率,应该( B )。使用白盒测试方法时,确定测试数据应根据( C )和指定的覆盖标准。与设计测试数据无关的文档是( D )。
    软件的集成测试工作最好由( E )承担,以提高集成测试的效果。
    供选择的答案:
    A.     ① 评价软件的质量              ② 发现软件的错误
    ③ 找出软件中的所有错误            ④ 证明软件是正确的
    B.     ① 随机地选取测试数据                  
    ② 取一切可能的输入数据作为测试数据
    ③ 在完成编码以后制定软件的测试计划
    ④ 选择发现错误的可能性大的数据作为测试数据
    C.      ① 程序的内部逻辑                        ② 程序的复杂程度
    ③ 使用说明书                        ④ 程序的功能
    D.      ① 该软件的设计人员                  ② 程序的复杂程度
    ③ 源程序                              ④ 项目开发计划
    E.      ① 该软件的设计人员                  ② 该软件开发组的负责人
    ③ 该软件的编程人员                  ④ 不属于该软件开发组的软件设计人员
    2.请从供选择的答案中选出应填入下列(   )中的字句。
    程序的三种基本控制结构是( A )。它们的共同点是( B )。结构化程序设计的一种基本方法是( C )。软件测试的目的是( D )。软件调试的目的是( E )。
    供选择的答案:
    A.      ① 过程,子程序,分程序                  ② 顺序,条件,循环
    ③ 递归,堆栈,队列                        ④ 调用,返回,转移
    B.      ① 不能嵌套使用                      ② 只能用来写简单的程序
    ③ 已经用硬件实现                       ④ 只有一个入口和一个出口
    C.      ① 筛选法        ② 递归法       ③ 归纳法      ④ 逐步求精法
    D.      ① 证明程序中没有错误                  ② 发现程序中的错误
    ③ 测量程序的动态特性                  ④ 检查程序中的语法错误
    E.     ① 找出错误所在并改正之                  ② 排除存在错误的可能性
    3.从下列关于软件测试的叙述中,选出5条正确的叙述。
    (1) 用黑盒法测试时,测试用例是根据程序内部逻辑设计的。
    (2) 尽量用公共过程或子程序去代替重复的代码段。
    (3) 测试是为了验证该软件已正确地实现了用户的要求。
    (4) 对于连锁型分支结构,若有n个判定语句,则有2n条路径。
    (5) 尽量采用复合的条件测试,以避免嵌套的分支结构。
    (6) GOTO语句概念简单,使用方便,在某些情况下,保留GOTO语句反能使写出的程序更加简洁。
    (7) 发现错误多的程序模块,残留在模块中的错误也多。
    (8) 黑盒测试方法中最有效的是因果图法。
    (9) 在做程序的单元测试时,桩(存根)模块比驱动模块容易编写。
    (10) 程序效率的提高主要应通过选择高效的算法来实现。
    4.从供选择的答案中选出同下列关于软件测试的各条叙述关系最密切的字句。
    A.对可靠性要求很高的软件,例如操作系统,由第三者对源代码进行逐行检查。
    B.已有的软件被改版时,由于受到变更的影响,改版前正常的功能可能发生异常,性能也可能下降。因此,对变更的软件进行测试是必要的。
    C.在意识到被测试模块的内部结构或算法的情况下进行测试。
    D.为了确认用户的需求,先做出系统的主要部分,提交给用户试用。
    E.在测试具有层次结构的大型软件时,有一种方法是从上层模块开始,由上到下进行测试。此时,有必要用一些模块替代尚未测试过的下层模块。
    供选择的答案:
    AE: ① 仿真器       ② 代码审查   ③ 模拟器       ④ 桩             ⑤ 驱动器
    ⑥ 域测试       ⑦ 黑盒测试   ⑧ 原型      ⑨ 白盒测试       ⑩ 退化测试
    三、判断题:共10小题,每小题1分,满分10分;请将答案以“√”、“×”形式填入题后括号中。
    1.好的测试员不懈追求完美。( F )
    2.测试程序仅仅按预期方式运行就行了。( F )
    3.不存在质量很高但可靠性很差的产品。( T )
    4.在没有产品说明书和需求文档的条件下可以进行动态黑盒测试。( T )
    5.静态白盒测试可以找出遗漏之处和问题。( T )
    6.测试错误提示信息不属于文档测试范围。( F )
    7.单元测试能发现约80%的软件缺陷。( T )
    8.代码评审是检查源代码是否达到模块的要求。( T )
    9.自顶向下集成需要测试员编写程序。( F )
    10.总是首先设计黑盒测试用例。( T )
    一、名词解释(5×3=15分)
    1.验收测试
    是软件产品完成了功能测试和系统测试之后,在产品发布之前所进行的软件测试活动。
    2.失败测试
    纯粹为了破坏软件而设计和执行的测试案例,被称为失败测试。
    3.驱动模块
    驱动模块就是用来代替主模块,用它来调用子模块
    4. 桩模块
    集成测试前要为被测模块编制一些模拟其下级模块功能的“替身”模块,以代替被测模块的接口,接受或传递被测模块的数据,这些专供测试用的“假”模块称为被测模块的桩模块。
    5.白盒测试
    也称为结构化测试、基于代码的测试,是一种测试用例设计方法,它从程序的控制结构导出测试用例。

    六.综合题(1×20=20分)
    输入条件 有效等价类 无效等价类
    开头字符 由0x或0X开头 (1) 以字母开头 以非0数字开头 (2)(3)
    数值字符 数字或A—F的字母 (4) A—F以外的字母 (5)
    数值字符个数 ≥1个 (6) 0个 (7)
    数值 ≥-7f且≤7f (8) <-7f
    >7f (9)(10)
    用例1:0x7F,      覆盖等价类(1)(4)(6)(8)
         用例2:-0Xb,      覆盖等价类(1)(4)(6)(8)
         用例3:0X0,       覆盖等价类(1)(4)(6)(8)
         用例4:0x,        覆盖等价类(1)(7)
         用例5:A7,        覆盖等价类(2)
         用例6:-1A,       覆盖等价类(3)
         用例7:0X8h,      覆盖等价类(1)(5)
         用例8:0x80,      覆盖等价类(1)(4)(10)
         用例9:-0XaB,     覆盖等价类(1)(4)(9)
    -------------------------------------------------------------------------------------------综合题:
    1.如图显示某程序的逻辑结构。试为它设计足够的测试用例,分别实现对程序的判定覆盖、条件覆盖和条件组合覆盖。(20分)(每空

    答案:

    覆盖种类 需满足的条件 测试数据 期望结果
     
    判定覆盖 A>1, B=0 A=2, B=0 执行S1
    A>1, B0或
    A1, B=0或
    A1, B0 A=2, B=1或
    A=1, B=0或
    A=1, B=1  
    执行S2
     
    条件覆盖 以下四种情况各出现一次  
     
    A>1 B=0 A=2,B=0 执行S1
    A1 B0 A=1,B=1 执行S2
     
    条件组合
    覆盖 A>1, B=0 A=2, B=0 执行S1
    A>1, B0 A=2, B=1 执行S2
    A1, B=0 A=1, B=0 执行S2
    A1, B0 A=1, B=1 执行S2

    2、有二元函数f(x,y),其中x∈[1,21],y∈[1,31];请写出该函数采用基本边界值分析法设计的测试用例。(10分)
    答:{ <1,15>, <2,15>, <20,15>, <21,15>, <10,15>, <10,1>, <10,2>, <10,30>, <10,31> }
    3.设一个控制流图如下,请给出环形复杂度和基本测试路径。(20分)

    答案:(1) 根据程序环形复杂度的计算公式,求出程序路径集合中的独立路径数目。
    公式1:V(G)=11-9+2,其中10是控制流图G中边的数量,8是控制流图中节点的数目。
    公式2:V(G)=3+1,其中3是控制流图G中判断节点的数目。
    公式3:V(G)=4,其中4是控制流图G中区域的数目。
    因此,控制流图G的环形复杂度是4。
    (2) 根据上面环形复杂度的计算结果,源程序的基本路径集合中有4条独立路径:
    路径1:5->22
    路径2:5->7, 8->11, 12->21->5->22
    路径3:5->7, 8->16->17->19->21->5->22
    路径4:5->7, 8->16->18->19->21->5->22
    4、设有一个档案管理系统,要求用户输入以年月表示的日期。假设日期限定在1999年1月~2029年12月,并规定日期由6位数字字符组成,前4位表示年,后2位表示月。现用等价类划分法设计测试用例,来测试程序的"日期检查功能"。(20分)
      1)划分等价类并编号,下表等价类划分的结果
    输入等价类 有效等价类 无效等价类
    日期的类型及长度 ①6位数字字符 ②有非数字字符
    ③少于6位数字字符
    ④多于6位数字字符
    年份范围 ⑤在1999~2029之间 ⑥小于1999
    ⑦大于2029
    月份范围 ⑧在01~12之间 ⑨等于00
    ⑩大于12
      2)设计测试用例,以便覆盖所有的有效等价类在表中列出了3个有效等价类,编号分别为①、⑤、⑧,设计的测试用例如下:
    测试数据    期望结果      覆盖的有效等价类
    200211      输入有效      ①、⑤、⑧
    为每一个无效等价类设计一个测试用例,设计结果如下:
    测试数据   期望结果     覆盖的无效等价类
    99June     无效          ②
    20036      无效           ③
    2001006    无效         ④
    199712     无效         ⑥
    203001     无效         ⑦
    200100     无效         ⑨
    200113     无效         ⑩

    四 简答题(30分)
    1.试描述软件测试的定义?(3分)
    答:利用手工或者自动化的方式,按照测试方案对系统执行测试用例的过程叫做软件测试。
    2.什么是软件缺陷?(4分)
    答:满足以下条件的问题都叫缺陷:
    软件未达到产品说明书中已标明的功能
    软件出现了产品说明书中指明不会出现的错误
    软件功能超出了产品说明书指明的范围
    软件未达到产品说明书虽未指出但应达到的目标
    软件测试员认为软件难以理解,不易使用,运行速度缓慢,或者最终用户认为该软件使用效果不好。
    3.常见的黑盒测试用例的设计方法?并分别简单介绍一下各自的思想。(8分)
    答:等价类划分:等价类划分法是一种重要的、常用的黑盒测试方法,它将不能穷举的测试过程进行合理分类,从而保证设计出来的测试用例具有完整性和代表性。
    边界值分析:对输入输出的边界值进行测试的一种黑盒测试方法。
    决策表法:决策表是分析和表达多逻辑条件下执行不同操作的情况的工具
    因果图分析法:是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。
    错误推测法:基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法。
    4. 列举常见的系统测试方法。答出来5个即可。(5分)
    答:恢复测试安全测试强度测试性能测试正确性测试可靠性测试兼容性测试Web测试
    5.文档测试主要测试哪些内容?答出来5点即可(5分)
    答:(1)检查产品说明书属性(2)检查是否完整(3)检查是否准确(4)检查是否精确(5)检查是否一致(6)检查是否贴切(7)检查是否合理(8)检查代码无关(9)检查可测试性
    6. 单元测试主要测试那几方面的问题?(5分)
    答:模块接口、局部数据结构、边界条件、独立的路径和错误处理。

    五,设计题
    1.
    输入条件 有效等价类 无效等价类
    是否三角形的三条边 A>0 (1) A≤0 (7)
    B>0 (2) B≤0 (8)
    C>0 (3) C≤0 (9)
    A+B>C (4) A+B≤C (10)
    A+C>B (5) A+C≤B (11)
    B+C>A (6) B+C≤A (12)
    是否等腰三角形 A=B (13) A≠B AND A≠B AND B≠C (16)
    B=C (14)
    C=A (15)
    是否等边三角形 A=B AND A=C AND B=C(17) A≠B (18)
    A≠B (19)
    A≠B (20)

    编号 【A B C 】 覆盖等价类 输出
    1 【3、4、5】 (1)、 (2)、 (3)、 (4)、 (5)、 (6) 一般三角形
    2 【0、1、2】 (7)、 不能构成三角形
    3 【1、0、2】 (8)、
    4 【1、2、0】 (9)、
    5 【1、2、3】 (10)、
    6 【1、3、2】 (11)、
    7 【3、1、2】 (12)、
    8 【3、3、4】 (1)、 (2)、 (3)、 (4)、 (5)、 (6)、(13) 等腰三角形
    9 【3、4、4】 (1)、 (2)、 (3)、 (4)、 (5)、 (6)、(14)
    10 【3、4、3】 (1)、 (2)、 (3)、 (4)、 (5)、 (6)、(15)
    11 【3、4、5】 (1)、 (2)、 (3)、 (4)、 (5)、 (6)、(16) 非等腰三角形
    12 【3、3、3】 (1)、 (2)、 (3)、 (4)、 (5)、 (6)、(17) 等边三角形
    13 【3、4、4】 (1)、 (2)、 (3)、 (4)、 (5)、 (6)、(18) 非等边三角形
    14 【3、4、3】 (1)、 (2)、 (3)、 (4)、 (5)、 (6)、(19)
    15 【3、3、4】 (1)、 (2)、 (3)、 (4)、 (5)、 (6)、(20)

    一、单项选择题:共20小题,每小题2 分,满分40分。
    1.软件测试的目的:( c )
    A. 避免软件开发中出现的错误
    B. 发现软件开发中出现的错误
    C. 尽可能发现并排除软件中潜藏的错误,提高软件的可靠性
    D. 修改软件中出现的错误
    2、软件测试是采用( a )执行软件的活动。
    A.测试用例
    B.输入数据
    C.测试环境
    D.输入条件
    3、导致软件缺陷的最大原因是:( a )
    A.软件需求说明书
    B.设计方案
    C.编码
    D.维护
    4、在下列描述中,关于一个软件缺陷状态完整变化的错误描述是( d )
    A、打开——修复——关闭
    B、打开——关闭
    C、打开——保留
    D、激活——修复——重新打开
    5、在下列描述中,关于测试与调试的说法错误的是( d )
    A、测试是显示错误的行为;而调试是推理的过程;
    B、测试显示开发人员的错误。调试是开发人员为自己辩护;
    C、测试能预期和可控。调试需要想象、经验和思考;
    D、测试必须在详细设计已经完成的情况下才能开始;没有详细设计的信息调试不可能进行。
    6、某次程序调试没有出现预计的结果,下列( b )不可能是导致出错的原因。
    A.变量没有初始化 B.编写的语句书写格式不规范
    C.循环控制出错 D.代码输入有误
    7、软件缺陷修复的代价最高的阶段为( a )
    A、发布阶段 B、需求阶段
    C、设计阶段 D、编码阶段
    8、不属于逻辑覆盖方法的是( d )。
    A.组合覆盖 B.判定覆盖
    C.条件覆盖 D.接口覆盖
    9、( d )是选择若干个测试用例,运行被测程序,使得程序中的每个可执行语句至少执行一次。
    A、条件覆盖 B、组合覆盖
    C、判定覆盖 D、语句覆盖
    10、( a )是设计足够多的测试用例,使得程序中每个判定包含的每个条件的所有情况(真/假)至少出现一次,并且每个判定本身的判定结果(真/假)也至少出现一次。
    A、判定-条件覆盖 B、组合覆盖
    C、判定覆盖 D、条件覆盖
    11.软件测试是软件质量保证的重要手段,下述哪种测试是软件测试的最基础环节?( b )
    A.功能测试
    B.单元测试
    C.结构测试
    D.验收测试
    12、单元测试的主要任务不包括( b )。
    A.出错处理 B.全局数据结构
    C.独立路径 D.模块接口
    13、如下图所示的N-S图,至少需要( b )个测试用例完成逻辑覆盖。

    A.12 B.48
    C.27 D.18
    14、单元测试中用来模拟实现被测模块需调用的其他功能模块的是( b )。
    A.驱动模块 B.桩模块
    C.主控模块 D.真实的被调用模块
    15、集成测试计划应该在( b )阶段末提交。
    A、需求分析 B、概要设计
    C、详细设计 D、单元测试完成
    16、下列关于程序效率的描述错误的是( c )。
    A.提高程序的执行速度可以提高程序的效率
    B.降低程序占用的存储空间可以提高程序的效率
    C.源程序的效率与详细设计阶段确定的算法的效率无关
    D.好的程序设计可以提高效率
    17、下列( b )是对程序流程图进行简化后得到的,它可以更加突出的表示程序控制流的结构,且不包含复合条件。
    A.DD-路径图 B. 控制流图
    C.MM-路径图 D. 模块调用图
    18、自底向上增量式集成测试中,下面( c )描述是正确的。
    A.测试由桩模块控制
    B.最上面的模块最先测试
    C.父单元用测试过的子单元测试
    D.包含树的深度优先或广度优先遍历过程
    19、测试后程序中残存的错误数目与该程序中已发现的错误数目成( d )。
    A.未知 B.反比
    C.相等 D.正比
    20、针对是否对无效数据进行测试,可以将等价类测试分为(b )
    1)标准(一般)等价类测试
    2)健壮等价类测试
    3)弱等价类测试
    4)强等价类测试
    A.3)4) B.1)2)
    C.1)3) D.2)4)

    二、判断题:共20小题,每题1分,满分20分)
    1、一个程序中所含有的路径数与程序的复杂程度有着直接的关系。( ∨ )
    2、结构性测试是根据软件的规格说明来设计测试用例。( x )
    3、错误推测法是根据输出对输入的依赖关系来设计测试用例的。(x )
    4、软件缺陷属性包括缺陷标识、缺陷类型、缺陷严重程度、缺陷产生可能性、缺陷优先级、缺陷状态、缺陷起源、缺陷来源、缺陷原因。(∨ )
    5、对于一个含有n个变量的程序,采用边界值健壮性测试方法来测试程序会产生6n+1个测试用例。(∨)
    6、数据流测试是主要用作路径测试的真实性检查。两种形式分别为定义/使用测试、基于程序片的测试。(∨ )
    7、软件只要经过严格严谨的内部测试之后,可以做到没有缺陷。(x )
    8、测试用例应由测试输入数据和对应的实际输出结果这两部分组成。( x )
    9、测试是可以穷尽的。( x )
    10、测试自动化是万能的。( x )
    11、软件缺陷可能会被修复,可能会被保留或者标识出来。( ∨ )
    12、每一个软件项目都有一个最优的测试量。( ∨ )
    13、黑盒测试往往会造成测试用例之间可能存在严重的冗余和未测试的功能漏洞。(∨ )
    14、代码审查工作属于静态测试。( ∨ )
    15、软件测试是一个过程,包含若干活动,运行软件进行测试只是活动之一。(∨ )
    16、回归测试是在软件修改后再次运行以前为查找错误而执行程序曾用过的测试用例. ∨  
    17、集成测试是为确定软件系统是否满足验收标准以及使客户决定是否接受而进行的正式测试.  ( x )
    18、测试按照测试层次可以划分成为单元测试、集成测试和系统测试。( ∨ )
    19、只要能够达到100%的逻辑覆盖率,就可以保证程序的正确性。( x )
    20、永远有缺陷类型会在测试的一个层次上被发现,并且能够在另一个层次上逃避检测。(∨ )
    三、简答题:共4小题,每题5分,满分20分。
    1、优秀的软件测试工程师应具备哪些素质?
    答:具有探索精神、具有良好的计算机编程基础、故障排除能手、坚持不懈的精神、具有创新精神和超前意识、追求完美、判断准确、具有整体观念,对细节敏感、团队合作精神,沟通能力
    2、有二元函数f(x,y),其中x∈[1,12],y∈[1,31];请写出该函数采用基本边界值分析法设计的测试用例。
    答:{ <1,15>, <2,15>, <11,15>, <12,15>, <6,15>,
    <6,1>, <6,2>, <6,30>, <6,31> }
    3、黑盒测试与白盒测试各有哪些优缺点,应该如何结合才能解决漏洞和冗余问题?
    答:功能性测试具有两大优点:功能性测试与软件如何实现无关;测试用例开发可以与实现并行进行,因此可以压缩总的项目开发时间。缺点:测试用例之间可能存在严重的冗余,还会有位测试的软件漏洞。结构性测试局限于已经完成的代码行为当中,离代码太近。因此可以结构性测试指标去解决冗余和漏洞问题。如果发现同一条程序路径被多个功能性测试用例遍历,就可以怀疑这种冗余不会发生新的缺陷,如果没有达到一定的DD—路径覆盖,则可知在功能性测试用力中存在漏洞。因此路径测试可以提供作为功能性测试交叉检查的一组指标。
    4、有一段程序如下,请设计测试用例以满足语句覆盖要求。
    void DoWork (int x,int y,int z)
    {
    int k=0,j=0;
    if ( (x>3)&&(z<10) )
    { k=xy-1;
    j=sqrt(k);
    } //语句块1
    if ( (x==4)||(y>5) )
    { j=x
    y+10; } //语句块2
    j=j%3; //语句块3
    }
    答:要实现DoWork函数的语句覆盖,只需设计一个测试用例就可以覆盖程序中的所有可执行语句。

    四、综合题:共2小题,每题10分,满分20分。
    1、使用基本路径测试方法,为以下程序段设计测试用例。
    (1)画出程序的控制流图,编号已经给出。
    (2)计算程序的循环复杂度,导出程序基本路径集中的独立路径条数。
    (3)导出基本路径集,确定程序的独立路径。
    (4)根据(3)中的独立路径,设计测试用例(确保基本路径集中的每一条路径的执行)的输入数据和预期输出。
    void Do (int X,int A,int B)
    {
    1 if ( (A>1)&&(B=0) )
    2 X = X/A;
    3 if ( (A=2)||(X>1) )
    4 X = X+1;
    5 }
    由于控制流图假设的是单条件,因此对于复合条件,可将其分解为多个单个条件,并映射成控制流图。
    1: A>1;2: B=0 ;3: X = X/A ;4: A=2 ;5:X>1 ;6: X = X+1;7: }

    2、场景要求:”……对功率大于50马力的机器、维修记录不全或已运行10年以上的机器,应给予优先的维修处理……” 。这里假定,“维修记录不全”和“优先维修处理”均已在别处有更严格的定义 。请建立决策表。
    (1) 确定规则的个数。
    (2) 列出所有的条件桩和动作桩。
    (3) 填入条件项。
    (4) 填入动作项,得到初始决策表。
    (5) 简化决策表,合并相似规则。
    二、简答题(4×5=20分)
    1.答:具有探索精神、具有良好的计算机编程基础、故障排除能手、坚持不懈的精神、具有创新精神和超前意识、追求完美、判断准确、具有整体观念,对细节敏感、团队合作精神,沟通能力。
    1.具有良好的计算机编程基础,有一定的软件开发经验;有逆向思维的能力
    2.善于同软件开发人员沟通;善于同领导沟通
    3.掌握一些自动化测试工具;善于学习的能力
    4.提高自己的表达能力 ; 了解业务知识
    5.具有探索精神;故障排除能手
    6.坚持不懈的精神;具有创新精神和超前意识
    7.追求完美;判断准确;具有整体观念,对细节敏感;团队合作精神
    2.答:{ <1,15>, <2,15>, <11,15>, <12,15>, <6,15>,
    <6,1>, <6,2>, <6,30>, <6,31> }
    3.答:功能性测试具有两大优点:功能性测试与软件如何实现无关;测试用例开发可以与实现并行进行,因此可以压缩总的项目开发时间。缺点:测试用例之间可能存在严重的冗余,还会有位测试的软件漏洞。结构性测试局限于已经完成的代码行为当中,离代码太近。因此可以结构性测试指标去解决冗余和漏洞问题。如果发现同一条程序路径被多个功能性测试用例遍历,就可以怀疑这种冗余不会发生新的缺陷,如果没有达到一定的DD—路径覆盖,则可知在功能性测试用力中存在漏洞。因此路径测试可以提供作为功能性测试交叉检查的一组指标。
    4.答:要实现DoWork函数的语句覆盖,只需设计一个测试用例就可以覆盖程序中的所有可执行语句。
    测试用例输入为:{ x=4、y=5、z=5 }
    三、综合题(每题10分,共计20分)
    1、画出控制流图: 如右图所示
    计算环形复杂度:
    10(条边)- 7(个节点)+ 2 = 5
    导出独立路径(用语句编号表示)
    路径1:1→2→3→4→5→6→7
    路径2:1→4→5→6→7
    路径3:1→2→4→6→7
    路径4:1→2→4→5→7
    路径5:1→2→3→4→5→7
    测试用例
    用例号 路径 输入数据
    A B X 预期输出
    X
    TC1 1→2→3→4→5→6→7 3 0 6 3
    TC2 1→4→5→6→7 0 1 3 4
    TC3 1→2→4→6→7 2 1 1 2
    TC4 1→2→4→5→7 3 1 0 0
    TC5 1→2→3→4→5→7 3 0 3 1
    2.解答:
    ①确定规则的个数:这里有3个条件,每个条件有两个取值,故应有222=8种规则。
    ②列出所有的条件桩和动作桩:

    ③填入条件项。可从最后1行条件项开始,逐行向上填满。
    如第三行是: Y N Y N Y N Y N
    第二行是: Y Y N N Y Y N N
    等等。
    ④填入动作项。这样便得到形如图的初始判定表。

    ⑤化简。合并相似规则后得到结果图。

    展开全文
  • 软件测试面试题及答案,2021最强版!

    万次阅读 多人点赞 2021-03-06 14:13:21
    软件测试面试题及答案,2021最强版!

    1、你的测试职业发展是什么?

    测试经验越多,测试能力越高。所以我的职业发展是需要时间积累的,一步步向着高级测试工程师奔去。而且我也有初步的职业规划,前3年积累测试经验,按如何做好测试工程师的要点去要求自己,不断更新自己改正自己,做好测试任务。

    2、你认为测试人员需要具备哪些素质

    做测试应该要有一定的协调能力,因为测试人员经常要与开发接触处理一些问题,如果处理不好的话会引起一些冲突,这样的话工作上就会不好做。还有测试人员要有一定的耐心,有的时侯做测试很枯燥乏味。除了耐心,测试人员不能放过每一个可能的错误。

    3、你为什么能够做测试这一行

    虽然我的测试技术还不是很成熟,但是我觉得我还是可以胜任软件测试这个工作的,因为做软件测试不仅是要求技术好,还有有一定的沟通能力,耐心、细心等外在因素。综合起来看我认为我是胜任这个工作的。

    4、测试的目的是什么?

    测试的目的是找出软件产品中的错误,是软件尽可能的符合用户的要求。当然软件测试是不可能找出全部错误的。

    5、测试分为哪几个阶段?

    一般来说分为5个阶段:单元测试、集成测试、确认测试、系统测试、验收测试

    6、单元测试的测试对象、目的、测试依据、测试方法?

    测试对象是模块内部的程序错误,目的是消除局部模块逻辑和功能上的错误和缺陷。测试依据是模块的详细设计,测试方法是采用白盒测试。

    7、怎样看待加班问题

    加班的话我没有太多意见,但是我还是觉得如果能够合理安排时间的话,不会有太多时候加班的。

    8、结合你以前的学习和工作经验,你认为如何做好测试。

    根据我以前的工作和学习经验,我认为做好工作首先要有一个良好的沟通,只有沟通无障碍了,才会有好的协作,才会有更好的效率,再一个就是技术一定要过关,做测试要有足够的耐心,和一个良好的工作习惯,不懂的就要问,实时与同事沟通这样的话才能做好测试工作。

    9、你为什么选择软件测试行业

    因为之前了解软件测试这个行业,觉得他的发展前景很好。

    10、根据你以前的工作或学习经验描述一下软件开发、测试过程,由哪些角色负责,你做什么

    要有架构师、开发经理、测试经理、程序员、测试员。我在里面主要是负责所分到的模块执行测试用例。

    11、根据你的经验说说你对软件测试/质量保证的理解

    软件质量保证与测试是根据软件开发阶段的规格说明和程序的内部结构而精心设计的一批测试用例(即输入数据和预期的输出结果),并根据这些测试用例去运行程序,以发现错误的过程。它是对应用程序的各个方面进行测试以检查其功能、语言有效性及其外观排布。

    12、软件测试的流程是什么?

    需求调查:全面了解系统概况、应用领域、软件开发周期、软件开发环境、开发组织、时间安排、功能需求、性能需求、质量需求及测试要求等。根据系统概况进行项目所需的人员、时间和工作量估计以及项目报价。

    制定初步的项目计划。

    测试准备:组织测试团队、培训、建立测试和管理环境等。

    测试设计:按照测试要求进行每个测试项的测试设计,包括测试用例的设计和测试脚本的开发等。

    测试实施:按照测试计划实施测试。

    测试评估:根据测试的结果,出具测试评估报告。

    13、你对SQA的职责和工作活动(如软件度量)的理解?

    SQA就是独立于软件开发的项目组,通过对软件开发过程的监控,来保证软件的开发流程按照指定的CMM规程(如果有相应的CMM规程),对于不符合项及时提出建议和改进方案,必要时可以向高层经理汇报以求问题的解决。通过这样的途径来预防缺陷的引入,从而减少后期软件的维护成本。SQA主要的工作活动包括制定SQA工作计划,参与阶段产物的评审,进行过程质量、功能配置及物理配置的审计等;对项目开发过程中产生的数据进行度量等等。

    14、说说你对软件配置管理的理解

    项目在开发过程中要用相应的配置管理工具对配置项(包括各个阶段的产物)进行变更控制,配置管理的使用取决于项目规模和复杂性及风险的水平。软件的规模越大,配置管理就越显得重要。还有在配置管理中,有一个很重要的概念,那就是基线,是在一定阶段各个配置项的组合,一个基线就提供了一个正式的标准,随后的工作便基于此标准,并只有经过授权后才能变更这个标准。配置管理工具主要有CC,vSS, cVS,SVN等,我只用过SVN,对其他的工具不是很熟悉。

    15、怎样写测试计划和测试用例

    简单点,测试计划里应有详细的测试策略和测试方法,合理详尽的资源安排等,至于测试用例,那是依赖于需求(包括功能与非功能需求)是否细化到功能点,是否可测试等。

    16、说说主流的软件工程思想(如CMM、CMMI、RUP ,XP, PSP,TSP 等)的大致情况及对他们的理解

    CMM :Sw Capability Maturity Model软件能力成熟度模型,其作用是软件过程的改进、评估及软件能力的评鉴。

    CMMI:Capability Maturity Mode1 Integration能力成熟度模型集成CMAI融入了大部分最新的软件管理实践,同时弥补了SW一CMM模型中的缺陷。

    RUP :rational unified process是软件工程话过程。

    XP:extreme program,即极限编程的意思,适用于小型团队的软件开发,像上面第三个问题就可以结合原型法采用这样的开发流程。要明白测试对于xp开发的重要性,强调测试(重点是单元测试)先行的理念。编程可以明显提高代码的质量,持续集成对于快速定位问题有好处。

    PSP,TSP分别是个体软件过程和群体软件过程。大家都知道,CMM只是告诉你做什么但并没有告诉你如何做,所以PSP/TSP 就是告诉你企业在实施CMM的过程中如何做,PSP强调建立个人技能(如何制定计划、控制质量及如何与其他人相互协作等等)。而TSP 着重于生产并交付高质量的软件产品(如何有效的规划和管理所面临的项目开发任务等等)。总之,实施CMM,永远不能真正做到能力成熟度的提升,只有将实施CMM与实施PSP和TSP有机结合起来,才能发挥最大的效力。因此,软件过程框架应该是CMM/PSP /TSP的有机集成。

    17、你是怎样保证软件质量的,也就是说你觉得怎样才能最大限度的保证软件的质量?

    测试并不能够最大限度的保证软件的质量,软件的高质量是开发和设计出来的,而不是测试出来的,它不仅要通过对软件开发流程的监控,使得软件开发的各个阶段都要按照指定的规程进行,通过对各个阶段产物的评审,QA对流程的监控,对功能及配置的审计来达到开发的最优化。当然测试也是保证软件质量的一个重要方式,是软件质量保证工程的一个重要组成部分。

    18、基于目前中国的国情,大多数公司的项目进度紧张、人员较少、需求文档根本没有或者很不规范,你认为在这种情况下怎样保证软件的质量?(大多数公司最想知道的就是在这种困难面前你该怎么保证软件的质量,因为这些公司一般就是这种情况–既不想投入过多又想保证质量)

    在这里插入图片描述

    测试技术面试题

    1、什么是兼容性测试?兼容性测试侧重哪些方面?

    参考答案:

    兼容测试主要是检查软件在不同的硬件平台、软件平台上是否可以正常的运行,即是通常说的软件的可移植性。

    兼容的类型,如果细分的话,有平台的兼容,网络兼容,数据库兼容,以及数据格式的兼容。

    兼容测试的重点是,对兼容环境的分析。通常,是在运行软件的环境不是很确定的情况下,才需要做兼容。根据软件运行的需要,或者根据需求文档,一般都能够得出用户会在什么环境下使用该软件,把这些环境整理成表单,就得出做兼容测试的兼容环境了。

    兼容和配置测试的区别在于,做配置测试通常不是Clean OS下做测试,而兼容测试多是在Clean OS的环境下做的。

    2、我现在有个程序,发现在Windows上运行得很慢,怎么判别是程序存在问题还是软硬件系统存在问题?

    参考答案:

    1、检查系统是否有中毒的特征;

    2、检查软件/硬件的配置是否符合软件的推荐标准;

    3、确认当前的系统是否是独立,即没有对外提供什么消耗CPU资源的服务;

    4、如果是C/S或者B/S结构的软件,需要检查是不是因为与服务器的连接有问题,或者访问有问题造成的;5、在系统没有任何负载的情况下,查看性能监视器,确认应用程序对CPU/内存的访问情况。

    3、测试的策略有哪些?

    参考答案:

    黑盒/白盒,静态/动态,手工/自动,冒烟测试,回归测试,公测(Beta测试的策略)

    4、正交表测试用例设计方法的特点是什么?

    参考答案:

    用最少的实验覆盖最多的操作,测试用例设计很少,效率高,但是很复杂;

    对于基本的验证功能,以及二次集成引起的缺陷,一般都能找出来;但是更深的缺陷,更复杂的缺陷,还是无能为力的;

    具体的环境下,正交表一般都很难做的。大多数,只在系统测试的时候使用此方法。

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

    参考答案:

    就是Bugzilla的状态转换图。

    6、你觉得bugzilla在使用的过程中,有什么问题?

    参考答案:

    界面不稳定;

    根据需要配置它的不同的部分,过程很烦琐。

    流程控制上,安全性不好界定,很容易对他人的Bug进行误操作;没有综合的评分指标,不好确认修复的优先级别。

    7、描述测试用例设计的完整过程?

    参考答案:

    需求分析+需求变更的维护工作;根据需求得出测试需求;

    设计测试方案,评审测试方案:

    方案评审通过后,设计测试用例,再对测试用例进行评审;

    8、单元测试的策略有哪些?

    参考答案:

    逻辑覆盖、循环覆盖、同行评审、桌前检查、代码走查、代码评审、景泰数据流分析

    9、LoadRunner分哪三部分?

    参考答案:

    用户动作设计;场录设计;测试数据分析;

    10、LoadRunner 进行测试的流程?

    参考答案:

    1、测试测试

    2、创建虚拟用户脚本

    3、创建运行场景

    4、运行测试脚本

    5、监视场景

    6、分析测试的结果

    以上,最好是结合-个案例,根据以上流程来介绍。

    11.什么是并发?在lordrunner中,如何进行并发的测试?集合点失败了会怎么样? .

    参考答案:

    在同一时间点,支持多个不同的操作。

    LoadRunner中提供IP伪装,集合点,配合虚拟用户的设计,以及在多台电脑上设置,可以比较好的模拟真

    实的并发。

    集合点,即是多个用户在某个时刻,某个特定的环境下同时进行虚拟用户的操作的。集合点失败,则集合点

    的才操作就会取消,测试就不能进行。

    12、使用QTP做功能测试,录制脚本的时候,要验证多个用户的登录情况/查询情况,如何操作?

    参考答案:

    分析用户登录的基本情况,得出一组数据,通过性测试/失败性测试的都有(根据TC来设计这些数据),然后录制登录的脚本,将关键的数据参数化,修改脚本,对代码进行加强,调试脚本。

    13、QTP中的Action有什么作用?有几种?

    参考答案:

    Action的作用

    用Action可以对步骤集进行分组

    步骤重组,然后被整体调用拥有自己的sheet

    组合有相同需求的步骤,整体操作具有独立的对象仓库

    Action的种类

    可复用Action不可复用Action外部Action

    14、TestDirector有些什么功能,如何对软件测试过程进行管理?

    参考答案:

    需求管理

    定义测试范围定义需求树

    描述需求树的功能点测试计划

    定义测试目标和测试策略。

    分解应用程序,建立测试计划树。确定每个功能点的测试方法。

    将每个功能点连接到需求上,使测试计划覆盖全部的测试需求。描述手工测试的测试步骤

    指明需要进行自动测试的功能点测试执行

    定义测试集合。

    为每个测试人员制定测试任务和测试日程安排。运行自动测试。

    缺陷跟踪

    记录缺陷

    查看新增缺陷,并确定哪些是需要修正的相关技术人员修改缺陷

    回归测试

    分析缺陷统计图表,分析应用程序的开发质量。

    15、你所熟悉的软件测试类型都有哪些﹖请试着分别比较这些不同的测试类型的区别与联系(如功能测试、性能测试……) ?

    参考答案:Compatibility Testing (兼容性测试),也称“Configuration testing(配置测试)”,测试软件是否和系统的其它与之交互的元素之间兼容,如:浏览器、操作系统、硬件等。验证测试对象在不同的软件和硬件配置中的运行情况。

    Functional testing(功能测试),也称为behavioral testing (行为测试),根据产品特征、操作描述和用户方案,测试一个产品的特性和可操作行为以确定它们满足设计需求。本地化软件的功能测试,用于验证应用程序或网站对目标用户能正确工作。使用适当的平台、浏览器和测试脚本,以保证目标用户的体验将足够好,就像应用程序是专门为该市场开发的一样。
    在这里插入图片描述

    Performance testing (性能测试),评价一个产品或组件与性能需求是否符合的测试。包括负载测试、强度测试、数据库容量测试、基准测试等类型。

    展开全文
  • 最全的软件测试面试(含答案

    千次阅读 2021-10-18 19:51:20
    用例编号 测试项目 测试标题 重要级别 预置条件 输入数据 执行步骤 预期结果 1、问:你在测试中发现了一个bug,但是开发经理认为这不是一个bug,你应该怎样解决? 首先,将问题提交到缺陷管理库里面进行备案。 ...

    软件的生命周期(prdctrm)

    计划阶段(planning)-〉需求分析(requirement)-〉设计阶段(design)-〉编码(coding)->测试(testing)->运行与维护(running maintrnacne)

    测试用例

    软件测试面试题

    用例编号  测试项目  测试标题  重要级别  预置条件  输入数据  执行步骤   预期结果

    1、问:你在测试中发现了一个bug,但是开发经理认为这不是一个bug,你应该怎样解决?

    首先,将问题提交到缺陷管理库里面进行备案。

    然后,要获取判断的依据和标准:

    根据需求说明书、产品说明、设计文档等,确认实际结果是否与计划有不一致的地方,提供缺陷是否确认的直接依据;

    如果没有文档依据,可以根据类似软件的一般特性来说明是否存在不一致的地方,来确认是否是缺陷;

    根据用户的一般使用习惯,来确认是否是缺陷;

    与设计人员、开发人员和客户代表等相关人员探讨,确认是否是缺陷;

    合理的论述,向测试经理说明自己的判断的理由,注意客观、严谨,不参杂个人情绪。

    等待测试经理做出最终决定,如果仍然存在争议,可以通过公司政策所提供的渠道,向上级反映,并有上级做出决定。

    2、问:给你一个网站,你如何测试?

    首先,查找需求说明、网站设计等相关文档,分析测试需求。

    制定测试计划,确定测试范围和测试策略,一般包括以下几个部分:功能性测试;界面测试;性能测试;数据库测试;安全性测试;兼容性测试

    设计测试用例:

    功能性测试可以包括,但不限于以下几个方面:

    链接测试。链接是否正确跳转,是否存在空页面和无效页面,是否有不正确的出错信息返回。

    提交功能的测试。

    多媒体元素是否可以正确加载和显示。

    多语言支持是否能够正确显示选择的语言等。

    界面测试可以包括但不限于一下几个方面:

    页面是否风格统一,美观

    页面布局是否合理,重点内容和热点内容是否突出

    控件是否正常使用

    对于必须但未安装的控件,是否提供自动下载并安装的功能

    文字检查

    性能测试一般从以下两个方面考虑:

    压力测试;负载测试;强度测试

    数据库测试要具体决定是否需要开展。数据库一般需要考虑连结性,对数据的存取操作,数据内容的验证等方面。

    安全性测试:

    基本的登录功能的检查

    是否存在溢出错误,导致系统崩溃或者权限泄露

    相关开发语言的常见安全性问题检查,例如SQL注入等

    如果需要高级的安全性测试,确定获得专业安全公司的帮助,外包测试,或者获取支持

    兼容性测试,根据需求说明的内容,确定支持的平台组合:

    浏览器的兼容性;

    操作系统的兼容性;

    软件平台的兼容性;

    数据库的兼容性

    开展测试,并记录缺陷。合理的安排调整测试进度,提前获取测试所需的资源,建立管理体系(例如,需求变更、风险、配置、测试文档、缺陷报告、人力资源等内容)。

    定期评审,对测试进行评估和总结,调整测试的内容。

    3、在搜索引擎中输入汉字就可以解析到对应的域名,请问如何用LoadRunner进行测试。

    建立测试计划,确定测试标准和测试范围

    设计典型场景的测试用例,覆盖常用业务流程和不常用的业务流程等

    根据测试用例,开发自动测试脚本和场景:

    录制测试脚本:新建一个脚本(Web/HTML协议);点击录制按钮,在弹出的对话框的URL中输入”about:blank”;在打开的浏览器中进行正常操作流程后,结束录制;调试脚本并保存,可能要注意到字符集的关联。

    设置测试场景:针对性能设置测试场景,主要判断在正常情况下,系统的平均事务响应时间是否达标;针对压力负载设置测试场景,主要判断在长时间处于满负荷或者超出系统承载能力的条件下,系统是否会崩溃;执行测试,获取测试结果,分析测试结果

    4、问:一台客户端有三百个客户与三百个客户端有三百个客户对服务器施压,有什么区别?

    300个用户在一个客户端上,会占用客户机更多的资源,而影响测试的结果。线程之间可能发生干扰,而产生一些异常。

    300个用户在一个客户端上,需要更大的带宽。

    IP地址的问题,可能需要使用IP Spoof来绕过服务器对于单一IP地址最大连接数的限制。

    所有用户在一个客户端上,不必考虑分布式管理的问题;而用户分布在不同的客户端上,需要考虑使用控制器来整体调配不同客户机上的用户。同时,还需要给予相应的权限配置和防火墙设置。

    5、试述软件的概念和特点?软件复用的含义?构件包括哪些?

    软件是计算机系统中与硬件相互依存的另一部分,与计算机系统操作有关的计算机程序、规程、规则,以及可能有的文件、文档及数据。

    软件复用(SoftWare Reuse)是将已有软件的各种有关知识用于建立新的软件,以缩减软件开发和维护的花费。软件复用是提高软件生产力和质量的一种重要技术。早期的软件复用主要是代码级复用,被复用的知识专指程序,后来扩大到包括领域知识、开发经验、设计决定、体系结构、需求、设计、代码和文档等一切有关方面。

    可以被复用的软件成分一般称作可复用构件

    6、软件生存周期及其模型是什么?

    软件生存周期(Software life cycle)又称为软件生命期,生存期。是指从形成开发软件概念起,所开发的软件使用以后,知道失去使用价值消亡为止的整个过程。一般来说,整个生存周期包括计划(定义)、开发、运行(维护)三个时期,每个时期又划分为若干个阶段。每个阶段有明确的任务。

    周期模型(典型的几种):

    瀑布模型

    快速原型模型:快速原型模型允许在需求分析阶段对软件的需求进行初步而非完全的分析和定义,快速设计开发出软件系统的原型,该原型向用户展示待开发软件的全部或部分功能和性能;用户对该原型进行测试评定,给出具体改进意见以丰富细化软件需求;开发人员据此对软件进行修改完善,直至用户满意认可之后,进行软件的完整实现及测试、维护。

    迭代模型:迭代包括产生产品发布(稳定、可执行的产品版本)的全部开发活动和要使用该发布必需的所有其他外围元素。在某种程度上,开发迭代是一次 完整地经过所有工作流程的过程:需求分析、设计、实施和测试工作流程。实质上,它类似小型的瀑布式项目。RUP认为,所有的阶段都可以细分为迭代。每一次 的迭代都会产生一个可以发布的产品,这个产品是最终产品的一个子集。

    生命周期阶段:

    软件计划与可行性分析

    需求分析

    软件设计

    编码

    软件测试

    运行与维护

    7、什么是软件测试?软件测试的目的与原则

    在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。

    软件测试的目的:

    测试是程序的执行过程,目的在于发现错误

    一个成功的测试用例在于发现至今未发现的错误

    一个成功的测试是发现了至今未发现的错误的测试

    确保产品完成了它所承诺或公布的功能,并且用户可以访问到的功能都有明确的书面说明。

    确保产品满足性能和效率的要求

    确保产品是健壮的和适应用户环境的

    软件测试的原则:

    测试用例中一个必须部分是对预期输出或接过进行定义

    程序员应避免测试自己编写的程序

    编写软件的组织不应当测试自己编写的软件

    应当彻底检查每个测试的执行结果

    测试用例的编写不仅应当根据有效和预料到的输入情况,而且也应当根据无效和未预料到的输入情况

    检擦程序是否“未做其应该做的”仅是测试的一半,测试的另一半是检查程序是否“做了其不应该做的”

    应避免测试用例用后即弃,除非软件本身就是个一次性的软件

    计划测试工作时不应默许假定不会发现错误

    程序某部分存在更多错误的可能性,与该部分已经发现错误的数量成正比

    软件测试是一项极富创造性,极具智力的挑战性的工作

    8、软件配置管理的作用?软件配置包括什么?

    软件配置管理(Software Configuration Management,SCM)是一种标识、组织和控制修改的技术。软件配置管理应用于整个软件工程过程。在软件建立时变更是不可避免的,而变更加剧了项目中软件开发者之间的混乱。SCM活动的目标就是为了标识变更、控制变更、确保变更正确实现并向其他有关人员报告变更。从某种角度讲,SCM是一种标识、组织和控制修改的技术,目的是使错误降为最小并最有效地提高生产效率。

    软件配置包括如下内容:配置项识别、工作空间管理、版本控制、变更控制、状态报告、配置审计

    9、什么是软件质量?

    概括地说,软件质量就是“软件与明确的和隐含的定义的需求相一致的程度”。具体地说,软件质量是软件符合明确叙述的功能和性能需求、文档中明确描述 的开发标准、以及所有专业开发的软件都应具有的隐含特征的程度。 影响软件质量的主要因素,这些因素是从管理角度对软件质量的度量。可划分为三组,分别反应用户在使用软件产品时的三种观点。正确性、健壮性、效率、完整性、可用性、风险(产品运行);可理解性、可维修性、灵活性、可测试性(产品修改);可移植性、可再用性、互运行性(产品转移)。

    10、目前主要的测试用例设计方法是什么?

    白盒测试:逻辑覆盖、循环覆盖、基本路径覆盖

    黑盒测试:边界值分析法、等价类划分、错误猜测法、因果图法、状态图法、测试大纲法、随机测试、场景法

    11、软件的安全性应从哪几个方面去测试?

    软件安全性测试包括程序、数据库安全性测试。根据系统安全指标不同测试策略也不同。

    用户认证安全的测试要考虑问题: 明确区分系统中不同用户权限 、系统中会不会出现用户冲突 、系统会不会因用户的权限的改变造成混乱 、用户登陆密码是否是可见、可复制 、是否可以通过绝对途径登陆系统(拷贝用户登陆后的链接直接进入系统)、用户退出系统后是否删除了所有鉴权标记,是否可以使用后退键而不通过输入口令进入 系统 、系统网络安全的测试要考虑问题 、测试采取的防护措施是否正确装配好,有关系统的补丁是否打上 、模拟非授权攻击,看防护系统是否坚固 、采用成熟的网络漏洞检查工具检查系统相关漏洞(即用最专业的黑客攻击工具攻击试一下,现在最常用的是 NBSI 系列和 IPhacker IP ) 、采用各种木马检查工具检查系统木马情况 、采用各种防外挂工具检查系统各组程序的外挂漏洞

    数据库安全考虑问题: 系统数据是否机密(比如对银行系统,这一点就特别重要,一般的网站就没有太高要求)、系统数据的完整性(我刚刚结束的企业实名核查服务系统中就曾存在数据 的不完整,对于这个系统的功能实现有了障碍) 、系统数据可管理性 、系统数据的独立性 、系统数据可备份和恢复能力(数据备份是否完整,可否恢复,恢复是否可以完整)

    12、什么是测试用例 什么是测试脚本 两者的关系是什么?

    为实施测试而向被测试系统提供的输入数据、操作或各种环境设置以及期望结果的一个特定的集合。

    测试脚本是为了进行自动化测试而编写的脚本。

    测试脚本的编写必须对应相应的测试用例

    13、简述什么是静态测试、动态测试、黑盒测试、白盒测试、α测试 β测试

    静态测试是不运行程序本身而寻找程序代码中可能存在的错误或评估程序代码的过程。

    动态测试是实际运行被测程序,输入相应的测试实例,检查运行结果与预期结果的差异,判定执行结果是否符合要求,从而检验程序的正确性、可靠性和有效性,并分析系统运行效率和健壮性等性能。

    黑盒测试一般用来确认软件功能的正确性和可操作性,目的是检测软件的各个功能是否能得以实现,把被测试的程序当作一个黑盒,不考虑其内部结构,在知道该程序的输入和输出之间的关系或程序功能的情况下,依靠软件规格说明书来确定测试用例和推断测试结果的正确性。

    白盒测试根据软件内部的逻辑结构分析来进行测试,是基于代码的测试,测试人员通过阅读程序代码或者通过使用开发工具中的单步调试来判断软件的质量,一般黑盒测试由项目经理在程序员开发中来实现。

    α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,Alpha测试不能由程序员或测试员完成。

    β测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,Beta测试不能由程序员或测试员完成。

    14、软件质量保证体系是什么 国家标准中与质量保证管理相关的几个标准是什么?他们的编号和全称是什么?

    SQA由一套软件工程过程和方法组成,以保证(软件的)质量。SQA贯穿整个软件开发过程,(它)应包括需求文档评审、代码控制、代码评审、变更管理、配置管理、版本管理和软件测试。

    软件质量保证(SQA-Software Quality Assurance)是建立一套有计划,有系统的方法,来向管理层保证拟定出的标准、步骤、实践和方法能够正确地被所有项目所采用。软件质量保证的目的是使软件过程对于管理人员来说是可见的。它通过对软件产品和活动进行评审和审计来验证软件是合乎标准的。软件质量保证组在项目开始时就一起参与建立计划、标准和过程。这些将使软件项目满足机构方针的要求。

    15、软件产品质量特性是什么?

    功能性:适应性、准确性、互操作性、依从性、安全性。

    可靠性:成熟性、容错性、易恢复性。

    可使用性:易理解性、易学习性、易操作性。

    效率:时间特性、资源特性。

    可维护性:易分析性、易变更性、稳定性、易测试性。

    可移植性: 适应性、易安装性、遵循性、易替换性

    16、软件测试的策略是什么?

    软件测试策略:在一定的软件测试标准、测试规范的指导下,依据测试项目的特定环境约束而规定的软件测试的原则、方式、方法的集合。

    17、软件测试分为几个阶段 各阶段的测试策略和要求是什么?

    和开发过程相对应,测试过程会依次经历单元测试、集成测试、系统测试、验收测试四个主要阶段:

    单元测试:单元测试是针对软件设计的最小单位––程序模块甚至代码段进行正确性检验的测试工作,通常由开发人员进行。

    集成测试:集成测试是将模块按照设计要求组装起来进行测试,主要目的是发现与接口有关的问题。由于在产品提交到测试部门前,产品开发小组都要进行联合调试,因此在大部分企业中集成测试是由开发人员来完成的。

    系统测试:系统测试是在集成测试通过后进行的,目的是充分运行系统,验证各子系统是否都能正常工作并完成设计的要求。它主要由测试部门进行,是测试部门最大最重要的一个测试,对产品的质量有重大的影响。

    验收测试:验收测试以需求阶段的《需求规格说明书》为验收标准,测试时要求模拟实际用户的运行环境。对于实际项目可以和客户共同进行,对于产品来说就是最后一次的系统测试。测试内容为对功能模块的全面测试,尤其要进行文档测试。

    单元测试测试策略:

    自顶向下的单元测试策略:比孤立单元测试的成本高很多,不是单元测试的一个好的选择。

    自底向上的单元测试策略:比较合理的单元测试策略,但测试周期较长。

    孤立单元测试策略:最好的单元测试策略。

    集成测试的测试策略:

    大爆炸集成:适应于一个维护型项目或被测试系统较小

    自顶向下集成:适应于产品控制结构比较清晰和稳定;高层接口变化较小;底层接口未定义或经常可能被修改;产口控制组件具有较大的技术风险,需要尽早被验证;希望尽早能看到产品的系统功能行为。

    自底向上集成:适应于底层接口比较稳定;高层接口变化比较频繁;底层组件较早被完成。

    基于进度的集成

    优点:具有较高的并行度;能够有效缩短项目的开发进度。

    缺点:桩和驱动工作量较大;有些接口测试不充分;有些测试重复和浪费。

    系统测试的测试策略:

    数据和数据库完整性测试;功能测试;用户界面测试;性能评测;负载测试;强度测试;容量测试;安全性和访问控制测试;故障转移和恢复测试;配置测试;安装测试;加密测试;可用性测试;版本验证测试;文档测试

    18、软件测试各个阶段通常完成什么工作?各个阶段的结果文件是什么?包括什么内容?

    单元测试阶段:各独立单元模块在与系统地其他部分相隔离的情况下进行测试,单元测试针对每一个程序模块进行正确性校验,检查各个程序模块是否正确地实现了规定的功能。生成单元测试报告,提交缺陷报告。

    集成测试阶段:集成测试是在单元测试的基础上,测试在将所有的软件单元按照概要设计规格说明的要求组装成模块、子系统或系统的过程中各部分工作是否达到或实现相应技术指标及要求的活动。该阶段生成集成测试报告,提交缺陷报告。

    系统测试阶段:将通过确认测试的软件,作为整个给予计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起,在实际运行环境下,对计算机系统进行全面的功能覆盖。该阶段需要提交测试总结和缺陷报告。

    19、测试人员在软件开发过程中的任务是什么?

    1、尽可能早的找出系统中的Bug;

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

    3、衡量软件的品质,保证系统的质量;

    4、关注用户的需求,并保证系统符合用户需求。

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

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

    一条Bug记录最基本应包含:

    bug编号;bug严重级别,优先级;bug产生的模块;首先要有bug摘要,阐述bug大体的内容;bug对应的版本;bug详细现象描述,包括一些截图、录像....等等;bug出现时的测试环境,产生的条件即对应操作步骤;高质量的Bug记录:

    1) 通用UI要统一、准确缺陷报告的UI要与测试的软件UI保持一致,便于查找定位。2) 尽量使用业界惯用的表达术语和表达方法使用业界惯用的表达术语和表达方法,保证表达准确,体现专业化。3) 每条缺陷报告只包括一个缺陷每条缺陷报告只包括一个缺陷,可以使缺陷修正者迅速定位一个缺陷,集中精力每次只修正一个缺陷。校验者每次只校验一个缺陷是否已经正确修正。4) 不可重现的缺陷也要报告首先缺陷报告必须展示重现缺陷的能力。不可重现的缺陷要尽力重现,若尽力之后仍不能重现,仍然要报告此缺陷,但在报告中要注明无法再现,缺陷出现的频率。5) 明确指明缺陷类型根据缺陷的现象,总结判断缺陷的类型。例如,即功能缺陷、界面缺陷、数据缺陷,合理化建议这是最常见的缺陷或缺陷类型,其他形式的缺陷或缺陷也从属于其中某种形式。6) 明确指明缺陷严重等级和优先等级时刻明确严重等级和优先等级之间的差别。高严重问题可能不值得解决,小装饰性问题可能被当作高优先级。7) 描述 (Description) ,简洁、准确,完整,揭示缺陷实质,记录缺陷或缺陷出现的位置描述要准确反映缺陷的本质内容,简短明了。为了便于在软件缺陷管理数据库中寻找制定的测试缺陷,包含缺陷发生时的用户界面(UI)是个良好的习惯。例如记录对话框的标题、菜单、按钮等控件的名称。8) 短行之间使用自动数字序号,使用相同的字体、字号、行间距短行之间使用自动数字序号,使用相同的字体、字号、行间距,可以保证各条记录格式一致,做到规范专业。9) 每一个步骤尽量只记录一个操作保证简洁、条理井然,容易重复操作步骤。10) 确认步骤完整,准确,简短保证快速准确的重复缺陷,“完整”即没有缺漏,“准确”即步骤正确,“简短”即没有多余的步骤。11) 根据缺陷,可选择是否进行图象捕捉为了直观的观察缺陷或缺陷现象,通常需要附加缺陷或缺陷出现的界面,以图片的形式作为附件附着在记录的“附件”部分。为了节省空间,又能真实反映缺陷或缺陷本质,可以捕捉缺陷或缺陷产生时的全屏幕,活动窗口和局部区域。为了迅速定位、修正缺陷或缺陷位置,通常要求附加中文对照图。 附加必要的特殊文档和个人建议和注解如果打开某个特殊的文档而产生的缺陷或缺陷,则必须附加该文档,从而可以迅速再现缺陷或缺陷。有时,为了使缺陷或缺陷修正者进一步明确缺陷或缺陷的表现,可以附加个人的修改建议或注解。12) 检查拼写和语法缺陷在提交每条缺陷或缺陷之前,检查拼写和语法,确保内容正确,正确的描述缺陷。13) 尽量使用短语和短句,避免复杂句型句式软件缺陷管理数据库的目的是便于定位缺陷,因此,要求客观的描述操作步骤,不需要修饰性的词汇和复杂的句型,增强可读性。以上概括了报告测试缺陷的规范要求,随着软件的测试要求不同,测试者经过长期测试,积累了相应的测试经验,将会逐渐养成良好的专业习惯,不断补充新的规范书写要求。此外,经常阅读、学习其他测试工程师的测试缺陷报告,结合自己以前的测试缺陷报告进行对比和思考,可以不断提高技巧。14) 缺陷描述内容缺陷描述的内容可以包含缺陷操作步骤,实际结果和期望结果。操作步骤可以方便开发人员再现缺陷进行修正,有些开发的再现缺陷能力很差,虽然他明白你所指的缺陷,但就是无法再现特别是对系统不熟悉的新加入开发人员,介绍步骤可以方便他们再现。实际结果可以让开发明白错误是什么,期望结果可以让开发了解正确的结果应该是如何。

    21、黑盒测试和白盒测试是软件测试的两种基本方法,请分别说明各自的优点和缺点!

    黑盒测试的优点有:比较简单,不需要了解程序内部的代码及实现;与软件的内部实现无关; 从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;在做软件自动化测试时较为方便。

    黑盒测试的缺点有:不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的30%;自动化测试的复用性较低。

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

    白盒测试的缺点有:程序运行会有很多不同的路径,不可能测试所有的运行路径;测试基于代码,只能测试开发人员做的对不对,而不能知道设计的正确与否,可能会漏掉一些功能需求;系统庞大时,测试开销会非常大。

    22、如何测试一个纸杯?

    功能度:用水杯装水看漏不漏;水能不能被喝到

    安全性:杯子有没有毒或细菌

    可靠性:杯子从不同高度落下的损坏程度

    可移植性:杯子在不同的地方、温度等环境下是否都可以正常使用

    兼容性:杯子是否能够容纳果汁、白水、酒精、汽油等

    易用性:杯子是否烫手、是否有防滑措施、是否方便饮用

    用户文档:使用手册是否对杯子的用法、限制、使用条件等有详细描述

    疲劳测试:将杯子盛上水(案例一)放24小时检查泄漏时间和情况;盛上汽油(案例二)放24小时检查泄漏时间和情况等

    压力测试:用根针并在针上面不断加重量,看压强多大时会穿透

    22、测试计划工作的目的是什么?测试计划文档的内容应该包括什么?其中哪些是最重要的?

    软件测试计划是指导测试过程的纲领性文件:

    领导能够根据测试计划进行宏观调控,进行相应资源配置等

    测试人员能够了解整个项目测试情况以及项目测试不同阶段的所要进行的工作等

    便于其他人员了解测试人员的工作内容,进行有关配合工作

    包含了产品概述、测试策略、测试方法、测试区域、测试配置、测试周期、测试资源、测试交流、风险分析等内容。借助软件测试计划,参与测试的项目成员,尤其是测试管理人员,可以明确测试任务和测试方法,保持测试实施过程的顺畅沟通,跟踪和控制测试进度,应对测试过程中的各种变更。

    测试计划编写6要素(5W1H):

    why——为什么要进行这些测试;

    what—测试哪些方面,不同阶段的工作内容;

    when—测试不同阶段的起止时间;

    where—相应文档,缺陷的存放位置,测试环境等;

    who—项目有关人员组成,安排哪些测试人员进行测试;

    how—如何去做,使用哪些测试工具以及测试方法进行测试

    测试计划和测试详细规格、测试用例之间是战略和战术的关系,测试计划主要从宏观上规划测试活动的范围、方法和资源配置,而测试详细规格、测试用例是完成测试任务的具体战术。所以其中最重要的是测试测试策略和测试方法(最好是能先评审)。

    23、黑盒测试的测试用例常见设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。

    1)等价类划分: 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类.

    2)边界值分析法:是对等价类划分方法的补充。测试工作经验告诉我,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种边界情况设计测试用例,可以查出更多的错误.

    使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据.

    3)错误猜测法:基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法.

    错误推测方法的基本思想: 列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例. 例如, 在单元测试时曾列出的许多在模块中常见的错误. 以前产品测试中曾经发现的错误等, 这些就是经验的总结. 还有, 输入数据和输出数据为0的情况. 输入表格为空格或输入表格只有一行. 这些都是容易发生错误的情况. 可选择这些情况下的例子作为测试用例.

    4)因果图方法:前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系, 相互组合等. 考虑输入条件之间的相互组合,可能会产生一些新的情况. 但要检查输入条件的组合不是一件容易的事情, 即使把所有输入条件划分成等价类,他们之间的组合情况也相当多. 因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例. 这就需要利用因果图(逻辑模型). 因果图方法最终生成的就是判定表. 它适合于检查程序输入条件的各种组合情况.

    5)正交表分析法:可能因为大量的参数的组合而引起测试用例数量上的激增,同时,这些测试用例并没有明显的优先级上的差距,而测试人员又无法完成这么多数量的测试,就可以通过正交表来进行缩减一些用例,从而达到尽量少的用例覆盖尽量大的范围的可能性。

    6)场景分析方法:指根据用户场景来模拟用户的操作步骤,这个比较类似因果图,但是可能执行的深度和可行性更好。

    7)状态图法:通过输入条件和系统需求说明得到被测系统的所有状态,通过输入条件和状态得出输出条件;通过输入条件、输出条件和状态得出被测系统的测试用例。

    8)大纲法:大纲法是一种着眼于需求的方法,为了列出各种测试条件,就将需求转换为大纲的形式。大纲表示为树状结构,在根和每个叶子结点之间存在唯一的路径。大纲中的每条路径定义了一个特定的输入条件集合,用于定义测试用例。树中叶子的数目或大纲中的路径给出了测试所有功能所需测试用例的大致数量。
    24、详细的描述一个测试活动完整的过程。(供参考,本答案主要是瀑布模型的做法)

    项目经理通过和客户的交流,完成需求文档,由开发人员和测试人员共同完成需求文档的评审,评审的内容包括:需求描述不清楚的地方和可能有明显冲突或者无法实现的功能的地方。项目经理通过综合开发人员,测试人员以及客户的意见,完成项目计划。然后SQA进入项目,开始进行统计和跟踪

    开发人员根据需求文档完成需求分析文档,测试人员进行评审,评审的主要内容包括是否有遗漏或双方理解不同的地方。测试人员完成测试计划文档,测试计划包括的内容上面有描述。

    测试人员根据修改好的需求分析文档开始写测试用例,同时开发人员完成概要设计文档,详细设计文档。此两份文档成为测试人员撰写测试用例的补充材料。

    测试用例完成后,测试和开发需要进行评审。

    测试人员搭建环境

    开发人员提交第一个版本,可能存在未完成功能,需要说明。测试人员进行测试,发现BUG后提交给BugZilla。

    开发提交第二个版本,包括Bug Fix以及增加了部分功能,测试人员进行测试。

    重复上面的工作,一般是3-4个版本后BUG数量减少,达到出货的要求。

    如果有客户反馈的问题,需要测试人员协助重现并重新测试。

    26、BUG管理工具的跟踪过程(用BugZilla为例子)

    测试人员发现了BUG,提交到Bugzilla中,状态为new,BUG的接受者为开发接口人员

    开发接口将BUG分配给相关的模块的开发人员,状态修改为已分配,开发人员和测试确认BUG,如果是本人的BUG,则设置为接收;如果是别的开发人员的问题,则转发出去,由下一个开发人员来进行此行为;如果认为不是问题,则需要大家讨论并确认后,拒绝这个BUG,然后测试人员关闭此问题。

    如果开发人员接受了BUG,并修改好以后,将BUG状态修改为已修复,并告知测试在哪个版本中可以测试。

    测试人员在新版本中测试,如果发现问题依然存在,则拒绝验证;如果已经修复,则关闭BUG。

    27、您认为在测试人员同开发人员的沟通过程中,如何提高沟通的效率和改善沟通的效果?维持测试人员同开发团队中其他成员良好的人际关系的关键是什么?

    尽量面对面的沟通,其次是能直接通过电话沟通,如果只能通过Email等非及时沟通工具的话,强调必须对特性的理解深刻以及能表达清楚。

    运用一些测试管理工具如TestDirector进行管理也是较有效的方法,同时要注意在TestDirector中对BUG有准确的描述。

    在团队中建立测试人员与开发人员良好沟通中注意以下几点:

    一真诚、二是团队精神、三是在专业上有共同语言、四是要对事不对人,工作至上

    当然也可以通过直接指出一些小问题,而不是进入BUG Tracking System来增加对方的好感。

    28、你对测试最大的兴趣在哪里?为什么?

    回答这个面试题,没有固定统一的答案,但可能是许多企业都会问到的。提供以下答案供考:

    最大的兴趣,感觉这是一个有挑战性的工作;

    测试是一个经验行业,工作越久越能感觉到做好测试的难度和乐趣

    通过自己的工作,能使软件产品越来越完善,从中体会到乐趣

    回答此类问题注意以下几个方面:

    尽可能的切合招聘企业的技术路线来表达你的兴趣,例如该企业是数据库应用的企业,那么表示你的兴趣在数据库的测试,并且希望通过测试提升自己的数据库掌握能力。

    表明你做测试的目的是为了提升能力,也是为了更好的做好测试;提升能力不是为了以后转开发或其他的,除非用人企业有这样的安排。

    不要过多的表达你的兴趣在招聘企业的范畴这外。比如招聘企业是做财务软件的,可是你表现出来的是对游戏软件的兴趣;或招聘是做JAVA开发的,而你的兴趣是在C类语言程序的开发。

    29、你自认为测试的优势在哪里?

    该面试也没有固定不变的答案,但可参考以下几点,并结合自身特点:

    有韧性、有耐心、做事有条理性、喜欢面对挑战、有信心做好每一件事情、较强的沟通能力、从以前的经理处都得到了很好的评价表明我做的很好

    33、简述你在以前的工作中做过哪些事情,比较熟悉什么。参考答案如下。

    我过去的主要工作是系统测试和自动化测试。在系统测试中,主要是对BOSS系统的业务逻辑功能,以及软交换系统的Class 5特性进行测试。性能测试中,主要是进行的压力测试,在各个不同数量请求的情况下,获取系统响应时间以及系统资源消耗情况。自动化测试主要是通过自己写脚本以及一些第三方工具的结合来测试软交换的特性测试。

    在测试中,我感觉对用户需求的完全准确的理解非常重要。另外,就是对BUG的管理,要以需求为依据,并不是所有BUG均需要修改。

    测试工作需要耐心和细致,因为在新版本中,虽然多数原来发现的BUG得到了修复,但原来正确的功能也可能变得不正确。因此要注重迭代测试和回归测试。

    34、在C/C++中static有什么用途?(请至少说明两种)

    1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。

    2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。

    3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用

    35、引用与指针有什么区别?

    1) 引用必须被初始化,指针不必。

    2) 引用初始化以后不能被改变,指针可以改变所指的对象。

    3) 不存在指向空值的引用,但是存在指向空值的指针。

    36、Internet采用哪种网络协议?该协议的主要层次结构?Internet物理地址和IP地址转换采用什么协议?

    TCP/IP协议主要层次结构为: 应用层/传输层/网络层/数链路层。

    ARP (Address Resolution Protocol)(地据址解析协议)

    37、说说你对集成测试中自顶向下集成和自底向上集成两个策略的理解,要谈出它们各自的优缺点和主要适应于哪种类型测试;

    自顶向下集成

    优点:较早地验证了主要控制和判断点;按深度优先可以首先实现和验证一个完整的软件功能;功能较早证实,带来信心;只需一个驱动,减少驱动器开发的费用;支持故障隔离。

    缺点:柱的开发量大;底层验证被推迟;底层组件测试不充分。

    适应于产品控制结构比较清晰和稳定;高层接口变化较小;底层接口未定义或经常可能被修改;产口控制组件具有较大的技术风险,需要尽早被验证;希望尽早能看到产品的系统功能行为。

    2、自底向上集成

    优点:对底层组件行为较早验证;工作最初可以并行集成,比自顶向下效率高;减少了桩的工作量;支持故障隔离。

    缺点:驱动的开发工作量大;对高层的验证被推迟,设计上的错误不能被及时发现。

    适应于底层接口比较稳定;高层接口变化比较频繁;底层组件较早被完成。

    38、软件验收测试包括正式验收测试、alpha测试、beta测试三种测试。

    39、系统测试的策略有很多种的,有性能测试、负载测试、强度测试、易用性测试、安全测试、配置测试、安装测试、文档测试、故障恢复测试、用户界面测试、恢复测试、分布测试、可用性测试。

    40、设计系统测试计划需要参考的项目文档有软件测试计划、软件需求工件、和迭代计划

    41.通过画因果图来写测试用例的步骤为___、___、___、___及把因果图转换为状态图共五个步骤。 利用因果图生成测试用例的基本步骤是:

    § 分析软件规格说明描述中,哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符。

    § 分析软件规格说明描述中的语义,找出原因与结果之间,原因与原因之间对应的是什么关系? 根据这些关系,画出因果图。

    § 由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不可能出现。为表明这些特殊情况,在因果图上用一些记号标明约束或限制条件。 § 把因果图转换成判定表。

    § 把判定表的每一列拿出来作为依据,设计测试用例。

    43、请说出这些测试最好由那些人员完成,测试的是什么?

    代码、函数级测试一般由白盒测试人员完成,他们针对每段代码或函数进行正确性检验,检查其是否正确的实现了规定的功能。

    模块、组件级测试主要依据是程序结构设计测试模块间的集成和调用关系,一般由测试人员完成。

    系统测试在于模块测试与单元测试的基础上进行测试。了解系统功能与性能,根据测试用例进行全面的测试。

    44、 设计测试用例时应该考虑哪些方面,即不同的测试用例针对那些方面进行测试?

    设计测试用例时需要注意的是,除了对整体流程及功能注意外,还要注意强度测试、性能测试、压力测试、边界值测试、稳定性测试、安全性测试等多方面。(测试用例需要考虑的四个基本要素是输入、输出、操作和测试环境;另外,测试用例需要考虑的是测试类型(功能、性能、安全……),这部分可以参照TP做答。此外,还需要考虑用例的重要性和优先级)
    45、 在windows下保存一个文本文件时会弹出保存对话框,如果为文件名建立测试用例,等价类应该怎样划分?

    单字节,如A;双字节, AA、我我;特殊字符 /‘。‘;、=-等;保留字,如com;文件格式为8.3格式的;文件名格式为非8.3格式的;/,\,*等九个特殊字符。

    46、假设有一个文本框要求输入10个字符的邮政编码,对于该文本框应该怎样划分等价类?

    特殊字符,如10个*或¥;英文字母,如ABCDefghik;小于十个字符,如123;大于十个字符,如11111111111;数字和其他混合,如123AAAAAAA;空字符;保留字符

    47.软件测试项目从什么时候开始,?为什么?

    软件测试应该在需求分析阶段就介入,因为测试的对象不仅仅是程序编码,应该对软件开发过程中产生的所有产品都测试,并且软件缺陷存在放大趋势.缺陷发现的越晚,修复它所花费的成本就越大.

    48、什么是回归测试?

    回归测试: (regression testing): 回归测试有两类:用例回归和错误回归;用例回归是过一段时间以后再回头对以前使用过的用例在重新进行测试,看看会重新发现问题。错误回归,就是在新版本中,对以前版本中出现并修复的缺陷进行再次验证,并以缺陷为核心,对相关修改的部分进行测试的方法。

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

    单元测试针对的是软件设计的最小单元--程序模块(面向过程中是函数、过程;面向对象中是类。),进行正确性检验的测试工作,在于发现每个程序模块内部可能存在的差错.一般有两个步骤:人工静态检查\动态执行跟踪

    集成测试针对的是通过了单元测试的各个模块所集成起来的组件进行检验,其主要内容是各个单元模块之间的接口,以及各个模块集成后所实现的功能.

    系统测试针对的是集成好的软件系统,作为整个计算机系统的一个元素,与计算机硬件\外设\某些支持软件\数据和人员等其他系统元素结合在一起,要在实际的运行环境中,对计算机系统进行一系列的集成测试和确认测试.
    51.一个测试工程师应具备那些素质?

    1、责任心2、沟通能力3、团队合作精神4、耐心、细心、信心5、时时保持怀疑态度,并且有缺陷预防的意识6、具备一定的编程经验
    53:你所了解的的软件测试类型都有哪些,简单介绍一下。

    按测试策略分类:1、静态与动态测试2、黑盒与白盒测试 3、手工和自动测试 4、冒烟测试 5、回归测试;

    按测试阶段分类:单元测试、集成测试、系统测试;

    其他常见测试方法:1、功能测试 2、性能测试 3、压力测试 4、负载测试 5、易用性测试 6、安装测试 7、界面测试 8、配置测试 9、文档测试 10、兼容性测试 11、安全性测试 12、恢复测试

    54:你认为做好测试计划工作的关键是什么?

    明确测试的目标,增强测试计划的实用性

    编写软件测试计划得重要目的就是使测试过程能够发现更多的软件缺陷,因此软件测试计划的价值取决于它对帮助管理测试项目,并且找出软件潜在的缺陷。因此,软件测试计划中的测试范围必须高度覆盖功能需求,测试方法必须切实可行,测试工具并且具有较高的实用性,便于使用,生成的测试结果直观、准确

    坚持“5W”规则,明确内容与过程

    “5W”规则指的是“What(做什么)”、“Why(为什么做)”、“When(何时做)”、“Where(在哪里)”、“How(如何做)”。利用“5W”规则创建软件测试计划,可以帮助测试团队理解测试的目的(Why),明确测试的范围和内容(What),确定测试的开始和结束日期(When),指出测试的方法和工具(How),给出测试文档和软件的存放位置(Where)。

    采用评审和更新机制,保证测试计划满足实际需求

    测试计划写作完成后,如果没有经过评审,直接发送给测试团队,测试计划内容的可能不准确或遗漏测试内容,或者软件需求变更引起测试范围的增减,而测试计划的内容没有及时更新,误导测试执行人员。

    分别创建测试计划与测试详细规格、测试用例

    应把详细的测试技术指标包含到独立创建的测试详细规格文档,把用于指导测试小组执行测试过程的测试用例放到独立创建的测试用例文档或测试用例管理数据库中。测试计划和测试详细规格、测试用例之间是战略和战术的关系,测试计划主要从宏观上规划测试活动的范围、方法和资源配置,而测试详细规格、测试用例是完成测试任务的具体战术。

    55:您认为做好测试用例设计工作的关键是什么?

    白盒测试用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果

    黑盒法用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。不可能做到完全测试,以最少的用例在合理的时间内发现最多的问题

    56:你的测试职业发展目标是什么?

    测试经验越多,测试能力越高。所以我的职业发展是需要时间累积的,一步步向着高级测试工程师奔去。而且我也有初步的职业规划,前3年累积测试经验,不断的更新自己改正自己,做好测试任务。

    57:测试结束的标准是什么?

    从微观上来说,在测试计划中定义,比如系统在一定性能下平稳运行72小时,目前Bug Tracking System中,本版本中没有一般严重的BUG,普通BUG的数量在3以下,BUG修复率90%以上等等参数,然后由开发经理,测试经理,项目经理共同签字认同版本Release。

    如果说宏观的,则是当这个软件彻底的消失以后,测试就结束了。

    59、一套完整的测试应该由哪些阶段组成?

    可行性分析、需求分析、概要设计、详细设计、编码、单元测试、集成测试、系统测试、验收测试
    61、您是否了解以往所工作的企业的软件开发过程?如果了解,请试述一个完整的开发过程需要完成哪些工作?分别由哪些不同的角色来完成这些工作?您在以往的测试工作中都曾经具体从事过哪些工作?其中最擅长哪部分工作?

    开发过程---需求调研(需求人员)、需求分析(需求人员)、概要设计(设计人员)、详细设计(设计人员)、编码(开发人员)

    测试过程---需求评审、系统测试设计、概要设计评审、集成测试设计、详细设计评审、单元测试设计、测试执行

    测试工作的整个过程都做过,擅长做测试设计

    过程决定质量,软件的过程改进正是为了提高软件的质量,将过往的种种经验教训积累起来。

    62、测试用例设计的原则是什么?目前主要的测试用例设计方法有哪些?

    代表性:能够代表并覆盖各种合理的和不合理、合法的和非法的、边界的和越界的、以及极限的输入数据、操作和环境设置等.

    可判定性:即测试执行结果的正确性是可判定的,每一个测试用例都应有相应的期望结果.

    可再现性:即对同样的测试用例,系统的执行结果应当是相同的。

    方法有等价类、边界值、因果图、状态图、正交法、大纲法

    63、面向对象的测试用例设计有几种方法?如何实现?

    给类中的每个构造函数设计一组测试用例

    组合类中的类变量、实例变量

    组合类中的各种方法

    根据前置条件和后置条件设计测试用例

    根据代码设计测试用例

    64、LoadRunner分为哪三个模块?请简述各模块的主要功能。

    Virtual User Generator:用于录制脚步

    Mercury LoadRunner Controller:用于创建、运行和监控场景

    Mercury LoadRunner Analysis:用于分析测试结果

    65、你对测试最大的兴趣在哪里?为什么?

    最大的兴趣就是测试有难度,有挑战性!做测试越久越能感觉到做好测试有多难。曾经在无忧测试网上看到一篇文章,是关于如何做好一名测试工程师。一共罗列了11,12点,有部分是和人的性格有关,有部分需要后天的努力。但除了性格有关的1,2点我没有把握,其他点我都很有信心做好它。

    刚开始进入测试行业时,对测试的认识是从无忧测试网上了解到的一些资料,当时是冲着做测试需要很多技能才能做的好,虽然入门容易,但做好很难,比开发更难,虽然当时我很想做开发(学校专业课我基本上不缺席,因为我喜欢我的专业),但看到测试比开发更难更有挑战性,想做好测试的意志就更坚定了。

    我觉得做测试整个过程中有2点让我觉得很有难度(对我来说,有难度的东西我就非常感兴趣),第一是测试用例的设计,因为测试的精华就在测试用例的设计上了,要在版本出来之前,把用例写好,用什么测试方法写?(也就是测试计划或测试策略),如果你刚测试一个新任务时,你得花一定的时间去消化业务需求和技术基础,业务需求很好理解(多和产品经理和开发人员沟通就能达到目的),而技术基础可就没那么简单了,这需要你自觉的学习能力,比如说网站吧,最基本的技术知识你要知道网站内部是怎么运作的的,后台是怎么响应用户请求的?测试环境如何搭建?这些都需要最早的学好。至少在开始测试之前能做好基本的准备,可能会遇到什么难题?需求细节是不是没有确定好?这些问题都能在设计用例的时候发现。

    第二是发现BUG的时候了,这应该是测试人员最基本的任务了,一般按测试用例开始测试就能发现大部分的bug,还有一部分bug需要测试的过程中更了解所测版本的情况获得更多信息,补充测试用例,测试出bug。还有如何发现bug?这就需要在测试用例有效的情况下,通过细心和耐心去发现bug了,每个用例都有可能发现bug,每个地方都有可能出错,所以测试过程中思维要清晰(测试过程数据流及结果都得看仔细了,bug都在里面发现的)。如何描述bug也很有讲究,bug在什么情况下会产生,如果条件变化一点点,就不会有这个bug,以哪些最少的操作步骤就能重现这个bug,这个bug产生的规律是什么?如果你够厉害的话,可以帮开发人员初步定位问题。

    66、您所熟悉的软件测试类型都有哪些?请试着分别比较这些不同的测试类型的区别与联系(如功能测试、性能测试……)

    测试类型有:功能测试,性能测试,界面测试。

    功能测试在测试工作中占的比例最大,功能测试也叫黑盒测试。是把测试对象看作一个黑盒子。利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。采用黑盒技术设计测试用例的方法有:等价类划分、边界值分析、错误推测、因果图和综合策略。

    性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。

    界面测试,界面是软件与用户交互的最直接的层,界面的好坏决定用户对软件的第一印象。而且设计良好的界面能够引导用户自己完成相应的操作,起到向导的作用。同时界面如同人的面孔,具有吸引用户的直接优势。设计合理的界面能给用户带来轻松愉悦的感受和成功的感觉,相反由于界面设计的失败,让用户有挫败感,再实用强大的功能都可能在用户的畏惧与放弃中付诸东流。

    区别在于,功能测试关注产品的所有功能上,要考虑到每个细节功能,每个可能存在的功能问题。性能测试主要关注于产品整体的多用户并发下的稳定性和健壮性。界面测试更关注于用户体验上,用户使用该产品的时候是否易用,是否易懂,是否规范(快捷键之类的),是否美观(能否吸引用户的注意力),是否安全(尽量在前台避免用户无意输入无效的数据,当然考虑到体验性,不能太粗鲁的弹出警告)?做某个性能测试的时候,首先它可能是个功能点,首先要保证它的功能是没问题的,然后再考虑该功能点的性能测试

    67、请试着比较一下黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系。

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

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

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

    1、是否有不正确或遗漏的功能?2、在接口上,输入是否能正确的接受?能否输出正确的结果?3、是否有数据结构错误或外部信息(例如数据文件)访问错误?4、性能上是否能够满足要求?5、是否有初始化或终止性错误?

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

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

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

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

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

    单元测试(模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。

    单元测试是由程序员自己来完成,最终受益的也是程序员自己。可以这么说,程序员有责任编写功能代码,同时也就有责任为自己的代码编写单元测试。执行单元测试,就是为了证明这段代码的行为和我们期望的一致。

    集成测试(也叫组装测试,联合测试)是单元测试的逻辑扩展。它的最简单的形式是:两个已经测试过的单元组合成一个组件,并且测试它们之间的接口。从这一层意义上讲,组件是指多个单元的集成聚合。在现实方案中,许多单元组合成组件,而这些组件又聚合成程序的更大部分。方法是测试片段的组合,并最终扩展进程,将您的模块与其他组的模块一起测试。最后,将构成进程的所有模块一起测试。

    系统测试是将经过测试的子系统装配成一个完整系统来测试。它是检验系统是否确实能提供系统方案说明书中指定功能的有效方法。(常见的联调测试)

    系统测试的目的是对最终软件系统进行全面的测试,确保最终软件系统满足产品需求并且遵循系统设计。

    验收测试是部署软件之前的最后一个测试操作。验收测试的目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务。

    验收测试是向未来的用户表明系统能够像预定要求那样工作。经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是验收测试的任务,即软件的功能性能如同用户所合理期待的那样。

    68、当开发人员说不是BUG时,你如何应付?

    开发人员说不是bug,有2种情况,一是需求没有确定,所以我可以这么做,这个时候可以找来产品经理进行确认,需不需要改动,3方商量确定好后再看要不要改。二是这种情况不可能发生,所以不需要修改,这个时候,我可以先尽可能的说出是BUG的依据是什么?如果被用户发现或出了问题,会有什么不良结果?程序员可能会给你很多理由,你可以对他的解释进行反驳。如果还是不行,那我可以给这个问题提出来,跟开发经理和测试经理进行确认,如果要修改就改,如果不要修改就不改。其实有些真的不是bug,我也只是建议的方式写进TD中,如果开发人员不修改也没有大问题。如果确定是bug的话,一定要坚持自己的立场,让问题得到最后的确认。
    69、为什么要在一个团队中开展软件测试工作?

    因为没有经过测试的软件很难在发布之前知道该软件的质量,就好比ISO质量认证一样,测试同样也需要质量的保证,这个时候就需要在团队中开展软件测试的工作。在测试的过程发现软件中存在的问题,及时让开发人员得知并修改问题,在即将发布时,从测试报告中得出软件的质量情况。

    71、一份测试计划应该包括哪些内容?

    背景、项目简介、目的、测试范围、测试策略、人员分工、资源要求、进度计划、参考文档、常用术语、提交文档、风险分析。

    72、针对于软件的行业背景,你如何理解软件的业务?

    阅读用户手册了解软件的功能和操作流程;看一些业务的专业书籍补充业务知识;如果有用户实际的数据,可以拿实际的数据进行参考;参考以前的用例和BUG报告;在使用软件的过程中多思考;多与产品经理交流。

    74、如何定位测试用例的作用?

    组织性:编写、组织性、功能覆盖、重复性、跟踪、测试确认

    76、什么是兼容性测试?请举例说明如何利用兼容性测试列表进行测试。

    主要验证软件产品在不同版本之间的兼容性。包括向下兼容和交错兼容,向下兼容是测试软件新版本保留它早期版本功能的情况,交错兼容是验证共同存在的两个相关但不相同的产品之间的兼容性。

    77、对某软件进行测试,发现在WIN98上运行得很慢,怎么判别是该软件存在问题还是其软硬件运行环境存在问题?

    看软件的运行环境要求。如果符合要求则是程序存在问题,若不符合要求则是硬件系统存在问题

    78、需求测试的注意事项有哪些?

    是否使用了公司的模板、文档内容是否符合规范、所有的需求是分级是否清析适当、所有的需求是否具有一致性、需求是否可行(即,该需求组合有解决方案)、需求可否用己知的约束来实现、需求是否足够(即,可以把它送到一个规范的开发组织,并有一个生产出所需要产品的合理的可能性)、所有的其它需求是交叉引用是否正确、用户描述是否清楚、是否用客户的语言来描述需求、每个需求描述是否清楚没有岐义,可以移交给一个独立的组去实现时也能理解、是否所有的需求都是可验证的、是否每条需求都具有独立性,即使发生了变化也不会影响其它需求、性能指标是否明确、非功能性需求是否得到充分表现、是否完整列出适用的标准或协议、标准和协议之间是否存在冲突

    81、主键、外键的作用,索引的优点与不足?

    答:主键:是表中的唯一标示键。作用:保证实体的完整性;加快数据库的操作速度;增加新的表记录时,数据库会自动检索新记录的主键值,不允许该值与其他表中记录的主键重复;数据库会按主键值的顺序显示记录,如果没有设定主键,则按输入的顺序显示记录。

    外键:是主键的从属,表示了两个表之间的联系。作用:使用外键可以避免冗余。

    索引的优点: 1、通过创建唯一性的索引,可以保证表中数据的唯一性; 2、加速数据的检索速度; 3、加快表与表之间的连接; 4、在使用分组与排序数据检索时,可以显著检索分组与排序的时间; 5、在查询的过程中使用优化隐藏器,提供系统性能。

    缺点: 1、创建索引需要时间,且随着数据量的增加而增加; 2、索引需要占用物理空间;

    3、当对表中数据进行修改时,索引也要动态维护,降低了数据的维护速度。

    84、性能测试的流程?

    1.测试需求分析2.测试计划制定与评审3.测试用例设计与开发4.测试执行与监控5.分析测试结果6.编写性能测试报告7.测试经验总结

    88、简述bug的生命周期?

    1, 有效地记录BUG 2, 使用BUG模板 3, 评价BUG优先级和严重性 4, BUG的生命 5, 维护BUG数据库

    89、缺陷记录应包含的内容?

    缺陷标识、缺陷类型、缺陷严重程度、缺陷产生可能性、缺陷优先级、缺陷状态、缺陷起源、缺陷来源、缺陷原因;

    91 您所熟悉的软件测试类型都有哪些?请试着分别比较这些不同的测试类型的区别与联系(如功能测试、性能测试……)

    易用性测试-界面的友好性,操作方便性等。

    功能测试-系统中功能性需求的满足

    安全性测试-系统是否存在安全隐患和漏洞

    性能测试-系统在大并发下的响应速度和健壮性
    93、您认为做好测试计划工作的关键是什么?

    了解项目或系统的业务需求

    和项目经理协调好,了解项目的进度计划安排情况
    95、您认为做好测试用例设计工作的关键是什么?

    对业务和软件需求非常清楚,可以根据需求不同选择不同的测试用例设计

    96、.您以往的工作中是否曾开展过测试用例的评审工作?如果有,请描述测试用例评审的过程和评审的内容。

    评审计划->预审->评审;

    评审内容主要是测试用例对软件需求的覆盖程度,对于相关边界是否考虑,是否针对复杂流程准备多套测试数据,是否有专门针对非功能性需求的测试。

    98、您认为性能测试工作的目的是什么?做好性能测试工作的关键是什么?

    关键是测试脚本的录制,测试时候测试环境的干净。


    100、.您以往所从事的软件测试工作中,是否使用了一些工具来进行软件缺陷(Bug)的管理?如果有,请结合该工具描述软件缺陷(Bug)跟踪管理的流程。

    CQ,也可以使用BugFree等免费工具。

    101、.您如何看待软件过程改进?在您曾经工作过的企业中,是否有一些需要改进的东西呢?您期望的理想的测试人员的工作环境是怎样的?

    将先进的经验或思想固化到过程中,通过过程改进和能力提高来改进软件质量。

    TCP/IP五层协议:应用层、传输层、网络层、数据链路层、硬件层

    感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

    ① 2000多本软件测试电子书(主流和经典的书籍应该都有了)

    ② 软件测试/自动化测试标准库资料(最全中文版)

    ③ 项目源码(四五十个有趣且经典的练手项目及源码)

    ④ Python编程语言、API接口自动化测试、web自动化测试、App自动化测试(适合小白学习)

    ⑤ Python学习路线图(告别不入流的学习) 

    在我的QQ技术交流群里(技术交流和资源共享,广告进来腿给你打断)

    可以自助拿走,群号953306497(备注“csdn111”)群里的免费资料都是笔者十多年测试生涯的精华。还有同行大神一起交流技术哦。

    展开全文
  • 2019年电气试验作业安全生产模拟考试题库及答案 题库来源:安全生产模拟考试一点通 第1、【判断】10kV等级的电气设备工频耐压试验最高试验电压为42kV。 A、正确 B、错误 正确答案:A 第2、【判断】50%击穿...
  • 江苏省建筑施工企业专职安全生产管理 人员安全生产管理知识考试 C 类2010 年6 月27 日 答题前请认真阅读以下注意事项 1请在答题卡上正确填写姓名和工作单位准考证号请务必正确填写 和填涂填写或填涂错误将会导致...
  • 交通安全员考试(安全员)模拟考试(安全员)题库,包含安全员A证模拟考试答案解析及安全员B证模拟考试系统练习。由百分百题库公众号结合国家安全员C证大纲最新题库,有助于安全员考前练习,争取顺利通过考试。 来源...
  • 江苏省建筑施工企业专职安全生产管理 人员安全生产管理知识考试 ( C 类 2010 年 6 月 27 日 答题前请认真阅读以下注意事项 1请在答题卡上正确填写姓名和工作单位准考证号请务必正确填写 和填涂填写或填涂错误将会...
  • 测试面试题及答案

    2021-05-24 18:45:30
    基础: 1.测试用例你一般是怎么设计的,怎么可以提高覆盖率?有没有形成自己的一套方法论? 答案:(参考:https://blog.csdn.net/u012981511/article/details/53113969) 一)测试用例的切面设计 所谓测试...
  • 软件测试常见面试题及答案

    万次阅读 2018-01-08 14:23:59
    软件测试常见面试题及答案 乐搏软件学院 2017-09-22 10:14:37 软件测试常见面试题及答案 软件测试常见面试题及答案 软件测试方法有哪些分类?各有什么特点?设计测试用例的主要方法有哪些? 软件测试方法分类 1)...
  • 另外如果大家觉得我找的SpringBoot面试题答案不够清晰,欢迎私信或者评论只出,我看到都会去修改的! 1、SpringBoot有哪些优点? SpringBoot的优点有: 1、减少开发,测试时间和努力。 2、使用JavaConfig有助...
  • Java面试题答案(2021年Java面试题大全带答案) Java面试题答案【最新版】Java高级面试题大全(2021版),发现网上很多Java面试题答案整理...Java中级面试题答案大全(2021年Java面试题答案大汇总) 01、为什.
  • 最近梳理2021最新 Spring 面试 全家桶【附答案解析】,包含了 Java基础、Spring、SpringMVC、Redis、SpringCloud、设计模式、等多个类型。 今天这篇是关于 Spring 全家桶面试,总结了 110 道经典问题。 这套...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,025
精华内容 5,210
关键字:

安全生产测试题及答案