扫码关注我们
评测服务项目
软件登记测试 / 评估申报

服务介绍

       软件产品登记测试从常规要求、用户文档、功能性、可靠性、易用性等方面对软件系

统进行符合性测试,其测试结果证明软件的质量是否符合中华人民共和国信息产业部关于

《软件产品管理办法》以及相应的国家标准中规定的要求。


目的及意义

       软件产品登记测试是专门配合国家软件企业认定和软件产品登记制度设立的测试类型

。2000年6月,国务院颁布了《鼓励软件产业和集成电路产业发展的若干政策》,政策中

提出了在全国范围内推行软件企业认定和软件产品登记的制度,并对通过认定的软件企业

和登记的软件产品在税收等方面给予大幅度的政策优惠。而软件企业在申请软件企业认定

和进行软件产品登记时,应提交由第三方测试机构出具的软件测试报告。

       依据9号令第八条第(五)款和第十条第(五)款的规定,国产软件或进口软件在申请登记

备案时必须提交第三方测试机构出具的软件测试报告。



软件验收测试 / 功能测试

服务介绍:

人工+工具测试相结合,根据您的测试需求及进度,由卓越测评公司测试专家,对您的产品进行完整、全面、无死角的专业测试。深度挖掘产品缺陷。  

服务内容:

根据产品特性、操作描述和用户方案,从软件产品的界面、架构出发,按照需求编写出来的测试用例,使用适当的平台、浏览器和测试脚本,以保证目标用户的用户体验,通过输入数据在预期结果和实际结果之间进行评测,进而提出更加使产品达到用户使用的要求。

1、专家测试用例设计

由卓越评测测试专家结合产品文档及测试需求,对产品功能进行系统全面的测试用例设计。

2、专家功能测试

全面围绕产品场景、功能点、测试用例,进行逻辑性、针对性功能测试,交付完整测试报告并提供追踪服务。

3、专家定制测试

按照您的要求,卓越评测测试专家向您提供定制化测试方案,交付完整测试报告并提供追踪服务。

4、专家BUG探索

发掘潜在产品缺陷,对产品进行多人次、多维度的随机性功能测试和验证服务。




软件性能测试 / 并发测试

服务介绍:

通过模拟用户的海量并发,来发现系统的承载能力、负载能力,在高并发等压力下的处理能力,以及分析在当前性能瓶颈下,需要什么样的软硬件配置来满足更高的性能需求。

服务内容:

软件测试团队通过建立模型、测试场景、脚本等工作,使用性能与压力测试工具与平台对客户软件进行压力与性能测试,来发现系统的承载能力、负载能力和处理能力,并对性能瓶颈等问题提出优化建议。

服务详情:

通过自动化测试工具能更快捷地解决问题。

自动化测试工具可以在一台或多台机器上模拟成百上千的用户同时执行业务操作的场景,并可以很好地同步用户的执行时间,进行有效的实时监测,可以全面发现软件承载能力、负载能力和处理能力。

软件测试团队根据计算性能、内存使用、IO占用、SQL负载、带宽容量进行综合分析。并由我公司具有阿里云认证的运维架构师,提供基于缓存、均衡负载、弹性负载、CDN分发、SQL语句、消息队列等多角度的性优化方案。

代码安全审计 / 漏洞检测

服务介绍:

   代码静态安全审计的目的是对产品的安全性、正确性进行审计;尽可能早的发现并确定产品中在安全方面的缺陷和隐患,找出源代码缺陷所引发的安全漏洞并提供代码修订措施和建议;可以更好的理解软件产品,防止漏洞导致安全事件的发生,避免遭受损失;协助开发出高质量的可交付产品。

服务内容:

    针对客户提供的待检测的源代码,由代码安全审计团队进行安全审计,通过工具+人工,两者结合的方式,对客户的源代码进行分析,尽可能的发现安全方面的缺陷和隐患,并及时协助进行修复。

    服务流程主要包含以下阶段:

信息收集:此阶段中,源代码审计小组进行必要的信息收集,包括本次源代码审计要求、稳定版本的源代码。

工具审计:确定工具审计的标准和各项配置参数,使用代码安全检测工具对目标源代码进行检测,对工具检测的结果进行人工核查,筛选,分析,汇总。

人工审计:对客户要求人工审计的重点代码采用人工分析的方法,对源代码中的业务流程及安全漏洞进行审计。

