2017年9月全国计算机等级考试《三级软件测试技术》复习全书【核心讲义+历年真题详解】(txt+pdf+epub+mobi电子书下载)


发布时间:2020-06-05 02:14:04

点击下载

作者:圣才电子书

出版社:圣才电子书

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

2017年9月全国计算机等级考试《三级软件测试技术》复习全书【核心讲义+历年真题详解】

2017年9月全国计算机等级考试《三级软件测试技术》复习全书【核心讲义+历年真题详解】试读:

第一部分 备考指南

第1章 考试概述

一、考试简介

全国计算机等级考试(National Computer Rank Examination,简称NCRE),是经原国家教育委员会(现教育部)批准,由教育部考试中心主办,面向社会,用于考查应试人员计算机应用知识与技能的全国性计算机水平考试体系。

计算机技术的应用在我国各个领域发展迅速,为了适应知识经济和信息社会发展的需要,操作和应用计算机已成为人们必须掌握的一种基本技能。许多单位、部门已把掌握一定的计算机知识和应用技能作为人员聘用、职务晋升、职称评定、上岗资格的重要依据之一。鉴于社会的客观需求,经原国家教委批准,原国家教委考试中心于1994年面向社会推出了NCRE,其目的在于以考促学,向社会推广和普及计算机知识,也为用人部门录用和考核工作人员提供一个统一、客观、公正的标准。

二、考试科目级科目代考试时考核课程代科目名称别码间码计算机基础及WPS 1490分钟114Office应用一计算机基础及MS Office1511590分钟级应用计算机基础及Photoshop1611690分钟应用120分C语言程序设计24201、224钟二级120分VB语言程序设计26201、226钟120分VFP数据库程序设计27201、227钟120分Java语言程序设计28201、228钟120分29201、229Access数据库程序设计钟120分61201、261C++语言程序设计钟120分MySQL数据库程序设计63201、263钟120分Web程序设计64201、264钟120分MS Office高级应用65201、265钟120分网络技术35335钟120分36336数据库技术钟三120分37337软件测试技术级钟120分信息安全技术38338钟120分嵌入式系统开发技术39339钟网络工程师4190分钟401、403数据库工程师4290分钟404、405四级软件测试工程师4390分钟401、40544401、403信息安全工程师90分钟嵌入式系统开发工程师4590分钟401、402

说明:

同次考试考生可报考多个级别或科目,但不允许重复报考同一个科目,具体要求请想所在省级承办机构进行咨询。

报考多个科目时需咨询考点,避免考场安排时冲突。如:考生同时报考了二级C、三级网络技术、四级网络工程师三个科目,结果通过了三级网络技术、四级网络工程师考试,但没有通过二级C考试,将不颁发任何证书,三级网络技术、四级网络工程师两个科目成绩,自考试结束之日起可保留半年(按月计算)。下一次考试考生报考二级C并通过,将一次获得三个级别的证书;若没有通过二级C,将不能获得任何证书。同时,三级网络技术、四级网络工程师两个科目成绩自动失效。

三、报考条件

1.考生不受年龄、职业、学历等背景的限制,任何人均可根据自己学习和使用计算机的实际情况,选考不同等级的考试。考生一次只能报考一个科目的考试。考生一次考试只能在一个考点报名。考生可以不参加考前培训,直接报名参加考试。

2.每次考试报名的具体时间由各省(自治区、直辖市)级承办机构规定。考生按照有关规定到就近考点报名。上次考试的笔试和上机考试仅其中一项成绩合格的,下次考试报名时应出具上次考试成绩单,成绩合格项可以免考,只参加未通过项的考试。

3.特殊人员报考条件:

现役军人可使用军官证报考NCRE考试,在其军官证号码前后各加入识别码,此办法也适用于没有身份证的未成年人,识别码的编码有统一格式,前6位后4位。国务院和中央军事委员会联合下发的510号令,已经公布《现役军人和人民武装**居民身份证申领发放办法》,该办法自2008年1月1日起实施,现役军人可以通过团以上单位集中向地方公安机关申请居民身份证。

无身份证的学生可携带户口本参加报名,身份证丢失者凭公安机关开具的身份证明,外籍人员凭护照参加报名。

四、报考方式

分为考点现场报名与网上报名。

考生在考点现场报名时,需出示身份证以及缴纳相关的考试费。考生一定要亲自到场,不能由任何单位、个人代劳。考生按要求进行信息采集,并逐一核实报名表上的个人信息:姓名、身份证号、照片、报考科目、报考类别(是否补考)等,发现信息不一致要立刻更改。报名完成后请妥善保管“考生报名登记表”防止阻碍准考证的领取。

考生采取网上报名方式,需先在所在省份的网上报名系统注册并填报相关基本信息、上传正面免冠电子近照,然后网上缴费或至指定地点缴费并确认身份信息,完成报名。

一般情况下,每次考试每个考生只能在一个考点完成报名。

考生报名时缴纳的考试费的具体金额由各省级承办机构根据考试需要和当地物价水平确定,并报当地物价部门核准。考点不得擅自加收费用。

注:报名时依据的身份证明包括:居民身份证、军人的证件、护照、户口本等。

五、报考时间考试安排第一场第二场第三场报名时间12月开始5月开始11月10日以后

注:各地的报名时间由考生报考所在地的当地考试机构决定。

六、考试时间

NCRE以往每年开考两次,从2014年开始每年开考次数由两次增为三次。

2016年NCRE安排三次考试,考试时间分别为3月21日~24日、9月19日~22日、12月12日~13日,其中3月和9月考试开考全部级别全部科目,12月只开考一级和二级,由各省级承办机构根据实际情况确定是否开考12月的考试。

