嵌入式系统软件测试技术期末报告
嵌入式系统实验报告

嵌入式系统实验报告在本学期的嵌入式系统课程中,我与我的实验伙伴进行了多次实验。
在这篇报告中,我将分享我们实验的过程和结果。
实验一:GPIO控制LED灯在这个实验中,我们使用了Raspberry Pi 3B+开发板和一根杜邦线。
我们在电路板上将一盏LED灯与GPIO引脚连接起来,并编写了一个程序来控制这个引脚的电平状态。
在这个实验中,我们学习了GPIO的基本概念以及如何使用Python编程语言编写GPIO控制程序。
我们成功地让LED灯在不同的时间间隔内闪烁,并且了解了如何使用GPIO.setup()和GPIO.output()函数来控制GPIO引脚的输入和输出。
实验二:串口通信在第二个实验中,我们使用了两个Raspberry Pi 3B+开发板和两根串口线。
我们连接了两个板子的GPIO引脚,使得它们可以通过串口进行通信。
我们使用Python编写了两个程序来进行通信。
一个程序将发送一条消息,另一个程序将接收这个消息并将其打印出来。
通过使用串口通信,我们学会了如何使用Python编写程序来完成数据交换,并掌握了串口通信的基本概念。
实验三:Pi camera模块在第三个实验中,我们使用了Pi camera模块和一个Raspberry Pi 3B+开发板。
我们将摄像头连接到开发板上,并编写了一个程序来捕捉摄像头图像。
我们学习了如何使用Python编程语言来控制Pi camera模块,包括如何设置摄像头参数并如何捕捉静态图像。
我们还尝试了使用OpenCV库来处理图像。
实验四:蓝牙控制在最后一个实验中,我们使用了一个蓝牙透传模块、Raspberry Pi 3B+开发板和一些电路元件。
我们将蓝牙透传模块连接到GPIO引脚,并编写了一个程序来通过蓝牙信号控制电机。
在这个实验中,我们学习了如何使用蓝牙模块进行无线控制。
我们通过使用Python编写控制程序,成功地将蓝牙信号转换成GPIO引脚的电平信号来控制电机。
总结在这个嵌入式系统的实验中,我们学习了许多关于嵌入式系统的知识和技能。
嵌入式软件的测试方法与技术的研究报告

嵌入式软件的测试方法与技术的研究报告嵌入式软件测试方法与技术研究报告随着半导体技术的发展,嵌入式软件的应用范围迅速增大,从汽车电子到智能家居,几乎到处都可以看到它的身影。
嵌入式软件的测试也相应地受到重视,为了保证它的安全可靠性,有必要对其进行有效的测试。
本文就嵌入式软件测试方法和技术进行概述性介绍,以期为开发者提供有益的参考。
一、嵌入式软件的测试方法1、功能测试功能测试是嵌入式软件测试中最常见的方法,它旨在检查系统功能是否正常工作,即确保软件可以按照设计规范表现出所期望的功能。
功能测试一般采取黑盒测试、白盒测试和边界值分析等方法,并使用单元测试、子系统测试和模块测试来实施。
2、性能测试性能测试的目的是检查嵌入式软件的实际性能,检查其操作延时、访问速度和内存占用等指标,以确保它能够正确运行并满足正确的性能。
一般来说,性能测试采用压力测试、负载测试和可用性测试等,并且运用负荷模拟器和基准测试来实施。
3、安全测试安全测试是嵌入式软件测试中非常重要的一部分,它的目的是检查软件是否符合相关安全规范,以防止数据泄露或系统被破坏。
一般来说,安全测试采取静态代码分析、动态代码分析和密码安全测试等方法,并应用安全测试工具来实施。
二、嵌入式软件的测试技术1、虚拟化测试技术虚拟化测试技术是一种廉价、高效的嵌入式软件测试技术,可以快速地将测试环境与目标系统隔离,避免受现实环境影响而产生影响。
它基于虚拟化技术实现,可以节约大量的时间和成本,减少测试带来的冗余操作,同时也能够更有效地提高系统的可靠性。
2、模拟测试技术模拟测试技术也是一种嵌入式软件测试的有效方法,它可以将软件运行环境与现实环境分离,不受外部因素的影响,从而更加方便地进行测试。
模拟测试技术采用了仿真虚拟机、模拟器和调试器等多种形式,以模拟物理环境下的运行情况,从而保证软件的可靠性。
三、结论嵌入式软件的测试方法和技术可以帮助软件开发者确保软件的安全可靠性,同时也能够有效地提高开发效率。
嵌入式期末总结