审计核验:对工具以及人工审计的漏洞,根据源代码流程复盘核验,并根据流程核验结果与利用范围确定危险等级。

输出报告:此阶段中,源代码审计小组根据测试的结果编写直观的源代码审计服务报告。

系统安全扫描 / 渗透测试

服务介绍

    了解被测信息系统现状,发现可被利用的漏洞,扫描结果是对被测信息系统安全现状的一个反映,可快速发现整体系统中存在的安全漏洞点。

服务内容

    系统安全扫描主要是使用远程安全评估系统对客户授权的各类应用、操作系统、数据库、网络设备等进行脆弱性扫描和测试。

服务流程主要包含以下阶段:

 信息收集

 安全扫描

 漏洞验证

 威胁分析

 输出报告

服务详情

    安全服务团队通过对被测系统进行安全漏洞扫描,可以发现系统存在的安全漏洞和隐患,对于发现的安全隐患提出针对性的解决方案和建议,对发现的安全弱点采取安全措施,这样可以提高信息系统的安全性,增强系统对入侵和病毒的防御能力。

服务介绍

渗透测试通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全得一种评估方法,这个过程包括对系统得任何弱点,技术缺陷或漏洞分主动分析,这个分析是从一个攻击者可能存在得位置来进行的,并且从这个位置有条件主动利用安全漏洞,从而深入的发现系统的安全漏洞。

服务内容:

渗透测试小组利用部分前沿的攻击技术,使用成熟的黑客攻击手段,结合软件测试技术(标准)对指定网络、系统做入侵攻击测试,希望由此发现网站、应用系统中存在的安全漏洞和风险点。

服务流程主要包含以下阶段:


明确目标

情报收集

制定计划

渗透测试

缺陷利用

成果收集

输出报告

黑盒测试与白盒测试,在准备环节有一定的区别:

黑盒测试即对内部系统一无所知的情况下进行渗透测试或者其他测试。

白盒测试了解内部系统、结构、源码等信息的情况下进行渗透测试或其他测试。

服务详情:

    渗透测试是一个由浅入深的过程,渗透测试人员在不影响业务系统正常运行的攻击方法进行的测试,可以有效的深入挖掘安全漏洞。

    与安全漏洞扫描不同点在于,安全漏洞扫描是全面发现安全漏洞与缺陷,侧重于横向全面的发现问题。渗透测试则是倾向于深入挖掘系统漏洞,侧重于纵向深入的发现问题。







APP合规测试 / 隐私防护

服务介绍

移动APP隐私合规检测服务是针对企业或个人开发的移动应用中收集个人信息行为是否存在违法违规进行认定并提供参考,为APP运营者提供指引,移动应用个人信息安全提供多方位全面检测,APP是否合规等问题的深度检测,及时发现应用存在的潜在风险与不合规之处,帮助企业或个人对APP隐私、过度收集、滥用等行为进行检测,高效、低成本地做APP合规检测,形成专业并易理解的检测报告,为移动应用运营者提供专业的合规、安全提供整改依据。

服务内容

检测覆盖但不限于以下内容:

l违规收集个人信息

l超范围收集个人信息

l违规使用个人信息

l强制用户使用定向推送功能

lAPP强制、频繁、过度索取权限

lAPP频繁自启动和关联启动

l欺骗诱导强迫行为

l欺骗误导用户提供个人信息

l欺骗误导用户下载APP

自助服务
提供专业的网络安全方案
作废记录
作废记录:
公司介绍

深圳市卓越软件评测有限公司(以下简称“卓越”)是一家专业的第三方软件评测机构。依托丰富的客户资源和完善的服务体系,凭借自身高效专业的服务能力、深入的行业知识,为客户提供优质且高效的测评服务。

目前主要为政府部门、软件企业、通信运营商、国家电网等提供全方位的信息技术咨询服务,做好质量保障的“守卫者”。业务已涉及公安、电力、交通、医疗、教育、传媒、金融、通信等多个行业,成功实施涵盖软件测试、系统安全扫描、编码规范分析、代码静态安全审计、系统压力测试与瓶颈分析服务、渗透测试(黑盒/白盒)等多个项目,拥有丰富的软件质量评估与保障经验。


