软件测试基础 - 系统测试

系统测试(System Testing),是将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起,进行信息系统的各种组装测试和确认测试。系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不符或与之矛盾的地方,从而提出更加完善的方案。

1.功能测试(Functionality Testing)***

概念:根据产品的需求规格说明书和功能测试需求列表,验证产品的功能实现是否符合产品的需求规格。

测试思路:a.确定功能需求列表;

              b.分析功能测试项得出功能测试子项;

              c.根据测试子项分析输入(个数、类型、范围、长度)、处理(有效-计算方式,公式,无效)和输出(结果格式、用户接口)

              d.采用测试用例方法设计用例——等价类,边界值,因果图,判定表...

 

软件测试基础 - 系统测试

首先,确定功能需求列表:用户名  密码  确认密码  Email 

其次,确定功能需求子项:由于只有一种注册方式  因而没有注册子项(若可以通过邮箱、QQ、微信等其它多种方式注册,可以列出子项)

然后,根据需求列进行输入:用户名(6~20字母数字特殊字符组合),密码,确认密码(6~20字母数字特殊字符组合),邮箱(字母或者数字组合,同时包含@)(知道每个需求的范围、类型、长度)

处理过程:系统会进行用户名唯一性检查;有效性检查;密码和确认密码一致性检查等等;

输出提示:可能会提示“用户名不唯一”;格式不正确;密码和确认密码不一致等等;

最后,设计测试用例:例如用户名:w0_men1 密码:w0_men1 确认密码:w0_men1  邮箱:womenoo@126.com

 

2.GUI测试(Graphical User Interface)

概念:GUI测试是针对软件系统GUI界面进行的测试,主要包括两方面:一是界面实现与界面设计的吻合情况;二是确认界面处理的正确性——控件的功能(结合业务功能关注控件功能)。

测试对象:

              a.简单界面元素:指功能和属性相对比较单一的界面区域,即通常所指的各种控件;

              b.组合类界面元素:主要指一些复杂的界面元素,如工具栏,组合框,表格,菜单栏等;

              c.完整界面(窗口):由一系列界面元素通过适当的形式组合而成的界面形式,最为常见的为各种窗口。包括各种对话框、单文档窗口、多文档父窗口,多文档子窗口等;

测试内容:外观、界面元素行为、布局、友好功能;

测试方法:

              ---对于简单界面元素,主要关注它的外观、表现的行为;

              ---对于组合类界面元素:可以将其分解为一系列的简单界面元素,然后再进行处理;

              ---对于完整界面:需要关注他的外观、布局以及行为

 

3.易用性测试(Usability Testing)

概念:验证产品是否符合实际应用情况,是否符合用户习惯或特殊要求,操作方式是否方便合理、设备和用户间的交互信息是否准确易于理解、是否遵从行业习惯、外观/界面是否美观等。

测试内容:涉及到所有和用户有交互的功能或子系统。这包括系统功能、系统发布、帮助文本和过程,以保证用户能够舒适的和系统交互。

 

4.国际化测试(Internationalization Testing)

     简称l18N测试,使产品或软件具有不同国际市场的普遍适应性,从而无需重新设计就可以适应多种语言和文化习俗的过程;真正的国际化要在软件设计和文档开发过程中,使产品或软件的功能和代码设计能处理多种语言和文化习俗,具有良好的本地化能力。

 

5.本地化测试(Localization Testing)

    简称L10N,是指将产品或软件针对特定国际语言和文化进行加工,使之符合特定区域市场的过程,真正的本地化要考虑目标区域市场的语言、文化、习俗、特征和标准。通常包括改变软件的书写系统(输入法)、键盘使用、字体、日期、时间和货币等。

 

6.可访问性测试(Accessibility Testing)

    是指允许听力、视力或行动有障碍的用户能够访问正常人能够访问的相同信息,例如:

         ---支持键盘操作(Tab/Enter)

         ---对比度(色弱人群)

         ---屏幕阅读器可以读取到的文本标记

         ---大字体/放大缩小(不同的浏览器有相关的设置)

         ---工具:Cytnhia Says

 