七、各级别考试介绍一级科一级WPS Office一级MS Office一级Photoshop目考试NCRE一级上机考试环境为Windows 7简体中文版环境考Photoshop CS5试WPS Office 2012办MS Office 2010软公软件(典型方式安装)件1.单项选择题,1.单项选择题,2020题,20分题,20分2.Windows操作系2.Windows操作系统统的使用,10分的使用,10分题3.Word操作,251.单项选择题,3.WPS文字的操型分55题,55分(含作,25分及计算机基础知识4.Excel操作,20分部分20分)4.WPS表格的操分值作,20分2.Photoshop操作比5.PowerPoint操题,45分5.WPS演示软件的例作,15分操作,15分6.浏览器(IE)6.浏览器(IE)的的简单使用和电简单使用和电子邮子邮件收发,10件收发,10分分1.考核内容包括计算机基础知识和操作技能两部分。2.各科目对基础知识的要求相同,以考查应知应会为主,题型为选择题,分数占全卷的20%(20分)。考3.办公软件类考试,操作技能部分包括汉字录入、Windows核系统使用、文字排版、电子表格、演示文稿、IE的简单应用及内电子邮件收发。容3.Photoshop考试,要求了解数字图像的基本知识,熟悉Photoshop的界面与基本操作方法,掌握并熟练运用绘图工具进行图像的绘制、编辑、修饰,会使用图层蒙版、样式以及文字工具。形完全采取上机考试形式,各科上机考试时间均为90分钟,满式分100分。获证总分不低于60分。条件参加NCRE“计算机基础及Photoshop应用”科目考生,可以在NCRE报名时自愿申请免试取得“Adobe Photoshop产品工备程师认证”证书,即:通过NCRE“计算机基础及Photoshop注应用”科目考试实现一次考试,可以同时取得全国计算机等级证书与“Adobe Photoshop产品工程师认证”证书,即“一考双证”。二级数据库程序设办公软件高级语言程序设计类计类应用办公J软VMyC科aW件VBFAccessSQC语言+目veb高PL+a级应用考试NCRE 二级上机考试环境为 Windows 7 简体中文版环境NetNe-tBeaVBnsFVMye中PisSQa国6uLn教.al(CVB6.sMS育0考0 简omMS OfVisualC考 试中体中muAccessfice+试简软国C++ 6.0文专nity2010 20+版体件教业版 5.10 ,中育5.6IE文考16.6.专试)00 业版及版2以0上071.单项选择题,401.单项选择题,40分题,20分(含(含公共基公共基础知识础知识部分题1.单项选择题,40题,40分部分10分)10分)型(含公共基础知识部分10分)2.文字处理题及2.程序填2.基本操作题,18分(Word),30分分空题,3小值空,18分3.简单应用题,24分3.电子表格题比(Excel),30分3.程序改4.综合应用/操作题,18分例错题,2个4.演示文稿题错误,24分(PowerPoint),20分4.程序设计题,18分二级定位为程序员,考核内容包括公共基础知识和程序设考计。所有科目对基础知识作统一要求,使用统一的公共基础核知识考试大纲和教程。二级公共基础知识在各科考试选择题内中体现。程序设计部分,主要考查考生对程序设计语言使用容和编程调试等基本能力,在选择题和操作题中加以体现。形完全采取上机考试形式。各科上机考试时间均为120分钟,满式分100分。获证总分不低于60分条件三级嵌入式系科数据库技软件测试信息安全网络技术统开发技目术技术技术术考试环1.NCRE三级上机考试环境为 Windows 7 简体中文版境2.数据库技术考核C语言程序设计,使用 Visual C++ 6.0与软件题型1.单选题,40题,40分及分2.综合题,40分值3.应用题,20分比例1.网络技术。网络规划与设计、局域网组网技术、计算机网络信息服务系统的建立及计算机网络安全与管理。2.数据库技术。数据库应用系统分析及规划、数据库设计及实现、数据库存储技术、并发控制技术、数据库管理与维护、数据库技术的发展及新技术。考3.软件测试技术。软件测试的基本概念、软件测试技术、软核件测试过程和管理方法。内容4.信息安全技术。信息安全保障概论、信息安全基础技术与原理、系统安全、网络安全、应用安全、信息安全管理、信息安全标准与法规。5.嵌入式系统开发技术。嵌入式系统的概念与基础知识、嵌入式处理器、嵌入式系统硬件组成、嵌入式系统软件、嵌入式系统的开发等相关知识和技能。形完全采取上机考试形式。各科上机考试时间均为120分钟,满式分100分。1.总分不低于60分,并已经(或同时)获得二级相关证书。2.三级数据库技术证书要求已经(或同时)获得二级数据库获程序设计类证书;网络技术、软件测试技术、信息安全技证术、嵌入式系统开发技术等四个证书要求已经(或同时)获条得二级语言程序设计类证书。件3.考生早期获得的证书(如Pascal、FoxBase等),不严格区分语言程序设计和数据库程序设计,可以直接报考并获得证书。参加NCRE“计算机基础及Photoshop应用”科目考生,可以在NCRE报名时自愿申请免试取得“Adobe Photoshop产品工备程师认证”证书,即:通过NCRE“计算机基础及Photoshop注应用”科目考试实现一次考试,可以同时取得全国计算机等级证书与“Adobe Photoshop产品工程师认证”证书,即“一考双证”。四级嵌入式系科网络工程数据库工软件测试信息安全统开发工目师程师工程师工程师程师考试NCRE四级上机考试环境为Windows 7简体中文版。环境题型及1.单选题,60题,60分分2.多选题,20题,40分值比例1.网络工程师。考核计算机网络、操作系统原理两门课程。测试内容包括网络系统规划与设计的基础知识及中小型网络的系统组建、设备配置调试、网络系统现场维护与管理的基本技能。2.数据库工程师。考核数据库原理、软件工程两门课程。测试内容包括数据库系统的基本理论以及数据库设计、维护、管理与应用开发的基本能力。考3.软件测试工程师。考核操作系统原理、软件工程两门课程。核测试内容包括软件测试的基本理论、软件测试的规范及标内准,以及制定测试计划、设计测试用例、选择测试工具、执容行测试并分析评估结果等软件测试的基本技能。4.信息安全工程师。考核计算机网络、操作系统原理两门课程。测试内容包括网络攻击与保护的基本理论与技术,以及操作系统、路由设备的安全防范技能。5.嵌入式系统开发工程师。考核操作系统原理、计算机组成与接口两门课程。测试内容包括嵌入式系统基本理论、逻辑电路基础以及嵌入式系统中的信息表示与运算、评价方法等基本技能。1.无纸化考试,考试总时间为90分钟,单课程考试没有时间要求。2.四级考试科目由五门专业基础课程中指定的两门课程组形成,总分100分,两门课程各占50分。式3.专业基础课程为计算机专业核心课程,包括:操作系统原理、计算机组成与接口、计算机网络、数据库原理、软件工程。两门课程分别达到30分及以上,并已经(或同时)获得三级获相关证书。证条2013年3月及以前获得的三级各科目证书,不区分科目,可以件作为四级任一科目的获证条件。参加NCRE“计算机基础及Photoshop应用”科目考生,可以在NCRE报名时自愿申请免试取得“Adobe Photoshop产品工备程师认证”证书,即:通过NCRE“计算机基础及Photoshop注应用”科目考试实现一次考试,可以同时取得全国计算机等级证书与“Adobe Photoshop产品工程师认证”证书,即“一考双证”。