服务行业
运营商
政府是信息流的”汇聚节点“,在 国家信息化建设中扮演重要角色。
政府
政府是信息流的”汇聚节点“,在 国家信息化建设中扮演重要角色。
金融
政府是信息流的”汇聚节点“,在 国家信息化建设中扮演重要角色。
教育
政府是信息流的”汇聚节点“,在 国家信息化建设中扮演重要角色。
其他
政府是信息流的”汇聚节点“,在 国家信息化建设中扮演重要角色。
测试解决方案
技术文库 更多>>
app稳定性测试

Monkey是一个在模拟器或设备上运行的程序,可生成伪随机用户事件(例如点击、轻触或手势)流以及很多系统级事件。您可以使用 Monkey 以随机且可重复的方式对正在开发的应用进行压力测试。

 

01概 览

Monkey是一个命令行工具,可以在任何模拟器实例或设备上运行。它会将伪随机用户事件流发送到系统中,从而对您正在开发的应用软件进行压力测试。

 

Monkey包含许多选项,主要分为以下四个类别:

 

基本配置选项,例如设置要尝试的事件数。

操作限制条件,例如将测试对象限制为单个软件包。

事件类型和频率。

调试选项。

 

Monkey在运行时会生成事件并将其发送到系统。它还会监视被测系统并查找三种特殊情况:

 

如果您已将 Monkey 限制为在一个或多个特定软件包中运行,它会监视并阻止转到任何其他软件包的尝试。

 

如果应用崩溃或收到任何未处理的异常,Monkey 会停止并报告错误。

 

如果应用生成“应用无响应”错误,Monkey 会停止并报告错误。

 

根据您选择的详细程度级别,您还将看到有关 Monkey 进度和所生成事件的报告。

 

02Monkey的基本用法

您可以使用开发计算机上的命令行启动 Monkey,也可以通过脚本启动。由于Monkey在模拟器/设备环境中运行,因此您必须从该环境中通过shell启动它。为此,您可以在每个命令前面加上 adb shell,或者直接进入 shell 并输入 Monkey 命令。

 

基本语法如下:

adb shell monkey [options] <event-count>

如果未指定任何选项,Monkey 将以静默(非详细)模式启动,并将事件发送到目标上安装的任何(及所有)软件包。下面是一个更典型的命令行,它会启动您的应用并向其发送 500 个伪随机事件:

adb shell monkey -p your.package.name -v 500

 

03

命令选项参考

 

1、常规 

输出简单的使用指南:

–help

命令行上的每个 -v 都会增加详细程度级别。

 

级别 0(默认值)只提供启动通知、测试完成和最终结果。

 

级别提供有关测试在运行时的更多详细信息,例如发送到您的 Activity 的各个事件。

 

级别提供更详细的设置信息,例如已选择或未选择用于测试的 Activity。

–v

2、事件

伪随机数生成器的种子值。如果您使用相同的种子值重新运行 Monkey,它将会生成相同的事件序列。

-s

在事件之间插入固定的延迟时间。您可以使用此选项减慢 Monkey 速度。如果未指定,则不延迟,系统会尽快地生成事件。

-throttle

调整轻触事件所占百分比。(轻触事件是指屏幕上的单个位置上的按下/释放事件。)

-pct-touch

调整动作事件所占百分比。(动作事件包括屏幕上某个位置的按下事件,一系列伪随机动作和一个释放事件。)

-pct-motion

调整轨迹球事件所占百分比。(轨迹球事件包括一个或多个随机动作,有时后跟点击。)

-pct-trackball

调整“基本”导航事件所占百分比。(导航事件包括向上/向下/向左/向右,作为方向输入设备的输入。)

-pct-nav 

调整“主要”导航事件所占百分比。(这些导航事件通常会导致界面中的操作,例如 5 方向键的中间按钮、返回键或菜单键。)

-pct-majornav

调整“系统”按键事件所占百分比。(这些按键通常预留供系统使用,例如“主屏幕”、“返回”、“发起通话”、“结束通话”或“音量控件”。)

-pct-syskeys

调整 Activity 启动次数所占百分比。Monkey 会以随机间隔发起 startActivity() 调用,以最大限度地覆盖软件包中的所有 Activity。

-pct-appswitch

调整其他类型事件所占百分比。这包括所有其他类型的事件,例如按键、设备上的其他不太常用的按钮等等

-pct-anyevent 

3、约束

如果您通过这种方式指定一个或多个软件包,Monkey 将仅允许系统访问这些软件包内的 Activity。

 

如果应用需要访问其他软件包中的 Activity(例如选择联系人),您还需要指定这些软件包。

 

如果未指定任何软件包Monkey 将允许系统启动所有软件包中的 Activity。

 