7.性能测试(Performance Testing)***

概念:验证系统在不同的业务场景下的响应时间和资源利用率等性能指标是否符合预期定义的标准。

目的:验证系统的性能指标是否符合要求;发现系统的性能瓶颈和性能调优;

性能指标:

---CPU使用情况

---内存使用情况

---系统响应时间

---系统吞吐量,即每个时间单元的处理数量(例如:系统必须在不超过10s的响应时间,处理20起登录任务)

测试思路:

           a.根据SRS确定性能需求;

           b.构造业务场景,确定其性能测试指标;

           c.测试设计(脚本设计开发、调试和优化)

           d.确定并执行测试场景;

           e.测试结果分析;

           f.分析性能问题或者瓶颈;

           h.进行性能调优 ;     

 

8.压力测试(Stress Testing)*

概念:测试在一定负载下系统长时间运行的稳定性,尤其关注大业务量情况下长时间运行系统性能的变化。通过极限测试方法,发现系统在极限或恶劣环境中自我保护能力,主要验证系统的可靠性。压力测试的目的是调查系统在其资源超负荷的情况下的表现。尤其感兴趣的是这些对系统的处理时间有什么影响。这类测试在一种需要反常数量、频率或资源的方式下执行系统。

分类:

a.稳定性压力测试

      在选定的压力值下,长时间持续运行。通过这种压力测试,可以考察各项性能指标是否在指定范围内,有无内存泄漏、有无功能性故障等;

b.破坏性压力测试

       在稳定性压力测试中可能会出现一些问题,如系统性能明显降低,但很难暴露出其真实的原因。通过破坏性不断加压的手段,往往能快速造成系统的崩溃或让问题明显的暴露出来;

 

9.负载测试(Load Testing)*

      测试在一定负载情况下系统性能(不关注稳定性,也就是说不关注长时间运行,只是得到不同负载下相关性能指标即可);实际中通常从比较小的负载开始,逐渐增加模拟用户的数量(增加负载),观察不同负载下应用程序响应时间、所耗资源,直到超时或关键资源耗尽,这就是所说的负载测试,它是测试系统的不同负载情况下的性能指标;

 

10.容量测试(Volume Testing)*

     目的是使系统承受超额的数据容量来发现它是否能够正确处理。容量测试是面向数据的,并且它的目的是显示系统可以处理目标内确定的数据容量。容量测试可以确定整个系统能够处理的业务容量,包括不同配置、不同场景下的最大用户数、最大处理数据记录数、最大处理文件容量、最大事务量等。它测试的是系统的极限容量。

 

11.安全性测试(Security Testing)***

     用来验证集成在系统内的保护机制是否能够在实际中保护系统不受到非法的侵入。用来保证系统本身数据的完整性和保密性。如当受到恶意攻击时,设备的自我保护能力,病毒防护能力,自定义通信协议安全性等。广义的还包括物理安全性测试、业务安全性测试。

主要是逻辑安全性→业务数据安全性,一般可以从以下方面考虑安全性:权限管理、信息保存、数据库、协议、其他。

认证和权限

认证:a.注册登录才可以访问;

      b.注册密码加密;

      c.密码的复杂度;

信息保存:

---Log日志

---cookie(类似会员卡) session(类似手机号)

数据库:

-----默认用户名和密码:禁用

Oracle:  Scott, Tiger

-----SQL注入,利用用户在前端输入的数据信息和后台的sql语句进行拼接。

协议

http: 透明的,不加密的协议,默认端口:80

https:加密的,安全的http+ssl  默认端口:443     网银、支付宝

Tcp/IP:三次握手协议  DDOS

安全性测试策略:

      ---分析该功能所有步骤

      ---根据步骤列出所有需要的组件-处理用户数据部分

      ---画出组件之间数据是如何传递的

      ---确定数据流的传输路径

      ---审核潜在的风险,创建测试用例

