zoukankan      html  css  js  c++  java
  • PC端稳定性测试探索

    转自原来网易博客写的文章

    在PC端软件测试中,稳定性测试是必不可少的一项测试内容。一般在功能测试已经测试完成,缺陷完全修复完成以后进行。

    稳定性测试是在保证客户端功能完整正确的前提下,通过对软件稳定性的测试可以观察在一个运行周期内、一定的压力条件下,软件的出错机率、性能劣化趋势等。进而大大减少软件上线后的崩溃卡死等现象,为软件的逐步优化提供方向及验证。

    测试方法:通过自动化脚本,长时间运行客户端某些功能或长时间开关客户端,看客户端是否存在Crash现象,同时查看内存、CPU等性能指标。

    一款PC客户端软件,它的稳定性测试需求基本包括:

    1. 长时间运行及各种操作下,软件的稳定性以及各种性能指标的劣化趋势。
    2. 多进程或多线程运行时的稳定性。
    3. 不同操作系统,在不同软件环境下运行的稳定性。

    具体来讲:

    • 长时间:一般都要24h以上,要求高点的要24h*3;
    • 不同操作系统:基本上都需要覆盖下面系统:Winxp、Win7 x86、Win7 x64、win8 x64、Win 8.1;
    • 不同软件环境下:主要是指不同的杀毒软件和安全软件环境下;

    步骤:

    1. 确定稳定性测试需求,包括:需要覆盖的功能点、系统环境和软件环境、测试时间长度
    2. 开发自动化运行脚本
    3. 执行脚本,进行性能监控
    4. 分析执行结果
    PC端稳定性测试探索 - zhoujun - Ricky的博客

     自动化脚本

    稳定性测试必须要用自动化测试脚本,标准控件可以用QTP或LoadRunner来进行,可以方便的来进行自动化脚本开发。

    但由于QTP或LoadRunner都是收费软件,很贵,大部分公司都没有license,而且它对非标准控件的支持很差。现在我们用一些开源的工具来替代,这边用Autoit来编写自动化脚本。

    学习参考网址:http://www.autoitx.com/

    AutoIt ,这是一个使用类似BASIC脚本语言的免费软件,它设计用于Windows GUI(图形用户界面)中进行自动化操作。它利用模拟键盘按键,鼠标移动和窗口/控件的组合来实现自动化任务。

    优点 

    - 轻量级(官方发布包10M左右),编译成可执行文件后在没有安装 AutoIt 的机器上也可直接运行 

    - 免费,不需要许可证 - 有丰富的函数库(标准函数库和自定义函数库) - 基于Win32 API,方便扩展 

    - 有完善的帮助文档和丰富的论坛资源

    例子
    用一个简单的客户端开关稳定性测试来看看怎么运行的:

    开关测试属于稳定性测试里的一种,将客户端长时间不断地开启和关闭,看客户端是否会Crash,产生dump文件。

    ;定义变量
    Dim $Sum,$i
    $Sum=0
    $i=1
    ;循环开关次数
    While $i<=86400
    $Sum=$Sum+$i
    $i=$i+1

    Run("C:NepdebugGacRunnerB_D.exe")
    WinWait("NEPSingle")
    Sleep(1000)
    ;取得进程pid
    $iPid = WinGetProcess("NEPSingle")
    ;关闭此进程
    ProcessClose($iPid)
    WEnd

     

    执行

    稳定性测试不同于一般的功能测试,属于概率学测试,并不是这次没测出来就是没问题,所以需要长时间运行,多个系统,多种软件环境中进行多次测试,尽可能的提供可靠性。 

     操作系统  软件环境
     Winxp pro  纯净环境
     Win7 x86  306杀毒+360安全卫士
     Win7 x64  金山毒霸
     Win8 x86  卡巴斯基
     Win8 x64  Nod

       

    结果

    从稳定性测试的结果的判断从下面几个方向判断:

    1. 判断是否Crash:可以通过dump文件判断是否有crash的现象,可以将产生的dump发给开发分析crash原因
    2. 判断是否性能劣化:在稳定性测试的同时通过性能监控工具对内存、cpu、句柄等性能参数进行监控,查看性能是否出问题。
    PC端稳定性测试探索 - zhoujun - Ricky的博客
  • 相关阅读:
    Sandcastle 这个工具生成文档不错
    Windows 服务关闭自动重启
    『录』最全前端资源汇集
    利用Continuous Testing实现Eclipse环境自动单元测试
    (转载)const指针和指向const的指针(左值右指)
    为什么寄存器比内存快?
    Vim Buffer
    Linux操作系统文件系统基础知识详解(引用内容)
    详解BOM头以及去掉BOM头的方法
    对比MySQL,什么场景MongoDB更适用
  • 原文地址:https://www.cnblogs.com/appstest/p/4962320.html
Copyright © 2011-2022 走看看