嵌入式期末总结一、项目概述本项目是基于嵌入式系统的智能家居控制系统,旨在提供一个便捷、智能化的居家环境控制方案。
通过与各种家居设备进行通信,用户可以通过手机APP或语音指令控制家庭照明、温度调节、安防监控等功能。
二、项目实施1. 硬件平台选择在硬件平台的选择上,我们选用了ARM Cortex-M4芯片,主要考虑到其较低的功耗、高性能和广泛的兼容性。
2. 系统架构设计在系统架构设计上,我们采用了多任务分时调度策略,将任务分为主控任务、通信任务和设备驱动任务等。
3. 硬件电路设计根据实际需求,我们设计了多个外设接口,包括PWM控制模块、温度传感器接口、红外发射接口等,通过这些接口与各种家居设备进行通信。
4. 软件开发在软件开发上,我们采用了C语言进行开发,并结合嵌入式操作系统进行任务管理和通信处理。
同时,我们利用第三方库和算法对数据进行处理和优化。
三、项目成果通过团队成员的协作和不懈的努力,我们完成了以下主要功能:1. 远程控制:用户可以通过手机APP远程控制家庭设备的开关、亮度和模式设置等。
2. 定时控制:用户可以设置定时任务,自动控制设备开关。
3. 温度调节:根据温度传感器反馈的数据,控制温度设定值。
4. 安防监控:利用摄像头和红外传感器,实现对家庭安全的监控和报警。
四、项目总结1. 技术提升通过项目的实践,我们深入了解了嵌入式系统的设计和开发流程,学会了使用ARM Cortex-M4芯片来构建一个嵌入式系统。
同时,通过与各种传感器和外设的交互,我们掌握了多种通信协议和数据处理算法。
2. 团队协作在项目的实施过程中,我们注重团队协作,合理分配任务和资源,确保每个成员能够发挥自己的优势。
通过项目的合作,我们培养了团队合作和沟通能力,提高了解决问题的能力和应变能力。
3. 创新实践在项目的实施过程中,我们充分发挥了自己的创新能力,通过不断尝试和改进,解决了项目开发中遇到的各种问题。
同时,我们也尝试了一些新的技术和方法,不断提高自己的技术水平。
嵌入式系统及其软件测试技术

嵌入式系统及其软件测试技术嵌入式系统及其软件1.1嵌入式系统计算机自诞生以来便得到了快速的发展,加之网络技术的迅猛发展,更多的功能被加到了计算机的操作系统中,并导致其越来越大。
然而,随着计算机的广泛应用,人们对计算机软件的质量提出了更高更严格的要求。
为了适应各种多样的应用领域,考虑到系统的可伸缩性、可裁减性、灵活性,一种以计算机技术为基础、以应用为中心、软硬件可裁减、适应应用系统对可靠性、功能、成本、功耗、体积严格要求的专用计算机操作系统——EOS,即所谓的嵌入式系统便随之诞生。
当前在对嵌入式计算机系统的诸多定义中,比较正式的是:以应用为中心,软硬件可裁减,并且符合应用系统对可靠性、功能、成本、功耗、体积严格要求的专用计算机操作系统。
[16]一般而言,嵌入式系统为非PC系统,其由硬件和软件两部分组成。
处理器、存储器、图形控制器、外设器件和1/0端口等属于硬件部分。
而操作系统软件和应用程序编程则属于软件部分,操作系统软件又包括了要求实时和多任务操作。
通常,嵌入式是面向特定应用的。
就所谓的嵌入式系统而言,其是将先进的计算机系统、电子技术、半导体技术与不同行业的具体应用相结合而得的产物。
这也决定了其必然是一个技术资金密集、不断创新、用途广泛的知识集成系统。
1.2关于嵌入式系统及其软件的相关特点较之通用操作系统而言,嵌入式操作系统具有如下特征:1)小巧。
基于嵌入式系统所提供资源的有限性,嵌入式操作系统必须小巧才能满足对应硬件的限制。
2)实时性。
现在,大部分EOS都有RTOS内核,windowsCE,Linux的实时性较弱,经改进后的Limix系统的实时性变得很强,如Rl-Limix。
[17]3)强稳定性与高可靠性。
操作系统上的应用程序能否得以顺利且可靠的运行关键在于任务管理与调度策略。
4)移植性好。
大多数EOS均可在多种嵌入式处理器中应用,如MPU、DSP、MCU、PPC、ARM等。
[18]5)可裁减。
嵌入式系统实验报告