·2015年NCRE继续实施2013年版考试大纲,教材参见全国计算机等级考试教材目录(2015年版)。

八、考试要求

1.熟悉软件质量、软件测试及软件质量保证的基础知识。

2.掌握代码检查、走查与评审的基本方法和技术。

3.掌握白盒测试和黑盒测试的测试用例的设计原则和方法。

4.掌握单元测试和集成测试的基本策略和方法。

5.了解系统测试、性能测试和可靠性测试的基本概念和方法。

6.了解面向对象软件和WEB应用软件测试的基本概念和方法。

7.掌握软件测试过程管理的基本知识和管理方法。

8.熟悉软件测试的标准和文档。

9.掌握QESuite软件测试过程管理平台和QESat/C++软件分析和测试工具的使用方法。

九、考试内容(一)软件测试基本概念

1.软件质量的概念。

2.软件测试的目标和原则。

3.软件测试的心理学。

4.软件测试的经济学。

5.软件质量保证。(二)软件测试的类型及其在软件开发过程中的地位

1.软件开发阶段。

2.规划阶段的测试。

3.设计阶段的测试。

4.编码阶段的测试。

5.验收和维护阶段的测试。(三)代码检查、走查与评审

1.桌面检查。

2.代码走查。

3.代码检查。

4.同行评审。(四)覆盖率(白盒)测试

1.覆盖率概念。

2.逻辑结构的覆盖测试。

3.路径覆盖测试。

4.数据流测试。

5.程序变异测试。

6.基于覆盖的测试用例选择。(五)功能(黑盒)测试

1.边界值测试。

2.等价类测试。

3.基于因果图的测试。

4.基于决策表的测试。

5.基于状态图的测试。

6.基于场景的测试。

7.比较测试。(六)单元测试和集成测试

1.单元测试的目标和模型。

2.单元测试策略。

3.单元测试分析。

4.单元测试的测试用例设计原则。

5.集成测试基本概念。

6.集成测试策略。

7.集成测试分析。

8.集成测试用例设计原则。(七)系统测试

1.系统测试概念。

2.系统测试方法。

3.系统测试的实施。(八)软件性能测试和可靠性测试

1.软件性能的概念。

2.性能测试的执行。

3.软件可靠性的概念。

4.可靠性预计。

5.可靠性分析方法。

6.软件可靠性测试的执行。(九)面向对象软件的测试

1.面向对象软件测试的问题。

2.面向对象软件测试模型。

3.面向对象软件的测试策略。

4.面向对象软件的单元测试。

5.面向对象软件的集成测试。

6.面向对象软件的系统测试。(十)Web应用测试

1.应用服务器的分类和特征。

2.Web应用系统的特点。

3.Web应用的测试策略。

4.Web应用系统测试技术。

5.Web应用系统安全测试。(十一)其他测试

1.兼容性测试。

2.易用性测试。

3.GUI测试。

4.构件测试。

5.极限测试。

6.文档测试。(十二)软件测试过程和管理

1.软件测试过程概念。

2.测试组织管理。

3.测试计划的制定。

4.测试步骤的确定。

5.测试环境管理。

6.软件测试风险分析和成本管理。

7.测试文档管理。

8.测试的复用与维护。(十三)软件测试自动化

1.测试自动化的原理、方法。

2.测试用例自动生成。

3.测试执行自动化。

4.测试结果比较自动化。

5.测试工具的分类和选择。

6.测试工具的主流产品介绍。(十四)软件测试的标准和文档

1.软件测试的标准。

2.软件测试的文档。(十五)软件测试实践

1.软件测试过程管理。(1)软件测试过程管理概念。(2)测试的设计。(3)测试的准备。(4)测试的执行。(5)软件问题报告和软件问题生命周期。(6)测试的总结。(7)QESuite软件测试过程管理平台。

2.白盒测试实践。(1)被测程序说明。(2)静态分析。(3)被测程序的插装和动态测试。(4)QESAT/C++白盒测试工具。

十、成绩及证书

1.NCRE实行百分制计分,但以等第通知考生成绩。等第共分优秀、及格、不及格三等。90~100分为优秀、60~89分为及格、0~59分为不及格。一般在考后30个工作日内由教育部考试中心将成绩处理结果下发给各省级承办机构。考后50个工作日,考生可登录教育部考试中心综合查询网(chaxun.neea.edu.cn)进行成绩查询。部分省市如江苏、黑龙江等也可通过省市考试院或者人事考试中心进行查询。

2.NCRE成绩在及格以上者,由教育部考试中心颁发合格证书。考后45个工作日教育部考试中心将证书发给各省级承办机构,然后由各省级承办机构逐级转发给考生。考生证书若丢失,可登录教育部考试中心综合查询网补办合格证明书。补办合格证明书收费21元,其中制证、邮寄费用20元,银行收取手续费1元。

3.NCRE合格证书式样按国际通行证书式样设计,用中、英两种文字书写,证书编号全国统一,证书上印有持有人身份证号码。该证书全国通用,是持有人计算机应用能力的证明,也可供用人部门录用和考核工作人员时参考。

一级证书表明持有人具有计算机的基础知识和初步应用能力,掌握Office办公自动化软件的使用及因特网应用,或掌握基本图形图像工具软件(Photoshop)的基本技能,可以从事政府机关、企事业单位文秘和办公信息化工作。

二级证书表明持有人具有计算机基础知识和基本应用能力,能够使用计算机高级语言编写程序,可以从事计算机程序的编制、初级计算机教学培训以及企业中与信息化有关的业务和营销服务工作。

三级证书表明持有人初步掌握与信息技术有关岗位的基本技能,能够参与软硬件系统的开发、运维、管理和服务工作。

四级证书表明持有人掌握从事信息技术工作的专业技能,并有系统的计算机理论知识和综合应用能力。

第2章 复习技巧

一、备考指导

1.勇往直前

进入下午考试,也许有疲劳或不好的感觉,自信心就会下降;当看到题干很长,操作较复杂的题时,就有想回避或焦虑、急燥的情绪。这是典型的“两军未战,兵先屈”的败兴思绪。要知道两对手相遇勇者胜,勇者相遇智者胜。抛开所有不必要的想法,相信自己的实力,做到心无旁鹜,勇往直前。

