同学们如果本内容你第一次见或者已经忘得差不多了,就背下来吧,这样会让你更专业....
尤其是第十二条↓↓↓↓↓↓↓↓
一、软件测试的定义
学术派定义:
1.用来促进鉴定软件的正确性、完整性、安全性和质量的过程;
2.是一种实际输出与预期输出间的审核或者比较过程;
3.使用人工和自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别;
白话定义:
在规定的条件下对程序进行操作,以发现错误;也是对软件质量进行评估的一个过程。
二、软件质量的定义
软件满足规定或潜在用户需求的能力。具体地说,软件质量是软件符合明确叙述的功能和性能需求、文档中明确描述的开发标准、以及所有专业开发的软件都应具有的和隐含特征相一致的程度。
三、软件测试与软件质量(QA)的区别
质量保证(QA):主要工作是通过预防,检查与改进来保证软件质量。它所关注的是软件质量的检查与测量。着眼软件开发活动中的过程、步骤及产物,而不是对软件进行剖析进而找出问题。
软件测试:测试关心的不是过程的活动,而是对过程的产物以及开发出的软件进行剖析。测试人员要“执行”软件,对过程中的产物——开发文档和源代码进行走查,运行,以找出问题,报告质量。测试人员也必须假设软件存在问题,所以所做的操作都是为了找出更多的问题,而不仅仅验证每一件事是正确的。
四、软件测试内容
根据测试定义,测试贯穿于整个软件生命周期中。在开发的不同阶段,需要测试不同的内容。包括文档,源代码,数据等。
五、软件测试的目的
软件测试的目的就是发现软件中的各种缺陷;
测试只能证明软件存在缺陷,不能证明软件不存在缺陷;
测试可以使软件中缺陷降低到一定程度,而不是彻底消灭;
以最少的用例、时间和人力找出软件中潜在的各种错误与缺陷,通过修正各种错误和缺陷来提高软件质量,回避软件发布后由于潜在的软件缺陷和错误造成的隐患以及带来的商业风险。
六、什么是软件缺陷
满足下列五大规则之一称为软件缺陷:
软件未达到产品说明书标明的功能;
软件出现了产品说明书指明不会出现的错误;
软件功能超出产品说明书指明的范围;
软件未达到产品说明书虽未指出但应该达到的目标;
软件测试人员认为软件难以理解、不易使用、运行速度缓慢,或者最终用户认为不好。
七、软件测试的分类
按开发阶段来分:单元测试、集成测试、系统测试、验收测试。
按测试的实施单位来分:开发方测试、用户测试、第三方测试。
按测试技术来分:白盒测试、黑盒测试、灰盒测试。
八、软件测试的常用种类
功能测试:对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。
黑盒测试:测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明,黑盒测试测试方法主要包括:等价类划分、边界值分析、因果图分析、错误推测法、功能图分析等。
白盒测试:是对软件的过程性细节做细致的检查,又称为结构测试或逻辑驱动测试,测试方法包括:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖等。
单元测试:是对软件中的基本组成单位进行的测试,以被测试单位的规约为基准,测试方法包括:控制流测试、数据流测试、排错测试、分域测试等。
集成测试:是在软件系统集成过程中所进行的测试,其主要目的是检查软件单位之间的接口是否正确。集成测试的策略主要有自顶向下和自底向上两种。
系统测试:是对已经集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能等满足其规约所指定的要求,测试方法很多,主要有功能测试、性能测试、随机测试等。
回归测试:是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误,回归测试的困难在于不好确定哪些内容应当被重新测试。
验收测试:由客户或最终用户执行,旨在向软件的购买者展示该软件系统满足其用户的需求,这是软件在投入使用之前的最后测试。
Alpha测试:由用户在开发者的场所进行,并且在开发者对用户的“指导”下进行测试,Alpha测试是在受控的环境中进行的。
Beta测试:由软件的最终用户们在一个或多个客房场所进行。与Alpha测试不同,开发者通常在Beta测试的现场,因Beta测试是软件在开发者不能控制的环境中的“真实”应用。
冒烟测试:是对软件基本的功能进行的快速测试,目的是确认软件基本的功能正常,保证软件系统能跑的起来,可以进行后续的正式测试工作。
随机测试:主要是根据测试者的经验对软件进行功能和性能抽查。它是根据测试说明书执行样例测试的重要补充手段,是保证测试覆盖完整性的有效方式和过程。
动态测试:就是通过运行软件来检验软件的动态行为和运行结果的正确性主要分为以下三步:构造测试实例、执行程序、分析程序的输出结果。
静态测试:是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性,可用于进一步的查错,并为测试用例选取提供指导。
UI测试:UI测试的目标是确保用户界面会通过测试对象的功能来为用户提供相应的访问或浏览功能,包括用户友好性,人性化,易操作性测试,不过UI测试比较主观,与测试人员的喜好有关。
自动化测试:利用软件测试工具自动实现全部或部分测试,它是软件测试的一个重要组成部分,能完成许多手工测试无法实现或难以实现的测试;正确、合理的实施自动测试,能够快速、全面的对软件进行测试,从而提高软件质量,节省经费,缩短软件发布周期。
性能测试:是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。
九、测试用例(Test Case)的了解
1、是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。
2、目前没有经典的定义。比较通常的说法是:指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,并形成文档。
3、是将软件测试的行为活动做一个科学化的组织归纳.目的是能够将软件测试的行为转化成可管理的模式;同时测试用例也是将测试具体量化的方法之一。
十、软件(软件测试)的生命周期
软件生命周期:是指从软件的产生直到报废的整个周期,包括可行性分析与项目计划,需求分析,概要设计和详细设计,编码,调试,维护七个阶段。
软件测试生命周期:是指从测试项目计划建立到BUG提交的整个测试过程,包括软件项目测试计划,测试需求分析,测试用例设计,测试用例执行,BUG提交五个阶段。
也可以是(测试计划 → 测试设计 → 测试开发 → 测试执行 → 测试评估)。
软件测试生命周期并行与软件生命周期,存在于软件生命周期的各个阶段。
十一、软件测试人员的主要职责
1、编写测试计划
2、编写测试用例
3、执行测试,发现缺陷提交测试报告
4、验证缺陷是否得到修改
5、编写测试总结报告
十二、优秀的软件测试人员需要具备的素质和技能
1、良好的沟通和表达能力
2、具有怀疑与破坏的精神
3、扎实的软件测试基础知识
4、缜密的业务逻辑分析能力
5、处在用户的角度进行换位思考
6、足够的耐心、细心、信心、责任心
7、积极乐观向上的心态和团队协作能力
8、要有严谨、敢于承担责任、稳重的做事风格
9、善于自我总结、自我督促和不断学习的能力
Testin云测送大家一波超级福利!
① 价值5000元的Testin专属测试大礼包(包含120分钟自动化测试、120分钟远程真机调试、每日免费使用1次标准兼容测试、每日免费使用1次安全测试);
② 原51testing产品总监陈霁老师16年测试工作总结精华 -《软件测试入门必读》课程。
如何获取福利?
登陆或者注册您的Testin账号进行企业认证,完成认证自动获得福利大礼包,认证请戳——> http://www.testin.cn
网友评论