系统测试概述

系统测试:系统测试是将已经集成好的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、数据、某些支持软件、
          和人员等其他系统元素结合在一起,在实际运行环境下,对计算机系统进行的一系列测试活动。

系统测试目的:验证软件是否满足需求规格说明书要求。
      需求类型:
          显性需求:需求规格说明书中明确写出来的需求。
          隐性需求:需求规格说明书中没有明确写出但是必须要满足的。
                     法律、法规、行业标准
                     用户的使用习惯
                     当地的风俗习惯

系统测试的对象:软件系统、软件+硬件

系统测试各大阶段:
1、计划:编写测试计划
     编写人员:测试负责人
     怎么编写:一般先看是否有类似项目的计划,借鉴参考。
              如果没有可借鉴的项目则自主完成。
     计划编写准备:了解学习需求。
                    估计工作量(人天、人时、人月)
            工作量估计:会议的形式,会上有人负责讲解需求,所有人员在理解的基础上每个人估计
                   工作量,一般会估计三个值:悲观值、乐观值、正常值,
                   然后平均值=(悲观值+乐观值+正常值*4)/6,每个人的平均值计算完成后,再看
                   各个平均值是否收敛(相近),如果收敛再求和除以人数得到估计的工作量。
                   如果不收敛继续重新再估一轮,直到收敛。
            实际中往往时每个分工后,各自凭经验估计各自的工作量。
            估计工作量时要留余量,一般30%。
                        
      计划编写依据:项目管理计划、开发计划
      计划内容(5w1h):
           why:明确系统测试目标,验证软件是否符合需求规格书要求
           what:明确测试工作的范围
           when:明确测试工作的时间范围,明确测试各个阶段的时间范围,明确每一项任务的时间范围
           who:明确测试分工,工作量要相对平均,分工一定要明确到人。
           where:明确测试环境(研发环境、测试环境、生产环境(线上环境、真实环境))
           how:怎么测试,明确测试的方法、选用的测试工具,测试工作的标准规范。
    计划的作用:可以有效的计划、执行、跟踪、组织和管理测试活动。
   计划写完需要评审

2、设计:写方案,分析测试需求,分析测试点
   编写人员:一般是测试团队分工协作完成。
   测试设计工作往往与计划工作并行开展。
   设计作用:从技术角度规范和控制测试活动。
   方案写完需要评审


3、编写用例(实现):设计测试用例
         用例设计:往往也是测试团队分工完成
   用例编写完成需要评审。

4、执行:
     执行前提:编码完成
     测试执行准备:
         1、准备测试环境:把被测软件搭建部署起来。
               涉及工作:安装linux操作系统、安装数据库、安装web服务(apache、tomcat、nginx)、安装依赖软件等
         2、准备测试数据
     冒烟测试:验证软件基本功能。
               系统测试正式开展之前执行冒烟测试。冒烟测试时间较短,只验证基础和核心功能是否正常。
     转系统测试:测试组内进行评审,判断是否达到系统测试条件,如果达到,则正式通知项目组全体人员,开始执行系统测试。
     执行测试:
          1、发现bug并提交开发,还要对bug进行跟踪管理:了解bug的原因、解决的方法、解决的时间。
              开发人员解决bug后测试需要验证bug是否解决,是否引入新问题,需要依据bug的原因及解决方法确定验证的测试范围,
              确保问题解决的同时没有引入新问题。
          2、工作报告、工作总结:报告分周报、日报、月报。总结内容不限、形式不限、时机不限。
      
    测试报告:按照实际工作内容总结测试工作的各种情况。
         编写人员:测试负责人,往往需要团队成员协助。
         主要内容:测试结论、各种统计数据。
             统计数据作用:测试结论的依据。
                           为后续项目做参考。                    
                           通过数据分析研发过程中可能存在的问题,找到原因,制定措施,优化研发流程。
             召开发布会议,发布上线。


系统测试主要测试类型:
1、功能测试:需要从需求和业务角度考虑
     软件常见统称:erp(企业资源计划)、crm(客户关系管理)、银行类、财务类、物流类
     功能测试发现错误:
           1、功能实现错误,与用户需求不符
           2、功能实现遗漏,少了某些功能
           3、功能实现多余,实现了多余功能