嵌入式系统实验报告引言嵌入式系统作为一种广泛应用于各行各业的计算机系统,其本身具有一定的难度与挑战。
本实验报告将围绕嵌入式系统的设计、开发以及应用展开讨论,旨在总结并分享在实验中所获得的经验与知识。
一. 实验背景嵌入式系统是指以特定功能为目标的计算机系统,其设计与开发过程相较于传统的计算机系统更为复杂和精细。
本次实验的主要目标是通过设计一个基于嵌入式系统的智能家居控制器,来探索嵌入式系统的应用与实践。
二. 实验内容2.1 硬件设计嵌入式系统的硬件设计是整个实验的基础,其合理性与稳定性直接影响系统的性能和可靠性。
在本次实验中,我们选择了一块主频为xx的处理器作为核心,配备了丰富的外设接口,如GPIO、串口等。
我们还为系统增加了一块液晶显示屏和一组按键,以实现简单的用户交互。
2.2 软件开发在硬件设计完成后,我们开始进行软件开发。
首先,我们需要选择一个合适的操作系统作为嵌入式系统的基础。
针对本次实验,我们选择了xx操作系统,其具备较强的实时性和稳定性,能够满足我们对系统性能的要求。
接着,我们进行了嵌入式系统的驱动程序开发。
通过编写各个外设的驱动程序,我们实现了与液晶显示屏和按键的交互,并将其与处理器进行了适当的接口配置。
另外,我们还开发了嵌入式系统的应用程序。
通过编写智能家居控制器的代码,我们成功实现了对家居设备的远程控制和监测。
用户可以通过液晶显示屏和按键进行交互,实现对家居设备的开关、调节和状态查看等操作。
三. 实验结果与分析经过实验测试,我们发现嵌入式系统在智能家居领域的应用具有较高的可行性与实用性。
通过嵌入式系统的控制,用户可以方便地实现对家居设备的远程操控,提升了家居智能化的程度。
同时,嵌入式系统的实时性和稳定性使得智能家居控制器具备了较高的安全性和可靠性。
然而,在实验过程中我们也遇到了一些挑战。
其中,系统的驱动程序开发是较为复杂的一环,需要仔细理解硬件接口和协议,并进行合理的配置。
此外,系统的稳定性和功耗管理也是需要重点关注的问题。
嵌入式软件测试报告(内部)

嵌入式软件测试报告(内部)软件(内部)测试报告XXX系统测试分析报告评审V1.0编写人:编写日期:审核人:审核日期:修订页目录目录 0软件测试报告(内部) (2)安装及使用测试 (5)运行环境 (5)安装易用性 (6)XXX测试 (7)安装、使用问题及建议 (7)功能单元测试 (8)串口指令响应功能测试 (8)1.测试方法及工具 (9)2.功能测试 (9)3.性能测试 (10)4.稳定及安全性测试 (10)5.BUG及建议 (11)xxx功能测试 (12)整机测试 (13)长时间工作稳定性整机测试 (13)1.测试方法及工具 (13)2.测试步骤及结果 (14)xxx整机测试 (14)整机测试问题及建议 (14)安装及使用测试附件............. 错误!未定义书签。
功能单元测试附件................. 错误!未定义书签。
整机测试附件.. 0软件测试报告(内部) CRABXLAB-0628-15 TA/0001软件测试报告编写:首先做对产品的安装及使用测试,如从运行环境、软件安装、故障指示、用户可操作性、界面友好性等方面来检测是否合理可靠;其次从功能完整性上测试,并对每个功能单元进行功能测试、性能测试、安全及稳定性测试,保证每个功能单元都稳定可靠;最后做整机测试,整机测试主要从长时间工作稳定性、异常处理(如网络、电量异常)合理可靠性等方面检查整机稳定可靠性。
安装及使用测试开发出来的软件要基于对客户或者量生产上考虑产品的使用及安装环境的易用、安全、可操作性、友好性等。
运行环境安装易用性XXX测试章节同安装及使用测试范例,由开发人员完善其他需要的测试项安装、使用问题及建议功能单元测试功能测试:测试各个功能是否满足要求(需求);主要为功能完整性测试。
性能测试:测试各个性能指标;主要来测试出各项极限参数如:最大接入点、丢包率、最大响应速度等。
稳定及安全测试:测试产品长时间工作、参数录入异常、网络异常、电压异常、超负荷等稳定及安全性测试。
嵌入式测试总结范文

