32. while(p->next!=NULL) 33. { 34. p=p->next; 35. } 36. p->next=temp; 37. }//申请空间结束后未释放,内存泄露 38. return 0;} 二、1实验设计(包括实验方案设计,实验手段的确定,实验步骤,实验过程等 ) 1、实验原理 缺陷模式是和语言本身相关的,不同的语言有着不同的缺陷模式。这样大概可以将软件的缺陷模式分为四个层次,即故障模式、漏洞模式、缺陷模式和规则模式。 静态分析:静态测试包括对软件产品的需求和设计规格说明书的评审、对程序代码的复审等静态分析的查错和分析功能是其他方法所不能替代的,可以采用人工检测和计算机辅助静态分析手段进行检测,但越来越多地采用工具进行自动化分析。 动态分析:动态测试是通过真正运行程序发现错误,通过观察代码运行过程,来获取系统信息,对系统行为进行验证。 2、实验设计 (1) 先理解给定的程序,分析程序的逻辑和规范,进行静态测试。 (2) 将程序调试运行进行动态测试。 (3) 总结测试结果,根据测试结果改进程序。 三、主要实验工具、仪器设备及耗材 PC机; Windows操作系统; VisualStudio 2013 Community 第二部分:实验结果分析(可加页) 一、实验结果描述 根据自己的实验情况自己填写 1、静态测试 该段程序用来输入存储对象的姓名、年龄和性别,用C语言编写,自定义了一个结构体类型,并且使用动态分配内存,有多少个对象分配多少个结构体大小的内存,信息的输入采用手动输入。 ① info * head=(info*)malloc(sizeof(info));在此句中,动态分配了内存后,并没有进行是否内存分配成功的检验就进行后面的程序执行,可能会出现错误。 ② while(1) 此句的执行会导致程序进入死循环,除非强制结束。 ③在循环体内,为每一个对象个体分配内存也没有进行检验是否分配成功,如果失败会导致程序访问空指针而使程序奔溃造成错误。 ④在对象个体的信息录入时,没有限定信息录入的长度,如果超过长度会造成数组越界的错误而导致程序异常结束。 ⑤对于输入的信息没有进行有效性的检验,例如年龄的输入是否会存在字符,如果存在,在存储时就会产生错误。 ⑥程序运行结束后,没有对申请的存储空间进行释放,造成内存泄漏。 ⑦在main()主函数中定义的char name[10]; int age; char sex[10];变量并没有使用,应当去除掉以节省空间。 2、动态测试 (1) 运行程序进行正常的测试; (2) 对输入信息的格式输入错误,进行测试; (3) 信息长度测试 3,针对上面可能出现的情况设计用例如下: 用例 Case 1 Case 2 Case 3 测试用例的运行结果: 在崩溃出错前前两个用例 姓名 高艺珩 高艺珩 高艺珩。。。珩珩珩 性别 男 男 男 年龄 21 12345 21 结果 无错误,无提示 年龄越界,跳出本次循环,无提示 姓名长度越界,程序奔溃 当名字过长时崩溃 在经过测试之后对给定的源程序进行修改改进之后所得的优化后的代码如下所示: 修改后的代码: #include
实验课程名称:软件质量保证与测试__
实验项目名称 实验者 同组者 高艺珩 系统性能测试 专业班级 软件ZY1301 实验成绩 组别 实验日期 年 月 日 第一部分:实验分析与设计(可加页) 一、实验内容描述(问题域描述) 1.实验内容:数据库应用系统性能测试 2.实验要求:给出响应时间、吞吐量测试用例和结果 实验代码(java,自己创建测试数据库) Importjava.sql.Connection; Importjava.sql.DriverManager; Importjava.sql.SQLException; Importjava.sql.Statement; public class huanglei { /** * @paramargs * @throws Exception */ public void execute() throws Exception{ Class.forName(\ Connection con = DriverManager.getConnection (\ con.setAutoCommit(false); Statement st = con.createStatement(); //st.execute(\ for(inti = 100;i>0;i--){ String str = \into city values ('city\ System.out.println(str); st.addBatch(str); } //rs='select * from city'; st.executeBatch(); con.commit(); } public static void main(String[] args) { // TODO Auto-generated method stub try {