2、性能测试:测试软件匹配性能需求的能力。
   关注点:
       响应时间:系统对请求作出响应的时间。
                 2-5-8原则:如果系统2秒内作出响应,会感觉系统响应很快。如果2-5秒内作出响应,会感觉系统响应还可以。
                 如果5-8内作出响应,会感觉响应很慢但是还可以接受。如果超过8秒还没有响应,会感觉很糟糕,会认为系统
                 已经失去响应,从而发起二次请求或离开改软件。

       并发用户数:指系统可以同时承载的正常使用系统功能的用户数量。
       吞吐量:系统在单位时间内处理请求的数量
       服务器的资源利用率:cpu的使用率、内存的占用率、磁盘的读写速率(I/O)
    app性能测试额外关注指标:
       1、手机端的资源利用情况:cpu、内存的使用率
       2、耗电量
       3、启动速度
       4、界面的滑动、跳转速度
   
   性能测试工具:jmeter、loadrunner
   工作中性能测试两种情况:
       有性能测试需求:按照需求测试即可
       无性能测试需求:需要不断增加系统的负载,测试出软件的性能指标。


3、GUI测试(界面测试):关注人机界面展示。
     gui测试考虑方面:
        1、整体风格:色彩使用、界面元素排版布局
        2、针对具体元素考虑:
             单选框:首先考虑是否需要设置默认值。选择一下,只能单选
             复选框: 首先考虑是否需要设置默认值。选择一下,可以多选
             输入框:首先考虑尺寸大小,考虑输入超过最大限制是否可以继续输入,输入框回显
             密码框:首先考虑尺寸大小,考虑输入超过最大限制是否可以继续输入,只能掩码显示,不能支持复制、剪切。
             下拉框:首先考虑尺寸大小,关注下拉菜单内的值是否完整、正确。是否需要设置默认值。
             超链接:考虑连接的对不对,考虑超链接上的内容与链接到的内容是否一致。
4、易用性测试:关注用户体验
                具体体现:能选择不输入、支持快捷键操作、菜单级数不超3级,提供导航式操作,提供帮助手册、提示信息。
               最终目标:软件要易理解、易学习、易操作、有吸引性。


5、兼容性测试:指测试软件在不同的软件之间、操作系统平台上、不同的网络环境中是否能很好的运行。
    主要考虑兼容内容:
          1、操作系统
          2、应用软件的兼容性:framework、jdk、flash
          3、浏览器兼容性:IE、Firefox、Chrome
          4、分辨率兼容性
          其它:操作系统语言、时区
   APP兼容性测试:
         安卓:考虑兼容多个安卓版本、考虑兼容不同手机厂商系统、考虑兼容不同屏幕尺寸
         IOS:一般考虑最新IOS版本、一般考虑最新型号的手机,一般往前倒推1-2个版本
 

可靠性测试:可靠性是指软件不管怎么用都不出问题,或问了问题也能很快解决
     测试类型:
            随机测试:无规律操作软件
            异常测试:测试软件出现异常(故障)后是否可以恢复,以及恢复的程度和时间
                       往往需要人为制造故障


安全测试:测试系统受到恶意攻击时,系统的自我保护能力,病毒防护能力。
   从功能测试角度考虑软件安全性:
           1、密码要有一定长度和复杂度要求
           2、改密码必须验证老密码
           3、是否需要使用HTTPS安全协议。
           4、是否存在超时验证
           5、密码要加密传输、加密存储(sha-one)
           6、是否有防爆力破解机制(连续登陆失败达到一定次数锁定账号或IP)
           7、用户相关数据的校验必须在服务端进行。

稳定性测试:测试系统在一定的负荷下,长时间运行的情况。
      负荷:有一定的数据量、有一定的用户量、软件要运行
      测试时间单位:N天
      发现问题:内存泄漏

文档测试:测试文档的正确性和可用性。

你可能感兴趣的:(软件测试基本理论,系统测试概述,测试覆盖率)