zoukankan      html  css  js  c++  java
  • 软件测试基础

     1.1软件测试背景
      软件测试在软件生命周期中占据重要的地位,软件测试慢慢的独立发展成为一个行业,并且在迅猛发展。
      1.2软件缺陷与软件故障
      一,软件缺陷与软件故障案例
      美国迪斯尼公司的狮子王游戏软件BUG
      2.火星登陆事故
      3.跨世纪“千年虫”问题
      其他一些例子
      二,软件缺陷的定义
      1.软件未达到产品说明书的功能 《需求文档》
      2.软件出现了产品说明书指明不会出现的错误
      软件功能超出产品说明书指明范围
      软件未达到产品说明书虽未指出但应达到的目标
      软件测试员认为难以理解、不易使用、运行速度缓慢、或者最终用户认为不好
      三、 软件缺陷的特征
      软件的特殊性决定了缺陷不易看到,即“看不到”;
      发现了缺陷,但不易找到问题发生的原因所在,即“看到但是抓不到”。
      面试题:1.测试发现bug 开发不认为是bug的时候你怎么办?
      1.测试人员在根据需求文档或者是规格说明书/原型图来进行匹配
      2.测试人员根据不同的测试环境来进行多测尝试来确认bug 并将bug的复现步骤进行记录
      3.如果开发仍旧认为不是bug 需要的测试主管来进行讨论 确认是否bug
      4.需要找产品经理和项目经理进行讨论是否bug
      5.如果认为是bug测试人员将bug进行记录并提交测试总结中
      软件缺陷从哪来?第一大原因就是软件产品规格说明书,很多情况下,说明书没有写,或写的不够全面,经常更改,或者开发小组没有很好的沟通,造成对说明书理解的不一致。第二大原因是软件设计,没有做设计或设计不好,经常变动等和产品规格说明书一样的问题,第三个原因才是编写代码和其它原因;前两个原因至少占了 80%以上。如图1-1所示
      通过大量的测试理论研究及测试实践经验的积累,典型的软件缺陷产生的原因被归纳为以下几种类型:
      (1)需求解释有错误;
      (2)用户需求定义错误;
      (3)需求记录错误;
      (4)设计说明有误;
      (5)编码说明有误;
      (6)程序代码有误;
      (7)数据输入有误;
      (8)测试错误;
      (9)问题修改不正确;
      不正确的结果是由于其他的缺陷而产生。
      2.1软件测试定义
      狭义:测试的定义:“程序测试是为了发现错误而执行程序的过程”。这个定义,被业界所认可,经常被引用。
      广义:为了更早地发现问题,所以将测试延伸到需求评审、设计审查活动中去,也就是将“软件质量保证”的部分活动归为测试活动。实际上,在软件开发实际操作中,常常将软件测试和质量保证——这两种努力(efforts)合并起来。延伸后的软件测试,被认为是一种软件测试的广义概念。
      软件测试的定义:软件测试是贯穿整个软件开发生命周期、对软件产品(包括阶段性产品)进行验证和确认的活动过程,其目的是尽快尽早地发现在软件产品中所存在的各种问题——与用户需求、预先定义的不一致性。
      2.2测试流程
      项目发布立项会的时候测试人员进行参与需求讨论并生成<需求文档》测试会在根据需求文档编写测试计划,然后uI会根据需求文档进行设计原型图,后台开发对数据库的设计,然后后台开发通过需求文档和原型图进行编码,同时测试人员进行编写测试用例,开发编码结束后测试对主要功能进行冒烟测试,如果冒烟测试执行通过,根据编写好的测试用例进行执行,发现bug后进行
      提交bug; 开发进行修改bug,开发修改后的bug进行回归测试上线后需要对项目的进行<测试总结>
      3.1 测试分类
      4.1黑盒,白盒和灰盒
      黑盒测试 :已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。
      白盒测试 :已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。
      灰盒测试,是介于白盒测试与黑盒测试之间的,可以这样理解,灰盒测试关注输出对于输入的正确性,同时也关注内部表现,但这种关注不象白盒那样详细、完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态,有时候输出是正确的,但内部其实已经错误了,这种情况非常多,如果每次都通过白盒测试来操作,效率会很低,因此需要采取这样的一种灰盒的方法。
      最后,经典基础测试用例
      水杯
      电梯
      一、如果给你一台电梯,请问你如何测试它,分析如下
      1.功能:上升、下降、停止、开门、关门、梯内电话、灯光、指示灯等;
      2.性能:速度、反应时间、关门时间等;
      3.压力:超载、尖锐物碰撞电梯壁等;
      4.安全:停电、报警装置、轿箱停靠位置、有人扒门时的情况等;
      5.可用性:按键高度、操作是否方便、舒适程度等;
      6.UI:美观程度、光滑程度、形状、质感等;
      7.稳定性:长时间运行情况等;
      8.兼容性:不同电压是否可工作、不同类型电话是否可安装等。
      其实在简单分析的过程中,发现许多东西根本测试不全,比如电话、灯光、材质、调度程序、可维修性等,当发现在一个用例中无法说清楚时,这些应该拆分开来分别测试。可以告诉主考官,你需要模块化地测试电话、灯光等。再有在一起的组装测试。
      二、下面是详细的测试点:
      需求测试: 查看电梯使用说明书、安全说明书等
      界面测试: 查看电梯外观
      功能测试
      1.测试电梯能否实现正常的上升和下降功能。
      2.电梯的按钮是否都可以使用。
      3.电梯门的打开,关闭是否正常。
      4.报警装置是否可用。
      5.与其他电梯之间是否协作良好。
      6.通风状况如何。
      7.突然停电时的情况。
      8.上升途中的响应。
      1)电梯本来在1楼,如果有人按18楼,那么电梯在上升到5楼的时候,有人按了10楼,这时候是否会在10楼先停下来;
      2)电梯下降到10层时显示满员,此时若8层有人等待电梯,是否在8层停。
      9.是否有手机信号。
      可靠性:
      1.门关上的一刹那出现障碍物。
      2.同时按关门和开门按钮。
      3.点击当前楼层号码。。
      4.多次点击同一楼层号码
      5.同时按上键和下键。
      易用性:
      电梯的按钮的设计符合一般人的习惯吗。
      用户文档:
      使用手册是否对电梯的用法、限制、使用条件等有详细的描述。
      压力测试
      1.看电梯的最大承重量,在负载过重时报警装置是否有提醒;
      2.在一定时间内不断让电梯上升、下降。
      稳定性测试:
      看电梯在最大负载下平稳运行的最长时间。
  • 相关阅读:
    ThreadLocal总结
    zookeeper学习笔记
    安装solr
    VirtualBox安装Centos7
    Solr学习
    Redis缓存会出现的问题?
    面试题目总结
    mysql分库分表
    Java内存模型
    HashMap在多线程中循环链表问题(jdk1.7)
  • 原文地址:https://www.cnblogs.com/wht123/p/14461892.html
Copyright © 2011-2022 走看看