如需指定多个软件包,请多次使用 -p 选项,每个软件包对应一个 -p 选项。

-p

如果您通过这种方式指定一个或多个类别,Monkey 将仅允许系统访问其中一个指定类别中所列的 Activity。

如果没有指定任何类别Monkey 会选择 Intent.CATEGORY_LAUNCHER  Intent.CATEGORY_MONKEY 类别所列的 Activity。

指定多个类别,请多次使用 -c 选项 - 每个类别对应一个 -c 选项。

-c

 

4、调试

指定后,Monkey 将初始启动到测试 Activity,但不会生成任何其他事件。为了获得最佳结果,请结合使用 -v、一个或多个软件包约束条件以及非零限制,以使 Monkey 运行 30 秒或更长时间。这提供了一个环境,您可以在其中监控应用调用的软件包转换操作。

-dbg-no-events

如果设置此选项,则会在 Monkey 事件序列之前和之后立即生成分析报告。这将在 data/misc 下生成大型(约为 5Mb)文件,因此请谨慎使用

-hprof

通常,当应用崩溃或遇到任何类型的未处理异常时,Monkey 将会停止。如果指定此选项,Monkey 会继续向系统发送事件,直到计数完成为止。

-ignore-crashes

通常,当应用遇到任何类型的超时错误(例如“应用无响应”对话框)时,Monkey 将会停止。如果指定此选项,Monkey 会继续向系统发送事件,直到计数完成为止。

-ignore-timeouts

通常,当应用遇到任何类型的权限错误(例如,如果它尝试启动需要特定权限的 Activity)时,Monkey 将会停止。如果指定此选项,Monkey 会继续向系统发送事件,直到计数完成为止。

-ignore-security-exceptions

通常,当 Monkey 因出错而停止运行时,出现故障的应用将保持运行状态。设置此选项后,它将会指示系统停止发生错误的进程。注意,在正常(成功)完成情况下,已启动的进程不会停止,并且设备仅会处于最终事件之后的最后状态。

-kill-process-after-error

监视并报告 Android 系统原生代码中发生的崩溃。如果设置了 –kill-process-after-error,系统将会停止。

-monitor-native-crashes

阻止 Monkey 执行,直到为其连接了调试程序。

-wait-dbg

 

 


2025/09/08
软件测试中性能测试需要注意的事项

1. 明确测试目标

定义关键指标:明确响应时间、吞吐量、并发用户数、资源利用率(CPU、内存、磁盘I/O、网络)等核心指标。

业务场景建模:根据实际用户行为设计测试场景(如登录、搜索、支付等高频操作)。

SLAs(服务等级协议):与业务方协商可接受的性能阈值(如页面加载时间≤2秒)。

2. 环境配置

与生产环境一致:测试环境应尽可能模拟生产环境的硬件、网络、数据库和数据量(至少按比例缩小)。

隔离性:避免其他测试或服务干扰性能测试结果(如单独服务器、专用网络)。

数据准备:使用真实或仿真的数据集(数据量、分布、多样性),避免因数据不足导致性能误判。

3. 测试工具选择与脚本设计

工具匹配:根据技术栈选择工具(如JMeter、LoadRunner、Gatling、Locust)。

脚本真实性:模拟用户操作(思考时间、动态参数、缓存、Cookie/Session处理)。

参数化与关联:避免硬编码,使用变量和动态数据(如随机用户名、订单ID)。

4. 负载设计与执行

渐进式加压:从低负载逐步增加(如阶梯式增长),观察系统瓶颈。

峰值测试:模拟突发流量(如秒杀活动),验证系统弹性。

持续时间:长时间运行(如24小时)检测内存泄漏或资源耗尽问题。

5. 监控与分析

全链路监控:覆盖应用服务器、数据库、中间件(如Redis、MQ)、网络延迟。

日志与指标:收集系统日志、APM工具数据(如New Relic、Prometheus)。

瓶颈定位:通过工具(如Profiler、线程转储)分析代码或配置问题(如SQL慢查询、锁竞争)。

6. 常见陷阱与规避

缓存预热:避免因冷启动导致初期性能数据失真。

外部依赖:Mock或隔离第三方服务(如支付网关),防止其成为瓶颈。

测试干扰:关闭不必要的后台进程(如杀毒软件、自动更新)。

7. 结果分析与报告

基线对比:与历史数据或竞品对标,判断是否达标。