软件测试基础 - 系统测试

 

 

12.安装性测试(Installability Testing)

概念:系统的可安装性测试,主要是根据软件的测试特性列表,软件安装、配置文档,设计安装过程的测试用例,发现软件在安装过程中的错误。

目的:系统可安装性测试的目的不仅是找安装软件本身的错误,而且还要找安装文档的错误。在安装软件系统时,会有多种选择,要分配和装入文件与程序,布置适当的配置,进行程序的联结。而安装测试就要找出这些安装过程中出现的错误。

安装测试前检查工作:

---检查安装文档是否齐全;

---检查被测试软件的安装文件是否齐全;

---检查软件的文件格式是否与安装指导中要求的文件格式相符;

安装过程中的检查工作:

---所有的预置数据是否齐全;

---软件环境配置是否合理;

---硬件环境配置是否合理;

---用户选择的一套任选方案是否相容;

---安装的过程测试:安装过程中,系统要提供缺省的参数值,测试过程中要对缺省的参数值得情况进行安装测试;指定由人工完成的安装过程,要列出每一安装步骤所需的工作,并仔细检查每一安装步骤所完成工作的正确性;在安装测试过程中要设计异常的安装测试用例,包括配置参数的异常,安装选项和安装路径的异常

---安装文档的测试

安装后要做的检查工作:

---所有文件是否都已产生并确认有所需的内容;

    程序文件的目录及子目录是否正确产生

    各目录及子目录下的程序文件是否都正确产生

    是否存在无用的目录、子目录、程序文件和无用的临时文件

    程序文件的目录及子目录,以及程序文件本身的权限是否正确

    对于PC Windows下的软件,还要检查与应用软件相配套的动态联接库文件是否齐全

---安装日志的检查;

---在安装完成后,要进行程序的运行联接验证;

---软件的卸载测试;

 

13.配置测试(Configuration Testing)

概念:配置测试主要测试系统在各种软硬件配置、不同的参数配置下系统具有的功能和性能。

目标:验证全部配置的可操作性和有效性。特别需要对最大配置、最小配置或特殊配置进行测试。一般包括:

a.软件在不同主机平台上的运行情况;

b.软件在不同的组件是运行的情况;

c.在不同的外设和不同的接口下的运行情况;

d.不同的可选项的运行情况;

 

14.兼容性测试(Compatibility Testing)

概念:兼容性测试是测试软件能否与不同的软件正确协作。

目标:测试软件能否在不同的操作系统上兼容,或者在同一操作系统的不同版本上兼容;

         软件本身能否向前向后兼容;

         软件能否与其他软件兼容;

 

15.异常测试(Exception Testing)***

概念:系统异常测试又叫系统容错和可恢复性测试,它是通过人工干预手段使系统产生软、硬件异常,通过验证系统异常前后的功能和运行状态,达到检验系统的容错排错和恢复能力。它是系统可靠性评价的重要手段。

容错处理:系统自动处理;人工干预处理

注意:

---系统异常测试还与系统的指标测试有关系,当系统需要提供的服务能力大于系统的设计指标时,也属于系统异常的情况,因此应该结合起来加以考虑;

---系统的可靠性是设计出来的,而不是测试出来的。测试出来的数据有助于为我们进行进一步的系统优化设计积累经验,设计和测试时一个互为反馈的过程;

系统可靠性指标和设计技术:

a.系统可靠性指标

系统平均失效时间间隔(MTBF)---Mean Time Between Failure:两个失效点之间的时间
系统平均恢复时间(MTTR)---Mean Time To Restore   越短系统可靠性越好
平均无故障时间 (MTTF)---Mean Time To Failure  越长越好

b.设计技术

1)避开错误:主动规避错误,对可以预见的错误通过程序进行主动的出错处理,避免操作系统干预。

测试点:故意构造错误的异常的输入数据;

           边界条件;

           压力测试;---发现功能性故障

2)容错技术(冗余技术)

---结构冗余:对整机进行备份(动态备份---热备份,上电;静态备份---冷备份,不上电)