2.审清题干

题干包含了整个题目的条件和要求,若题干比较复杂,就要注意将题干“分段”来阅读,前后注意衔接,必要时在草稿纸上记载下关键点。有时候题干很长,看似很复杂,让很多人望而却步。其实,这种题更好解,因题干长了则提示信息也就多了。主要是考你有没有勇气和耐心。

3.解读试题

首先,要翻阅一下全部试卷,注意试题的时间及分数的分配情况,做到心中有数。

其次,要确实弄清楚每道题的题意,搞清楚题目所给予问题,明确题目要求。因为考试要求可能与自己习惯的答题要求有所不同,所以一定要按题意和要求去回答。

最后,要特别注意题目中比较隐蔽的条件。一般而言,条件隐蔽的问题难度较大,考生必须看清有关的线索,找出隐蔽条件,问题才能迎刃而解。

4.相信自己

当题做得非常顺利时,心里不要太得意,因为越是看似容易的题目越是错的多,当然也不要逆向思维,觉得这题这么简单是不是做错了,要相信自己,说到底还是要审清题目的意思;

二、题型分析

1.选择题

选择题为单选题,是客观性试题,试题覆盖面广,一般情况下考生不可能做到对每个题目都有把握答对。这时,就需要考生学会放弃,即不确定的题目不要在上面花费太多的时间,应该在此题上做上标记,立即转移注意力,作答其他题目。最后有空余的时间再回过头来仔细考虑此题。但要注意,对于那些实在不清楚的题目,就不要浪费时间了,放弃继续思考,不要因小失大。

绝大多数选择题的设问是正确观点,称为正面试题;如果设问是错误观点,称为反面试题。考生在作答选择题时可以使用一些答题方法,以提高答题准确率。(1)正选法(顺选法):如果对题肢中的4个选项,一看就能肯定其中的1个是正确的,就可以直接得出答案。注意,必须要有百分之百的把握才行。(2)逆选法(排谬法):逆选法是将错误答案排除的方法。对题肢中的4个选项,一看就知道其中的1个(或2个、3个)是错误的,可以使用逆选法,即排除错误选项。(3)比较法(蒙猜法):这种办法是没有办法的办法,在有一定知识基础上的蒙猜也是一种方法。

2.操作题

上机考试重点考察考生的基本操作能力,要求考生具有综合运用基础知识进行实际操作的能力。上机操作题综合性强、难度较大。上机考试的评分是以机评为主,人工复查为辅的。机评当然不存在公正性的问题,但却存在呆板的问题,有时还可能因为出题者考虑不周出现错评的情况。考生做题时不充分考虑到这些情况,就有可能吃亏。

掌握好上机考试的应试技巧,可以使考生的实际水平在考试时得到充分发挥,从而取得较为理想的成绩。历次考试均有考生因为忽略了这一点,加之较为紧张的考场气氛影响了水平的发挥,致使考试成绩大大低于实际水平。因此每个考生在考试前,都应有充分的准备。总结以下几点供考生在复习和考试时借鉴:(1)对于上机考试的复习,切不可“死记硬背”

根据以往考试经验,有部分考生能够通过笔试,而上机考试却不能通过,主要原因是这部分考生已经习惯于传统考试的“死记硬背”,而对于真正的知识应用,却显得束手无策。为了克服这个弊病,考生一定要在熟记基本知识点的基础上,加强上机训练,从历年试题中寻找解题技巧,理清解题思路,将各类典型试题反复练习。(2)在考前,一定要重视等级考试模拟软件的使用

在考试之前,应使用等级考试模拟软件进行实际的上机操作练习,尤其要做一些具有针对性的上机模拟题,以便熟悉考试题型,体验真实的上机环境,减轻考试时的紧张程度。(3)学会并习惯使用帮助系统

大部分软件都有较全面的帮助系统,熟练掌握帮助系统,可以使考生减少记忆量,解决解题中的疑难问题。(4)熟悉考试场地及环境

尤其是要熟悉考场的硬件情况和所使用的相关软件的情况。考点在正式考试前,会给考生提供一次模拟上机的机会。模拟考试时,考生重点不应放在把题做出来,而是放在熟悉考试环境,相应软件的使用方法,考试系统的使用等方面。(5)做上机题时要不急不燥,认真审题

先分析,后操作。明白了问题是什么以后,先把问题在脑海里过一遍,考虑好如何操作后,再依思路从容做答。而不要手忙脚乱、毛毛躁躁、急于作答。对于十分了解或熟悉的问题,切忌粗心大意、得意忘形、而应认真分析,必须将题目给出的全部内容逐字看清楚后针对具体问题进行操作。

常言道“熟能生巧”、“打铁还得本身硬”,再好的方法与技巧若没有基础,是发挥不了作用的;如若有了一定的功底,再差的招式也会产生很大的威力,就像金庸小说中杨过的那柄钝剑。但是如果只看不练,不会有提高。建议大家多做模拟试题和历年试题,锻炼解题的能力与节奏。

第二部分 核心讲义

第1章 软件测试的基本概念

1.1 复习笔记

一、软件质量的概念

1.软件质量的定义(1)国际上对软件质量的定义

软件质量是产品、组织和体系或过程的一组固有特性,反映它们满足顾客和其他相关方面要求的程度。(2)我国的《软件工程术语》对软件质量的定义

①软件产品中能满足给定需要的性质和特性的总体。

②软件具有所期望的各种属性的组合程度。

③顾客和用户觉得软件满足其综合期望的程度。

④确定软件在使用中将满足顾客预期要求的程度。

2.软件质量的属性(1)软件产品应满足客户的功能需求

这是首要的,性能需求包括处理和响应时间。约束条件则表示外部硬件、可用存储或其他现有系统对软件的限制。功能、性能和约束必须在一起进行评价。当性能限制不同时,为实现同样的功能,开发工作量可能相差一个数量级。如果功能保持相同而性能可变,则开发软件需要的工作量和成本将有显著的差异。(2)软件产品应具备一定的可扩展性和灵活性

一个质量优秀的软件应该能够在一定程度上适应需求的变化,并保持软件的稳定。(3)软件产品应能够有效处理例外或异常情况

实践表明,实现主体功能的工作量其实不大,真正的工作量都在处理各种异常。所以,一个软件如果具有足够的容错能力和纠错能力,能够承受各种非法情况的冲击,这个软件就是高质量的。