趋势分析:识别性能退化(如版本迭代后TPS下降)。

可视化报告:使用图表展示关键指标(如响应时间分布、错误率随时间变化)。

8. 其他注意事项

安全与合规:性能测试可能触发安全机制(如DDoS防护),需提前协调。

自动化集成:将性能测试纳入CI/CD流水线(如Jenkins插件),实现定期回归。

跨团队协作:与开发、运维、DBA共同分析优化(如数据库索引调整、JVM参数调优)。

示例:典型性能测试流程

需求阶段:确定性能目标(如支持1000并发用户)。

设计阶段:编写测试方案(场景、工具、环境)。

实施阶段:开发脚本、部署监控。

执行阶段:运行测试并记录数据。

优化阶段:根据结果调整系统(如扩容、代码优化)。

验证阶段:复测确认问题解决。


2025/08/02
在软件测试中,代码审计(Code Audit)是确保代码质量、安全性和可维护性的关键环节。以下是进行代码审计时需要注意的核心方面:

1. 安全性漏洞

  • 注入攻击:检查SQL注入、OS命令注入、XML注入等(如未参数化的查询)。

  • 跨站脚本(XSS):验证用户输入是否被转义或过滤。

  • 敏感数据泄露:硬编码的密码、API密钥、加密密钥等。

  • 权限问题:越权访问(水平/垂直权限缺失)、不安全的直接对象引用(IDOR)。

  • 缓冲区溢出:C/C++代码中数组越界或未校验输入长度。

  • 依赖安全:第三方库/组件是否存在已知漏洞(如通过工具扫描CVE)。


2. 代码质量

  • 代码规范:是否符合团队的编码规范(命名、缩进、注释等)。

  • 重复代码:识别冗余代码块,建议抽象为函数或模块。

  • 复杂度:高圈复杂度(Cyclomatic Complexity)可能增加维护难度。

  • 异常处理:是否捕获所有可能的异常?是否有裸的catch语句?

  • 资源管理:文件、数据库连接、网络连接是否正确释放(避免资源泄漏)。


3. 性能问题

  • 低效算法:是否存在时间复杂度高的操作(如嵌套循环)?

  • 内存泄漏:动态分配的内存是否释放(尤其C/C++)?

  • I/O操作:是否频繁读写文件或数据库?是否有不必要的阻塞调用?

  • 缓存滥用:缓存策略是否合理?是否可能导致脏数据?


4. 业务逻辑正确性

  • 边界条件:极端输入(空值、超长字符串、负数)是否处理?

  • 并发问题:竞态条件、死锁、线程安全(如共享变量未加锁)。

  • 数值计算:整数溢出、浮点精度误差、除零错误。

  • 业务规则:代码逻辑是否与需求文档一致?


5. 可维护性

  • 模块化:代码是否高内聚、低耦合?

  • 注释与文档:关键逻辑是否有清晰注释?API是否有文档?

  • 魔术数字/字符串:是否替换为常量或枚举?

  • 依赖关系:模块间依赖是否合理?是否存在循环依赖?


6. 测试覆盖

  • 单元测试:关键函数是否有单元测试?覆盖率是否达标?

  • 边缘用例:测试用例是否覆盖边界条件和异常场景?

  • Mock使用:外部依赖(如数据库、API)是否被正确Mock?


7. 合规性要求

  • 数据隐私:是否符合GDPR、CCPA等法规(如日志中记录敏感数据)?

  • 行业标准:是否遵循OWASP Top 10、CWE、MISRA(嵌入式系统)等标准?

  • 许可证合规:第三方库的许可证是否与项目兼容(如GPL传染性)?


8. 工具辅助

  • 静态分析工具:使用SonarQube、Fortify、Coverity等自动化扫描。

  • 动态分析工具:结合模糊测试(Fuzzing)或渗透测试。

  • 依赖扫描:工具如Dependabot、Snyk检查依赖漏洞。


9. 审计流程建议

  1. 明确目标:聚焦高风险模块(如身份认证、支付逻辑)。

  2. 分层检查:先架构设计,再逐层深入函数实现。

  3. 记录与跟踪:使用问题跟踪系统(如JIRA)记录缺陷并闭环。

  4. 团队协作:结合开发人员解释复杂逻辑,避免误判。


通过系统化的代码审计,可以显著降低软件风险,提升整体质量。建议将审计纳入CI/CD流程,实现持续监控。


2025/07/18
合作伙伴