嵌入式测试总结范文嵌入式系统是一种特殊的计算机系统,通过将硬件和软件结合在一起,实现特定的功能。
嵌入式系统广泛应用于各个领域,包括汽车、医疗设备、军事设备等。
对于嵌入式系统来说,测试是至关重要的,因为任何一个错误都有可能导致系统的故障或者不可预测的行为。
在嵌入式测试中,主要涉及以下几个方面:功能测试、性能测试、稳定性测试和安全性测试。
在本次测试中,我们主要关注了功能测试和性能测试。
首先是功能测试。
功能测试主要是验证系统是否按照预期工作。
在功能测试中,我们会对系统的各个功能模块进行测试,并验证其是否按照设计文档的要求工作。
在测试过程中,我们使用了多种测试技术,包括黑盒测试和白盒测试。
通过黑盒测试,我们可以测试系统的外部接口和功能,从用户的角度出发,验证系统在各种输入下是否能够正确地响应。
通过白盒测试,我们可以测试系统的内部逻辑和数据流,验证系统在各种条件下是否能够正确地处理数据和执行操作。
通过功能测试,我们可以发现系统中的各种问题和缺陷,并及时修复和优化。
然后是性能测试。
性能测试主要是验证系统在各种负载条件下的性能表现。
在性能测试中,我们会模拟真实的使用场景,并通过一系列的测试用例来评估系统在压力下的表现。
在测试过程中,我们会测试系统的响应时间、吞吐量和资源利用率等指标。
通过性能测试,我们可以了解系统在各种情况下的性能瓶颈,并优化系统的设计和实现,以提高系统的性能和可靠性。
通过本次测试,我们发现了系统中的一些问题和改进点。
首先,在功能测试中,我们发现了系统在处理大量数据时的性能问题。
系统的响应时间明显延长,导致用户等待时间过长。
这可能是由于系统的算法和数据结构设计不合理导致的。
为了解决这个问题,我们建议重新评估系统的设计,并优化系统的算法和数据结构。
其次,在性能测试中,我们发现了系统在高负载条件下的性能瓶颈。
系统的吞吐量明显下降,导致系统的处理能力无法满足用户的需求。
这可能是由于系统的硬件资源不足或者系统的并发能力不够造成的。
嵌入式系统测试实验报告