因此,软件质量实际上是各种特性的复杂组合。它随着应用软件的不同而不同,随着用户提出的质量要求不同而不同。讨论一个软件的质量,应归结到定义软件的质量属性,即其质量特性。定义一个软件的质量,就等价于为该软件定义一系列质量属性。

3.软件质量模型(1)概念

人们通常把影响软件质量的特性用软件质量模型来描述。已有多种有关软件质量模型的方案。它们共同的特点是:把软件质量特性(质量属性)定义成分层模型。最基本的称为基本质量特性,它可以由一些子质量特性定义和度量。这些子质量特性在必要时又可由它的一些子质量特性定义和度量。(2)典型模型——ISO的软件质量模型。

①概念

按照ISO/IEC9126—1:2001(对应国家标准GB/T16260.1—2006),软件质量模型分为内部质量模型、外部质量模型和使用质量模型。内部质量和外部质量规定了6个质量特性,它们可以进一步细分为子特性。当软件作为整个计算机系统的一部分时,这些子特性作为内部质量特性,其结果从外部显现出来。该模型没有进一步对子特性细化,而更低层的子特性可以由各使用单位视实际情况制定。

②外部质量

a.定义

外部质量表征软件产品在规定条件下使用时满足规定的和隐含的要求的程度。外部质量是从外部看软件产品的全部特性。对软件的外部质量特性和影响质量特性的子特性的定义如表1-1所示。表1-1 表征外部质量的质量特性

特性说明当软件在指定条件下使用时,软件产品提供明确的功能性和隐含要求的功能的能力在指定条件下使用时,软件产品维持规定的性能水可靠性平的能力在指定条件下使用时,软件产品被理解、学习、使可使用性用和吸引用户的能力在规定条件下,相对于所用资源的数量,软件产品

效率可提供适当性能的能力软件产品纠正错误、改进功能或适应环境、需求和可维护性功能规格说明的变化可被修改的能力可移植性软件产品从一种环境迁移到另外一种环境的能力

b.外部质量需求

外部质量需求包括对用户质量要求进行分析综合后得到的需求(包括使用质量需求),在开发期间应当转换为内部质量需求,并且在评价产品时应作为评价准则使用。

③内部质量

a.定义

内部质量表征软件产品在规定条件下使用时,决定其满足规定的和隐含的要求的能力的产品属性的全体。内部质量是从内部看软件产品的全部特性。对软件的内部质量特性和影响质量特性的子特性的定义如表1-2所示。表1-2 表征内部质量的质量子特性特性说明适合软件产品为指定的任务和用户目标提供一组合适的性功能的能力准确软件产品提供具有满足精度要求的正确的或相符的性结果或效果的能力互用软件产品与一个或更多指定的(相关)系统进行交性互的能力功能性安全保护软件产品的信息和数据的能力,以使未经授权保密的人员或系统不能阅读或修改这些信息和数据,而性不拒绝经过授权的人员或系统对它们的访问功能性的软件产品遵循与功能性相关的标准、约定或法规,依从以及类似规定的能力性成熟避免软件产品因其内部故障而失效的能力性可靠容错在软件内部存在故障或其使用方式违反接口规定性性时,软件产品维持其绩效的能力易恢在失效发生的情况下重建软件产品规定的绩效水平复性并恢复受直接影响的数据的能力可靠性的软件产品遵循与可靠性相关的标准、约定或法规的依从能力性易理让用户理解软件是否合适及如何能将软件用于特定解性任务和使用条件的能力易易学让用户学会使用软件产品的能力性用性易操让用户能操作和控制软件产品的能力作性吸引软件产品吸引用户的能力(如外观)性易用性的软件产品遵循与易用性相关的标准、约定、风格指依从南或法规的能力性时间软件产品在规定条件下执行其功能时满足适当的响特性应和处理时间以及吞吐率的能力资源效软件产品在规定条件下执行其功能时有效利用合适利用数量和类型的资源的能力益性效率的依软件产品遵循与效率相关的标准或约定的能力从性易分软件产品诊断软件中的缺陷或失效原因或识别待修析性改部分的能力易改软件产品使指定的修改可以被实现的能力变性可维稳定软件产品避免由于软件被修改而造成意外结果的能护性力性易测软件产品使已修改软件能被确认的能力试性可维护性软件产品遵循与可维护性相关的标准或约定的能力的依从性适应软件产品无须采用额外的活动或手段就可以适应不性同指定环境的能力(包括内部容量的可伸缩性)易安软件产品在指定环境中被安装的能力装性可共存软件产品在公共环境中同与其共享公共资源的其他移性独立软件共存的能力植易替软件产品在同样环境下替换另一个相同用途的指定换性软件产品的能力(包括版本兼容性)可移植性软件产品遵循与可移植性相关的标准或约定的能力的依从性

b.内部质量需求

内部质量需求包括静态和动态的模型、其他文档和源代码等,可用做不同开发阶段的确认指标,也可以用于开发期间定义开发策略以及评价和验证的准则。外部质量和内部质量的质量模型如图1-1所示。图1-1 外部质量和内部质量的质量模型(3)使用质量的质量模型

①概念

使用质量是软件产品在规定的使用环境中,规定的用户能实现规定目标的要求,并具有有效性、生产率、安全性和满意度的能力。

使用质量是从软件所处的环境的角度,用软件在这个环境中的使用绩效来测量的。

②使用质量的模型及特性

使用质量的质量模型如图1-2所示。

使用质量的质量特性分为4种:有效性、生产率、安全性和满意度。它们的定义如表1-3所示。图1-2 使用质量的质量模型表1-3 使用质量的质量特性

特性说明软件产品在指定的上下文环境下,让用户能达到与有效性准确性和完备性相关的规定目标的能力软件产品在指定的上下文环境下,让用户为达到有生产率效性目标而消耗适当数量资源的能力。其中,资源包括工作时间、人员工作量、耗材和资金软件产品在指定的上下文环境下,达到对人类、业务、软件、财产或环境造成损害的可接受风险水平安全性的能力。风险常常是由于功能性(包括安全保密性)、可靠性、易用性或可维护性中的缺陷导致的软件产品在指定的上下文环境下让用户满意的能力满意度(用户使用的反馈意见)

4.软件质量的度量(1)软件生存周期的三个阶段

①软件需求定义阶段

根据用户的质量要求定义软件的质量要求。

②软件产品开发阶段

使得软件产品具有要求的质量。

③软件运行和维护阶段

测量软件是否达到了用户的质量要求并维护软件的性能水平。(2)用户质量要求