等同于人才储备

    测试点: 强制断电; 接入新设备;

---信息冗余:对数据信息进行备份,数据库备份和恢复;

     测试点: 构造数据库瘫痪;

                  构造不完整的事务;  复制或剪贴中途故意取消,看数据是否会恢复

---时间冗余:对出现故障的某个时间点,针对该时间点以后的操作,待系统恢复之后,重新再执行一遍。

    测试点:在某个时间点去构造异常

---硬件冗余:对整机中的某个组件进行备份;

 

 16.备份测试(Backup Testing)

         备份测试是恢复性测试的一个补充,目的是验证系统在软件或者硬件失败的事件中备份它数据的能力。

 

17.健壮性测试(Robustness Testing)

        用户测试系统在出现故障时,是否能够自动恢复或者忽略故障继续运行。

了解更多测试知识访问如下链接:

https://edu.csdn.net/course/detail/22948

https://edu.csdn.net/lecturer/3215

https://edu.csdn.net/course/detail/30898

https://edu.csdn.net/course/detail/25768

18.稳定性测试(Stability Testing)

        评价系统在一定负荷情况下,长时间的运行情况。包括系统在一定负荷下,再增加新的业务,原有的业务是否受影响,新的业务是否能正常工作,系统资源有无泄漏,数据有无不一致的情况,系统性能是够会降下来,关键点是长时间的运行后,系统的状况如何,系统平均无故障时间MTBF是否满足系统设计要求。(不变的负载:变化的负载)

 

19.文档测试(Documentation Testing)

        目标是验证用户文档是正确的并且保证操作手册的过程能够正确工作。

 

20.在线帮助测试(Online Help Testing)

         主要用户验证系统的实时在线帮助的可用性和正确性。

 

二、系统测试的四个阶段

系统测试计划阶段:完成系统测试计划;

系统测试设计阶段:完成系统测试方案;

系统测试实现阶段:完成系统测试用例、系统测试教程、系统测试预测试项;

系统测试执行阶段:执行系统测试预测试项、系统测试用例,修改发现的问题并进行回归测试,提交系统预测试报告、系统测试报告、缺陷报告;

 

三、系统环境测试要素

1.硬件环境

         指测试必须的服务器、客户端、网络连接设备,以及测试仪器、打印机/扫描仪等辅助硬件设备所构成的环境。

2.软件环境

         指被测软件运行时的操作系统、数据库、共享软件、测试工具及相关手册给等其他应用软件构成的环境。

---在实际测试中,软件环境又可分为主测试环境和辅测试环境;

---主测试环境是测试软件功能、安全可靠性、性能、易用性等大多数指标的主要环境;

---辅测试环境常常用来满足不同的测试需求或特殊测试项目。

3.主测试环境配置原则

a.符合软件运行的最低要求。测试环境首先要保证能支撑软件正常运行。

b.选用比较普及的操作系统和平台;

c.营造相对简单、独立的测试环境。除了操作系统,测试机上只安装软件运行和测试必须的软件,以免不相关的软件影响测试实施;

d.无毒的环境:利用有效的正版杀毒软件检测软件环境,保证测试环境中没有病毒;

 

4.辅测试环境配置原则

a.兼容性测试:在满足软件运行要求的范围内,可选择一些典型的操作系统和常用应用软件对其安装卸载和主要功能进行验证;

b.模拟真实环境测试:有些软件,特别是面向大众的商品化软件,在测试时常常需要考察在真实环境中的表现;

c.横向对比测试:利用辅助测试环境“克隆”出完全一致的测试环境,从而保证各个被测软件平等对比;

 

了解更多测试知识访问如下链接:

https://edu.csdn.net/course/detail/22948

https://edu.csdn.net/lecturer/3215

https://edu.csdn.net/course/detail/30898

https://edu.csdn.net/course/detail/25768

 

上一篇:软件测试相关术语


下一篇:[React Testing] Error State with React Testing Library, findBy*