验
步
骤
、
心
得
体
会
1.分析单元测试,集成测试,系统测试的侧重点是什么?
2.试画出软件测试的过程流程。
3.论述白盒测试和黑盒测试的特点。
4.请使用等价类划分法,对学号为1开头的11位数字设计测试用例。
实验报告
院(系):课程名称:日期:
班级
学号
实验室
专业
姓名
计算机号
实验
名称
C++test的使用
成绩评定
所用
软件
教师签名
实
验
目
的
或
要
求
实
验
步
骤
、
心
得
体
会
1.根据编写的一段源程序进行测试,并写出步骤。
2.心得体会
实验报告
院(系):课程名称:日期:
班级
学号
实验室
专业
姓名
计算机号
实验
名称
Labview的使用
成绩评定
所用
软件
教师签名
实
验
目
的
或
要
求
实
验
步
骤
、
心
得
体
会
1.在LabView中,创建一个VI程序,并将此程序保存为子VI。此VI要实现的功能是:当输入发动转速时,经过一定运算过程,输出发动机温度和汽车速度值。
《嵌入式系统测试》
实验报告
院系:
专业:
班级学号:
姓名:
********
实验报告
院(系):课程名称:日期:
班级
学号
实验室
专业
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
期末总结报告
课程名称:嵌入式系统软件测试技术
学院:信息工程与自动化
专业:计算机科学与技术
年级: 2010级
学生姓名:
学生学号: 201010803116 指导教师:江虹
日期: 2013年1月2日
一、嵌入式软件测试的特点及步骤
嵌入式软件测试作为一种特殊的软件测试,它的目的和原则同普通的软件测试氏相同的,同样是为了验证或达到可靠性要求而对软件进行的测试。
但是和一般的应用软件测试的可靠性测试相比,嵌入式软件测试有自身的特点:(特别是对于没有操作系统的嵌入式应用软件而言)
1)嵌入式软件测试是在特定的硬件环境下才能运行的软件。
因此,嵌入式软件测试最重要的目的就是保证嵌入式软件能在此特定的环境下更可靠地运行。
2)嵌入式软件测试除了要保证嵌入式软件在特定环境中运行的高可靠性,还要保证嵌入式软件的实时性。
比如在工业控制中,如果某些特定环境下的嵌入式软件不具备实时响应的能力,就可能造成巨大的损失。
3)嵌入式软件产品为了满足高可靠性的要求,不允许内存在运行时有泄漏等情况发生,因此嵌入式软件测试除了对软件进行性能测试、GUI测试、覆盖分析测试是同普通软件测试一样都不可或缺之外,还需要对内存进行测试。
4)嵌入式产品不同于一般的软件产品,在嵌入式软件和硬件集成测试完成之后,并不代表测试全部完成,在第一件嵌入式产品生产出来之后,还需要对其进行产品测试。
嵌入式软件测试的最终目的是使嵌入式产品能够在满足所有功能的同时安全可靠地运行。
因此,嵌入式软件测试除了要遵循普通软件测试的原则之外,还应该遵循以下几个原则;
1)嵌入式软件测试对软件在硬件平台的测试氏必不可少的。
2)嵌入式软件测试需要在特定环境下对嵌入式软件进行测试,比如,对某些软件在工业强磁场的干扰下测试,这也是为保证嵌入式软件可靠性所必须进行的测试。
3)必要的可靠性负载测试,比如,测试某些嵌入式系统能否连续1000个小时不断电工作。
4)除了要对嵌入式软件的功能进行测试之外,还需要对实时性进行测试。
在判断系统是否失效方面,除了看它的输出结构是否正确,还应考虑其是
否在规定的时间李输出了结果。
5)在对嵌入式软件进行测试的时候,需要在特定硬件平台上进行性能测试、内存测试、GUI测试、覆盖分析测试。
这些测试可以利用相应的工具进行。
6)对嵌入式软件产品进行测试时,需要对生产出来的第一件产品进行产品测试。
总之,嵌入式软件测试的目的和原则既同普通软件测试的目的和原则有相似之处,又在一定程度上高于普通软件测试的目的和原则。
1.嵌入式软件测试的总体步骤如下:
首先进行操作系统移植并编写系统底层驱动,然后进行系统平台测试,其中包括硬件电路测试、操作系统及底层驱动程序的测试等。
如果测试不通过,需要重新进行操作系统移植和编写系统底层驱动;如果此测试通过,可以进行以下的开发——用模块化的方法编写应用代码,随后在对软件模块进行测试。
如果测试没有通过,则要对此代码模块进行修改,然后对软件模块进行测试;如果所有的模块都通过测试,需要进行集成测试,再利用关联矩阵确定需要测试模块,并重新回到软件模块测试;如果集成测试通过,则要进行系统测试。
如果系统测试未通过,需要修改程序代码,如果问题出现在操作系统的移植上,需要重新进行系统的移植;吐过问题只是出现在软件模块上,只需修改软件模块就行了。
如果系统测试通过,就可以退出测试。
在第一件产品出来之后,需要对产品进行测试,如果测试通过,则表示嵌入式产品的所有步骤已经完成。
软件测试的步骤及过程可用以下图来表示:
二、嵌入式软件测试与普通软件测试的区别
从嵌入式软件同普通软件在开发过程中的区别中可以得到嵌入式软件同普通软件在测试方面的区别:
1)因为嵌入式软件开发和运行的环境是分开的,因此,各个阶段测试的平台是不一样的。
单元测试阶段:所有单元级测试都可以在宿主机环境下进行,只有个别情况下会特别指定单元测试要直接在目标机环境下进行。
应该最大化在宿主机环境进行软件测试的比例,通过尽可能小的目标单元访问其指定单元界面,提高单元测试有效性和针对性。
集成测试阶段:软件集成也可在宿主机环境下完成,在宿主机平台上模拟目标环境运行,在此级别上的确认测试可确定一些与环境有关的的问题,比如在内存定位和分配方面的一些错误。
系统测试和确认测试阶段:所有的系统测试和确认测试必须在目标机环境下执行。
当然在宿主机上开发和执行系统测试,然后移植到目的及环境重复执行时很方便的。
对目标系统的依赖性会妨碍将宿主机上的系统测试移植到目标系统上,况且只有少数开发者会卷入系统测试,所以有时放弃在宿主机上执行系统测试可能更方便。
2)由于开发平台的复杂多样,使得嵌入式软件的测试从测试环境的建立到测试用例的编写也是复杂多样的。
与不同的开发平台对应的嵌入式软件氏肯定不同的;与相同的开发平台对应的嵌入式软件也可能是不同的。
嵌入式软件测试在一定程度上并不是只是对嵌入式软件的测试,很多情况下是对嵌入式软件在开发平台中同硬件的兼容性的测试。
因此,对于任何一套嵌入式软件系统,都需要有其自己的测试、创建其自己的测试环境。
编写其自己的测试用例。
3)由于嵌入式软件在开发时受目标机的硬件资源的限制,因此嵌入式软件在测试时应党充分考虑到对软件的性能进行测试,并且充分利用性能测试的数据来进一步优化软件。
另一方面,嵌入式软件在测试时应当充分考虑系统实时响应的问题,很多嵌入式系统会要求系统的响应时间英在多少毫秒之内。
在测试有严格响应时间要求得嵌入式系统时需要做负载测试。
4)最终的测试需要在目标机平台上进行,在对目标机进行测试时,我们需要在对宿主机上编译通过的代码进行插桩处理(插桩的代码需要根据测试用例编写),插桩完成之后,需要重新对代码进行编译,如果编译通过,就可以将编译好的代码下载到目标机上执行。
在目标机执行程序的时候,需要将插桩时预设的数据返回到宿主机上,因此,宿主机和目标及要有能够相互传递数据的网线或者串口线,宿主机上同时要有能够处理返回的数据的处理程序或软件。
5)因为嵌入式软件对系统的可靠性和安全性要求比一般的软件系统高,所以还需要进行系统的可靠性测试。
对于不同的嵌入式系统,需要制定相应的符合系统需求的可靠性级别(在软件开发的需求分析阶段完成),在进行可靠性测试时应该将系统的可靠性级别考虑进去。
三、有人认为黑盒测试是基于无知的测试,因为测试人员自始自终都不了解软件的内部代码,根据你的认识体会对此观点进行评价
答:黑盒测试也称功能测试,黑盒测试是以用户的角度,从输入数据与输出数据的对应关系出发进行测试的。
很明显,如果外部特性本身设计有问题或规格说明的规定有误,用黑盒测试方法是发现不了的。
但是黑盒测试是发现问题的最直接方式,简单方便不需要了解内部代码的执行,黑盒测试不是无知测试,是必不可少的,他需要你尽可能多的设计测试用例执行,能够很好的直观的测试出软件存在缺陷,穷举测试,而这是需要有很好的测试经验的
四、某应用程序完成如下功能:输入某年某月某日(1900年~2050年),判断这一天是这一年的第几天。
程序C源代码如下:
main()
{
int day,month,year,sum,leap;
printf("\nplease input year,month,day\n");
scanf("%d,%d,%d",&year,&month,&day);
switch(month)/*先计算某月以前月份的总天数*/
{
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=59;break;
case 4:sum=90;break;
case 5:sum=120;break;
case 6:sum=151;break;
case 7:sum=181;break;
case 8:sum=212;break;
case 9:sum=243;break;
case 10:sum=273;break;
case 11:sum=304;break;
case 12:sum=334;break;
default:printf("data error");break;
}
sum=sum+day; /*再加上某天的天数*/
printf("It is the %dth day.",sum);
}
答:满足路径覆盖指标的测试案例至少13个
3)该程序是否有缺陷?这些缺陷可以用什么测试案例检测出来?
答:有缺陷,没有考虑闰年问题。
可以用以下测试案例测试:
year=2000,month=3,day=1
预期输出:61实际输出:60
4)修改缺陷部分,给出代码。
if(year%400==0||(year%4==0&&year%100!=0))
/*判断是不是闰年*/
leap=1;
else
leap=0;
if(leap==1&&month>2)
/*如果是闰年且月份大于2,总天数应该加一天*/ sum++;。