用户质量要求可以用使用质量度量、外部质量度量表达,有时也可以用内部质量度量来表达。用这些度量表达的要求将作为产品确认的准则。

①外部质量要求

从外部规定要求的质量水平,外部质量要求用做各开发阶段的确认目标,在《质量要求规格说明》中用外部质量度量规定,并且应当转换为内部质量要求。

②内部质量要求

从内部的观点规定要求的质量级别,用于说明中间产品的特性。内部质量要求可以用做各开发阶段的确认目标,也可以用于定义开发策略和开发期间评价和验证的准则。内部质量要求用内部度量数据定量地规定。(3)度量类型之间的关系

度量类型之间的关系如图1-3所示。图1-3 度量类型之间的关系

①外部度量

在测试和使用软件产品的过程中通过观察该软件产品的系统行为、执行对该软件产品系统行为的测量而导出度量的结果,从而评价软件产品的质量。

②内部度量

a.概念

在设计和编码过程中,对于中间产品(如规格说明或源代码),通过分析该产品的静态性质来测量其内部质量特性或指示其外部质量特性。

b.目的

为了确保获得所需的外部质量和使用质量。用户、评价人员、测试人员和开发人员可以在产品可执行之前通过内部度量来评价软件产品的质量。

③内部度量和外部度量之间的关系

当定义了软件产品的质量需求之后,首先把表征这些质量需求的软件质量特性和质量子特性列举出来,然后确定适当的外部度量和接受范围来量化满足用户要求的质量(确认)准则,定义和规定与外部度量有密切联系的内部质量特性。接下来,在开发过程中将这些内部质量特性纳入产品开发中来,并在开发期间使用这些质量特性来验证中间产品是否满足内部质量的规格说明。

④使用质量的度量

a.概念

使用质量的度量主要用于测量软件产品在特定的使用环境下满足特定用户达到特定目标所要求的有效性、生产率、安全性和满意度的程度。使用质量是从用户角度对软件产品提出的质量要求,它是根据软件使用的绩效而不是软件自身的特性来测量的。使用质量是面向用户的内部和外部质量的组合效果。

b.用户类型对使用质量的影响

使用质量与其他软件产品质量特性之间的关系取决于用户的类型:

第一,对最终用户来说使用质量主要是功能性、可靠性、易用性和效率的结果。

第二,对维护软件的人员来说使用质量是可维护性的结果。

第三,对移植软件的人员来说使用质量是可移植性的结果。

5.影响软件质量的主要因素(1)影响软件产品质量的要素

①开发软件产品的组织;

②开发过程;

③开发过程中所使用的方法和技术。(2)决定软件产品质量的因素

①开发方法和工具

包括设计、编码、测试和维护方法;设计、编码、测试、维护工具以及需求跟踪工具;进程和状态报告及缺陷跟踪;设计和代码走查;正式评审。

②开发人员的训练水平

开发人员的开发经验以及结构化方法的经验。

③软件开发的组织形式

包括组织机构、指导方针以及使用的标准。

④文档的提供

包括在源代码中的文档和软件开发所需的文档,即配置管理计划、质量保证计划、软件开发计划及软件测试计划。

⑤复杂性

即结构和功能的复杂性。

⑥环境

指终端用户的实际使用环境以及对环境建模的难易程度。具体的环境因素包括:软件、硬件与人之间的接口;用户的培训;输人数据的确认。

⑦现有的软件原型

包括在概念构想、需求分析和设计阶段所创建的原型。

⑧需求的转换和可跟踪性

⑨测试方法

包括独立的验证和确认(V&V)技术;责任分配;专职的开发、测试和编码;不独立的测试。

⑩维护活动(文件、标准和方法)

⑪计划和资源

⑫更高级的语言

⑬现有的类似软件

⑭影响软件的质量属性

包括可维护性、可复用性、安全性、容错性、保密性、精度、灵活性、性能、用户友好性等。

二、软件测试的概念

1.软件测试的定义与目的(1)定义

关于软件测试,1990年IEEE在其IEEE 610.12标准中给出的较正式的定义为:

①在规定条件下运行系统或构件的过程——在此过程中观察和记录结果,并对系统或构件的某些方面给出评价。

②分析软件项目的过程——在此过程中检测现有状况和所需状况之间的不同(即Bug),并评估软件项目的特性。

在上述定义中,关键词是“运行”、“检测”和“评价”。(2)测试的三个层面

①精心地设计一批测试用例,力图以最少的时间和人力运行程序。

②检查实际执行结果,与预期结果进行对比,看期望结果和实际结果间是否有差别。

③做出两方面的评估,若期望结果和实际结果不符,说明软件中存在潜在的各种缺陷;若相符,则可证明软件的功能和性能与需求说明相符合。(3)目的

①证伪“测试的目的是证伪。”这是1979年Glenford J.Myers提出的著名观点。他给出了与测试相关的3个重要观点,具体如下:

a.测试是为发现错误而执行的一个程序或者系统的过程。

b.一个好的测试用例是在于它能发现至今未发现的错误。

c.一个成功的测试是发现了至今未发现的错误的测试。

这种提法强调测试人员不断思考开发人员理解的误区、不良的习惯、程序代码的边界、无效数据的输入以及系统的各种弱点,试图破坏系统、摧毁系统。目标就是发现系统中各种各样的问题。这种方法往往能够发现系统中存在的更多缺陷。

②证明软件是工作的“测试就是建立一种信心,确信程序能够按预期的设想运行。”这是1972年Bill Hetzel提出的。他所说的“设想”和“预期的结果”其实就是指“用户需求”。他还把软件的质量定义为“符合要求”。他认为:测试是试图验证软件是“工作的”,“工作的”就是指软件的功能是按照预先的设想执行的。

这种提法是想在所有设计规定的环境中运行软件的所有功能,目标是确认这些功能的适合性和正确性。

2.软件测试的原则

根据软件测试的目的,软件测试的原则如下:(1)尽早地和不断地进行软件测试

①原因

由于软件所涉及问题的复杂性,软件本身的复杂性和抽象性,软件开发各个阶段工作的多样性,以及参加软件开发的各层次人员之间工作的配合关系等因素,使得开发的每个环节都可能产生错误,所以人们不应把软件测试仅仅看做是软件开发的一个独立阶段,而应当把它贯穿到软件开发的各个阶段中。

②目的

