全国服务热线:18684048962(微信同号)
想了解软件测试生命周期知识吗?40
发表时间:2023-07-26 10:30 ![]() ![]() 一、软件测试的目的1.基于不同的立场,存在着两种完全不同的测试目的。 2.从用户的角度出发,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑是否可接受该产品。 3.从软件开发者的角度出发,则希望测试成为表明软件产品中不存在错误的过程,验证该软件已正确地实现了用户的要求,确立人们对软件质量的信心。 4.测试的目标是能够以耗费最少时间与最小工作量找出软件系统中潜在的各种错误与缺陷。另外,我们应该认识到:测试只能证明程序中错误的存在,但不能证明程序中没有错误。因为即使实施了最严格的测试,仍然可能还有尚未被发现的错误或缺陷存在于程序当中,因而测试不能证明程序没有错误,但可能查出程序中的错误。 二、软件测试的基本概念1.测试是软件生存周期中十分重要的一个过程,是产品发布、提交给最终用户前的稳定化阶段。 2.软件测试是为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发各阶段的规格说明和程序内部结构而精心设计的一批。 三、软件测试的原则1.尽早地并不断地进行软件测试。 2.程序员或程序设计机构应避免测试自己设计的程序。 3.测试用例中不仅要有输入数据,还要有与之对应的预期结果。 4.测试用例的设计不仅要有合法的输入数据,还要有非法的输入数据。 5.在对程序修改之后要进行回归测试。 6.程序中尚未发现的错误的数量通常与该程序中已发现的错误的数量成正比。 7.妥善保留测试计划、全部测试用例、出错统计和最终分析报告,并把它们作为软件的组成部分之一,为维护提供方便。 8.应当对每一个测试结果做全面检查。 9.严格执行测试计划,排除测试的随意性。测试计划内容应包括:所测软件的功能、输入和输出、测试内容、各项测试的进度安排、资源要求、测试资料、测试工具、测试用例的选择、测试的控制方式和过程、系统组装方式、跟踪规程、调试规程、回归测试的规定以及评价标准等。 四、软件测试的对象1.从测试方法的角度可以分为手工测试和自动化测试: 2.两种常用的测试方法:黑盒测试、白盒测试 五、黑盒测试1.这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。 2.黑盒测试法是根据被测程序功能来进行测试,所以通常又叫做功能测试或数据驱动测试 3.黑盒测试方法是在程序接口上进行测试,主要是为了发现以下错误: 六、黑盒测试的测试用例设计1.等价类划分 等价类划分是一种典型的黑盒测试方法,使用这一方法时, 完全不考虑程序的内部结构,只依据程序的规格说明来设计测试用例。 等价类是指某个输入域的子集合。在该子集合中, 各个输入数据对于揭露程序中的错误都是等效的。测试某等价类的代表值就等价于对这一类其它值的测试。 2.边界值分析 1.边界值分析也是一种黑盒测试方法,是对等价类划分方法的补充。 2,从长期的测试工作经验得知,大量的错误是发生在输入或输出范围的边界上,而不是在输入范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。 3.比如,在做三角形计算时,要输入三角形的三个边长:A、B和C。 我们应注意到这三个数值应当满足A>0、B>0、C>0、 A+B>C、A+C>B、B+C>A,才能构成三角形。但如果把六个不等式中的任何一个大于号“>”错写成大于等于号“≥”,那就不能构成 三角形。问题恰出现在容易被疏忽的边界附近。 4.这里所说的边界是指,相当于输入等价类和输出等价类而言,稍高于其边界值及稍低于其边界值的一些特定情况。 5.使用边界值分析方法设计测试用例,首先应确定边界情况。 应当大于等于最大值,小于等于最小值作为边界值进行测试。 3.错误推测法 1.人们也可以靠经验和直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的例子。这就是错误推测法。 2.错误推测法的基本想法是: 列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据它们选择测试用例。 4,因果图 1.因果图的适用范围 七、软件测试的策略1.大型软件系统通常由若干个子系统组成,每个子系统又由许多模块组成。大型软件系统的测试步骤基本由以下四个步骤组成:单元测试、集成测试(组装测试)、确认测试和系统测试。 2.开始是单元测试,集中对用源代码实现的每一个程序单元进行测试,检查各个程序模块是否正确地实现了规定的功能。 3.确认测试则是要检查已实现的软件是否满足了需求规格说明中确定了的各种需求,以及软件配置是否完全、正确。 4.系统测试 把已经经过确认的软件纳入实际运行环境中,与其它系统成份组合在一起进行测试。 (一)、测试策略详解1.单元测试 (Unit Testing) 1)单元测试又称模块测试, 是针对软件设计的最小单位 ── 程序模块 ,进行正确性检验的测试工作。 2)其目的在于发现各模块内部可能存在的各种差错。 3)单元测试需要从程序的内部结构出发设计测试用例 。 4)多个模块可以平行地独立进行单元测试。 2.组装测试( Integrated Testing) 1)组装测试(集成测试、联合测试) 2)通常,在单元测试的基础上,需要将所有模块按照设计要求组装成为系统。这时需要考虑的问题是: 在把各个模块连接起来的时侯,穿越模块接口的数据是否会丢失; 3)一个模块的功能是否会对另一个模块的功能产生不利的影响; 4)各个子功能组合起来,能否达到预期要求的父功能; 5)全局数据结构是否有问题; 6)单个模块的误差累积起来,是否会放大,从而达到不能接受的程度。 7)在单元测试的同时可进行组装测,发现并排除在模块连接中可能出现的问题,最终构成要求的软件系统。 3.确认测试( Validation Testing) 1)确认测试又称有效性测试 2)任务是验证软件的功能和性能及其它特性是否与用户的要求一致。 3)对软件的功能和性能要求在软件需求规格说明书中已经明确规定。它包含的信息就是软件确认测试的基础。 4)主要由使用用户参加测试,检验软件规格说明的技术标准的符合程度,是保证软件质量的最后关键环节. 5)进行有效性测试(黑盒测试) 6)软件配置复查 4.系统测试(System Testing) 1.系统测试,是将通过确认测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其它系统元素结合在一起, 在实际运行环境下,对计算机系统进行一系列的组装测试和确认测试。 2.系统测试的目的在于通过与系统的需求定义作比较, 发现软件与系统的定义不符合或与之矛盾的地方。 3.在系统测试实施之前,软件工程师应完成以下工作: 5.验收测试( Acceptance Testing) 1.在通过了系统的有效性测试及软件配置审查之后,就应开始系统的验收测试。 2.验收测试是以用户为主的测试。软件开发人员和QA(质量保证)人员也应参加。 3.由用户参加设计测试用例,使用生产中的实际数据进行测试。 4.在测试过程中,除了考虑软件的功能和性能外,还应对软件的可移植性、兼容性、可维护性、错误的恢复功能等进行确认。 5.确认测试应交付的文档有:确认测试分析报告、最终的用户手册和操作手册 八、软件测试的过程1.测试过程说明: (1) 软件配置:指被测试软件的文件,如软件需求规格说明书、软件设计说明书和源程序清单等文档。 (2) 测试配置:指测试方案、测试计划、测试用例、测试驱动程序等文档。 (3) 测试工具:是为了提高测试效率而设计的支持软件测试的软件。例如,测试数据自动生成程序、静态分析程序、动态分析程序、测试结果分析程序以及驱动测试的测试数据库等。 (4) 测试评价:由测试出的错误迹象,分析、找出错误的原因和位置,以便纠正和积累软件设计的经验。 (5) 纠错(调试):是指找到出错的原因与位置并纠错,包括修正文件直到软件正确为止。纠错本身所具有的不确定性,常常难以准确地安排测试日程表。 (6) 可靠性模型:通过对测试出的软件出错率的分析,建立模型,得出可靠的数据,指导软件的设计与维护。 九、项目测试的基本流程1.项目测试启动:项目立项后,在测试配置库中创建项目。 2.测试计划:系统详细设计后,制定测试计划,准备测试资源。 3.设计测试用例,主要是与业务相关的测试用例。 4.实施功能模块测试,搭建运行或开发环境,采用功能模块测试表的方式,开发人员在功能模块测试表中更新进度状态,测试人员在该表中描述测试进度。形成测试错误列表,该表对每个错误都有相应的测试记录与之链接,在测试记录中,详细描述错误的情况。在测试记录中还要包括修正信息和验证信息。 5.错误关闭后,测试人员维护测试记录表和更新测试用例库和问题库,作为经验积累。 6.项目在结项时,测试人员进行项目完工验收测试,填写项目测试报告。该测试报告可作为用户验收的输入工件。 十、测试过程管理十一、测试用例的设计1.在编写测试用例之前需要准备以下几个编写的依据: 2.测试用例可以分为基本事件、备选事件和异常事件。 3.软件测试常用的设计测试用例的基本方法有:等价类划分法、边界值分析法、错误推测法、因果图法、逻辑覆盖法等。视软件的不同性质采用不同的方法。如何灵活运用各种基本方法来设计完整的测试用例,并最终实现暴露隐藏的缺陷,则要凭测试设计人员的丰富经验和精心设计。 4.测试用例的评审 5.测试用例的修改更新 6.测试用例的管理 标签:软件测试报告、测试目的 |