坚持在软件开发的各个阶段进行技术评审,才能在开发过程中尽早发现和预防错误,把出现的错误克服在早期,减少开发费用,提高软件质量。(2)测试用例由测试输入数据和预期输出结果组成

测试以前应当根据测试的要求选择测试用例(Test Case),以在测试过程中使用。测试用例主要用来检验程序员编制的程序,因此不仅需要测试的输入数据,而且需要针对这些输入数据的预期输出结果。(3)避免程序员检查自己的程序

程序员应尽可能避免测试自己编写的程序,程序开发组也应尽可能避免测试本组开发的程序。如果条件允许,最好建立独立于开发组和客户的第三方测试组或测试机构。程序的调试(Debuging)由程序员自己来做可能更有效。(4)测试用例包括合理的输入条件和不合理的输入条件

合理的输入条件是指能验证程序正确的输入条件,而不合理的输入条件是指异常的、临界的输入条件。

在测试程序时,人们倾向于考虑合理的和期望的输入条件,忽视了不合理的和预想不到的输入条件。事实上,软件在投入运行以后,用户往往使用了一些意外的输入,如果软件遇到这种情况时轻则给出错误的结果,重则导致软件失效。(5)充分注意测试中的群集现象

①群集现象的概念

在被测程序段中,若发现的错误数目多,则该程序段内残存的错误数目也多。

②80-20原则

80%的软件缺陷产生于20%的软件构件;80%的测试效果取决于20%的测试工作;修复20%的缺陷可以带来80%的客户满意效果。(6)严格执行测试计划,排除测试的随意性

测试之前,应周密地考虑被测软件的测试目标和测试内容,事先制定出细致的计划和安排测试资源,包括方法、时间、人员和规程。在测试过程中要严格按照测试计划执行,以避免发生疏漏或重复无效的工作,测试的中间产物应当经过评审并纳入配置管理中。测试计划起到一个关键的测试管理作用,它定义了各个阶段的测试所使用的策略及方法、测试环境、测试通过或失败准则等内容。制订测试计划的目的是要确保各项测试活动有组织地、平滑地进行。(7)对每一个测试结果做全面检查

有些错误的征兆在输出实测结果时已经明显地出现了,但是如果不仔细全面地检查测试结果,就会使这些错误被遗漏掉,所以必须对预期的输出结果明确定义,对实测的结果仔细进行分析检查,抓住征候,暴露错误。(8)妥善保存相关文档

妥善保存测试计划、测试用例、出错统计和最终分析报告,以便为以后的回归测试及维护提供方便。

三、软件的缺陷与错误

1.软件缺陷的定义和类型(1)缺陷的标准定义

①从产品内部看,缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题。

②从产品外部看,缺陷是系统所需要实现的某种功能的失效或违背。(2)缺陷的主要类型

①软件没有实现产品规格说明所要求的功能。

②软件中出现了产品规格说明指明不应该出现的错误。

③软件实现了产品规格说明没有提到的功能。

④软件没有实现虽然产品规格说明没有明确提及但应该实现的目标。

⑤软件难以理解,不容易使用,运行缓慢,或从测试员的角度看,最终用户会认为不好。

2.软件缺陷的级别(1)致命的(Fatal)

致命的错误,造成系统或应用程序崩溃、死机、系统悬挂,或造成数据丢失、主要功能完全丧失等。(2)严重的(Critical)

严重错误,指功能或特性没有实现,主要功能部分丧失,次要功能完全丧失,或致命的错误声明。(3)一般的(Major)

不太严重的错误,这样的软件缺陷虽然不影响系统的基本使用,但没有很好地实现功能,没有达到预期效果。如次要功能丧失、提示信息不太准确,或用户界面差、操作时间长等。(4)微小的(Minor)

一些小问题对功能几乎没有影响,产品及属性仍可使用,如有个别错别字、文字排列不整齐等。

3.软件缺陷的状态(1)活动状态(Active或Open)

问题还没有解决,测试人员新报告的缺陷,或验证后缺陷仍然存在。(2)已修正状态(Fixed或Resolved)

开发人员针对所存在的缺陷,修改程序,认为已解决问题,或通过单元测试。(3)非活动状态(Close或Inactive)

测试人员验证已修正的缺陷后,确认缺陷不存在之后的状态。

4.软件缺陷产生的原因(1)技术问题

①算法错误

在给定条件下没能给出正确或准确的结果。

②语法错误

对于编译性语言程序,编译器可以发现这类问题;但对于解释性语言程序,只能在测试运行的时候发现。

③计算和精度问题

计算的结果没有满足所需要的精度。

④系统结构不合理、算法选择不科学,造成系统性能低下。

⑤接口参数传递不匹配,导致模块集成出现问题。(2)团队工作

①系统需求分析时对客户的需求理解不清楚,或者和用户的沟通存在一些困难。

②不同阶段的开发人员相互理解不一致。

③对于设计或编程上的一些假定或依赖性,相关人员没有充分沟通。(3)软件本身

①文档错误、内容不正确或拼写错误。

②没有考虑大量数据使用场合,从而可能会引起强度或负载问题。

③对程序路径或数据范围的边界考虑不周,漏掉某些边界条件很容易造成容量或边界错误。

④对于一些实时应用,要进行精心设计和技术处理,保证精确的时间同步,否则容易引起时间上不协调、不一致性带来的问题。

⑤没有考虑系统崩溃后的自我恢复或数据的异地备份、灾难性恢复等问题,从而存在系统安全性、可靠性的隐患。

⑥硬件或系统软件上存在的错误。

⑦软件开发标准或过程上的错误。

5.软件缺陷的构成(1)功能缺陷

①规格说明书缺陷

规格说明书可能不完全,有二义性或自身矛盾。另外在设计过程中可能修改功能,如果不能追踪这种变化,及时修改规格说明书,则会产生规格说明书缺陷。

②功能缺陷

程序实现的功能与用户要求的不一致,常是由于规格说明中包含错误的功能、多余的功能或遗漏的功能所致。在发现和改正这些缺陷的过程中又可能引入新的缺陷。

③测试缺陷

软件测试的设计与实施发生错误。特别是系统级的功能测试,要求复杂的测试环境和数据库支持,还需要编写测试脚本。

④测试标准引起的缺陷

对软件测试的标准要选择适当。若测试标准太复杂,则会增加测试过程出错的可能性。(2)系统缺陷

①外部接口缺陷

外部接口是指系统与外部环境通信的手段。所有外部接口之间,包括人与系统之间的通信协议有错,或太复杂,难以理解,都会导致在使用中出错。此外,外部接口缺陷还包括对输入/输出格式理解错误,对输入数据不合理的容错等。

②内部接口缺陷

内部接口是指程序内部子系统或模块之间的联系。它所发生的缺陷与程序内的实现细节有关。如设计协议错、输入/输出格式错、数据保护不可靠、子程序访问错等。

③硬件结构缺陷

与硬件结构有关的软件缺陷在于不能正确地理解硬件如何工作。

④操作系统缺陷

与操作系统有关的软件缺陷主要是由于不了解操作系统的工作机制而导致的。当然,操作系统本身也有缺陷,但是一般用户很难发现这种缺陷。

⑤软件结构缺陷

由于软件结构不合理而产生的缺陷。这种缺陷通常与系统的负载有关,而且往往在系统满载时才出现。如错误地设置局部参数或全局参数;错误地假定寄存器与存储器单元初始化了;错误地假定被调用子程序常驻内存或非常驻内存等,都将导致软件出错。

⑥控制与顺序缺陷

如忽视了时间因素而破坏了事件的顺序;等待一个不可能发生的条件;漏掉先决条件;规定错误的优先级或程序状态;漏掉处理步骤;存在不正确的处理步骤或多余的处理步骤等。

⑦资源管理缺陷

由于不正确地使用资源而产生的缺陷。如使用未经获准的资源;使用后未释放资源;资源死锁;把资源链接在错误的队列中等。(3)加工缺陷

①算术与操作缺陷

算术与操作缺陷是指在算术运算、函数求值和一般操作过程中发生的缺陷。如数据类型转换错;除法溢出;不正确地使用关系比较符;不正确地用整数与浮点数做比较等。

②初始化缺陷

如忘记初始化工作区,忘记初始化寄存器和数据;错误地对循环控制变量赋初值;用不正确的格式、数据或类型进行初始化等。

③控制和次序缺陷

与系统级同名缺陷相比,它是局部缺陷。如遗漏路径;不可达到的代码;不符合语法的循环嵌套;循环返回和终止的条件不正确;漏掉处理步骤或处理步骤有错等。

④静态逻辑缺陷

如不正确地使用switch语句;在表达式中使用不正确的否定(例如用>代替<的否定);对情况不适当地分解与组合;混淆“或”与“异或”等。(4)数据缺陷

①动态数据缺陷

动态数据是在程序执行中暂时存在的数据。各种动态数据在程序执行期间将共享一个共同的存储区域,若程序对数据的空间分配考虑不周,就会导致数据出错。

②静态数据缺陷

静态数据在内容和格式上都是固定的。它们直接或间接地出现在程序或数据库中,由编译程序或其他专门的程序进行预处理,但预处理也会出错。

③数据内容缺陷

数据内容是指存储于存储单元或数据结构中的位串、字符串或数字。数据内容缺陷就是由于内容被破坏或被错误地解释而造成的缺陷。

④数据结构缺陷

数据结构是指数据元素的大小和组织形式。在同一存储区域中可以定义不同的数据结构。数据结构缺陷包括结构说明错误及数据结构误用的错误。

⑤数据属性缺陷

数据属性是指数据内容的含义或语义。数据属性缺陷包括对数据属性不正确的解释,如错把整数当实数,允许不同类型数据混合运算而导致的错误等。(5)代码缺陷

包括数据说明错、数据使用错、计算错、比较错、控制流错、界面错、输入/输出错,以及其他的错误。

6.修复软件缺陷的代价

缺陷被发现之后,要尽快修复这些被发现的缺陷。其原因在于错误并不只是会在编程阶段产生,需求和设计阶段同样会产生错误。

如果错误不能及早发现,那只可能造成越来越严重的后果。缺陷发现或解决得越迟,成本就越高。修正错误的代价不是随时间线性增长的,而几乎是呈指数增长的。

四、软件测试的经济学与心理学

1.软件测试的心理学

软件测试的心理学问题就是如何摆正测试的两个目标的关系,使得测试活动更加富有成效。(1)程序测试的过程具有破坏性

①测试的破坏性

人们总是希望通过测试,找出并修改尽可能多的程序缺陷,从而提高程序的可靠性或质量。因此,不要只是为了证明程序能够正确运行而去测试程序;相反,应该一开始就假设程序中隐藏着错误(这种假设对于几乎所有的程序都成立),然后测试程序,发现尽可能多的错误。这意味着程序的测试过程是具有破坏性的,甚至是一个“施虐”的过程。

②判定成功的标准

为增进对软件测试正确定义的理解,另一条途径是分析对“成功的”和“不成功的”这两个词的使用。如果在测试某个程序段时发现了可以纠正的缺陷,或者测试最终确定再没有其他缺陷,则应将这次合理设计并得到有效执行的测试称为“成功的”。而“不成功的”测试,仅指未能适当地对程序进行检查,未能找出程序中潜藏缺陷的测试。因为软件中不可能没有缺陷,没有找出它们,当然测试就是“不成功的”。

③心理学解释

心理学研究还指出,当人们在干一件已经知道是不合适的或不可能做到的事时,他们的表现往往相当糟糕。如果把程序测试定义为在程序中找出错误的过程,就使测试成了可以做到的任务,从而克服了心理上存在的问题。

总之,软件测试更适宜被视为试图发现程序中错误(假设其存在)的破坏性过程。一个成功的测试,通过诱发程序发生错误,可以在这个方向上促进软件质量的改进。当然,最终人们还是要通过软件测试来建立某种程度的信心:软件做了其应该做的,而没有做其不应该做的。(2)程序员应避免测试自己的程序

开发和测试生来就是不同的活动。开发是创造性的行为,测试是破坏性的活动,它们之间有着本质的矛盾。程序员避免测试自己程序的原因有:

①一个人不太可能把两个截然对立的角色都扮演得很好。当一个程序员在完成了设计与编写程序的建设性工作后,要一夜之间突然改变他的观点,设法对程序形成一个完全否定的态度,那是非常困难的,因此开发人员不能有效地测试自己的程序。

②程序中可能包含由于程序员对问题的叙述或说明存在误解而产生的错误,当程序员测试自己的程序时,往往还会带着同样的误解,致使问题难以发现。(3)程序设计组织不应测试自己的程序

①原因

程序设计组织在测试自己的程序时持客观态度是困难的,因为如果用正确的定义看待测试,就不大可能按预定计划完成测试,也不大可能把耗费的代价限制在要求的范围以内。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载