问答题类和用例之间有什么类似之处?有何差异之处?
问答题下图是一个简单的ATM机中描述验证信用卡PIN活动的有限状态机。其中包含5个用表示的状态和8个用一表示的转移。转移上的标签所遵循的是:横线上方是引起转移的事件,横线下方是与该转移相关联的行动。该有限状态机允许储户有3次输入PIN的机会,如果3次都输入错误,则停止交易退卡。请完成下列工作:
问答题下图是结构化程序设计方法的设计过程的流程图,请按要求回答问题。
问答题针对以下C语言程序,请按要求回答问题。 已知link.c源程序如下: /*link.c程序对单向链表进行操作,首先建立一个单向链表,然后根据用户的选择可以对其进行插入节点、删除节点和链表反转操作*/ #include<stdio.h> #include<stdlib.h> typedef struct list_node *list_pointer; //定义链表指针 typedef struct list_node //定义链表结构 int data; list_pointer link; list_node; //用到的操作函数 list_pointer create() ; //建立一个单向链表 void insert (list_pointer *p_ptr, list_pointer node); //在node后加入一个新的节点 void delete_node (list_pointer *p_ptr, list_pointer trail, list_pointer node); //删除前一个节点是trail的当前节点node void print (list_pointer *p ptr) ; //打印链表节点中的值 list_pointer invert(list_pointer lead); //反转链表 int main () list_pointer ptr=NULL; list_pointer node, trail; list_pointer *p=&ptr; int choose, location, i; printf("you should create a link first:/n"); //建立一个单向链表 prt=create () ; / *ptr指向链表的第一个节点* / print (ptr); //根据用户的不同选择进行相应的操作 printf("input number 0, you can quit the program/n"); printf("input number 1, you can insert a new node to link/n"); printf("input number 2, you can delete a node from the link/n"); printf("input number 3, you can invert the link/n"); printf("please input you choice/n"); scanf ("%d", &choose); while (choose!=0) switch (choose) case 1: i=1; while (i<looation) node=node->link; i++; insert (p, node) ; /*p为指向ptr的指针*/ print (ptr); break; case 2: printf("you will delete a node from the link/n"); printf("please input the location of the node:/n"); scanf ("%d", &location) ; node=ptr; if (location==1) trail=NULL; trail=ptr; i=1; while (i<location) trail=trail->link; i++; node=trail->link; delete_node (p, trail, node); print (ptr); break; case 3: printf("you will invert the link/n"); ptr=invert (ptr); print (ptr); break; default: break; return -1; printf("please input you choice/n"); scanf ("%d", &choose); return 0; //根据用户的输入值建立一个新的单向链接 list_pointer create() int i, current, length; list_pointer p1, p2, head; printf("please input the node number of the link:/n"); scanf ("%d", &length) ; printf("the number of the link is:%d",length); printf("please input the data for the link node:/n"); i=0; p1=p2=(list_pointer)malloc(sizeof(list_node)) ; head=p1; for(i=1;i<length;i++) scanf ("%d", &current) ; p1->data=current ; p2->link=p1; p2=p1; p1=(list_pointer)malloc(sizeof(list_node)); p2->link=NULL; return head; …
问答题一个简化的高铁售票系统的规格说明如下:●乘客未使用系统前系统处于“等待”状态,屏幕显示沿线各车站的站名。●乘客选择了到达站并按下[购票]键之后,系统进入“待付款”状态,屏幕显示票价,等待乘客付款。●如果乘客在限时之内付款,系统进入“出票”状态,打印并吐出相应车票,同时找回余额,然后系统重置回到“等待”状态。●如果乘客在限时之内未付款之前按下[取消]键取消购票,系统进入“等待”状态。●如果乘客在限时之内没有付款,系统进入“超时”状态,显示“超时”“取消购票”等信息,然后系统重置回到“等待”状态。●如果乘客在拿到车票后要求退票,在“等待”状态下按下[退票]键,系统进入“查证”状态。●如果查证成功,系统进入“退票”状态。回收车票,退回票款,然后系统重置回到“等待”状态;如果查证不成功,系统进入“警告”状态,屏幕显示“车票无效”信息,然后系统重置回到“等待”状态。
问答题请列出下图中的所有场景。
问答题论述题1:以下是某应用程序的规格描述,请按要求回答问题 程序规则:实现某城市的电话号码,该电话号码由三部分组成。它的说明如下:区号空白或3位数字;前缀非“0”或“1”开头的3位数字;后缀4位数字。 (1)请分析该程序的规则说明和被测程序的功能 (2)采用等价类划分方法设计测试用例。
问答题论述题2:以下是某程序说明,请按要求回答问题 程序说明:假设有一个把数字串转换为整数的函数。其中数字串要求长度为1~6个数字构成,机器字长为16位。 分析程序中出现的边界情况,采用边界值法为该程序设计测试用例。
问答题软件规格说明:文件名的第一个字符必须是A或B,第二个字符必须是数字。满足则修改文件。若第一个字符不为A或B,打印错误信息X12,若第二个字符不为数字,则打印错误信息X13。
问答题
已知C源程序如下: /*Input today's date,output tomorrow's
date*/ /*version 2*/ #include<stdio.h>
struct ydate { int day;int month;int
year;}; int leap(struct ydate d) {
if((d.year%4==0 else return
0; } int numdays(struct ydate d)
{ int day; static int daytab[]=
{31,28,31,30,31,30,31,31,30,31,30,31);
if(leap(d)
else day=daytab[d.month-1]; return
day; } int main(void) {
struct ydate today,tomorrow; printf("format of date
is:year,month,day 输入的年、月、日之间应用逗号隔开/n"); printf("today
is:");
scanf("%d,%d,%d",
while(0>=today.year || today.year>65535 ||
0>=today.month || today.month>12) || 0>=today.day ||
today.day>numdays(today)) { printf("input date error!reenter
the day!/n"); printf("today is:");
scanf("%d,%d,%d",
}
if(today.day!=numdays(today)) {
tomorrow.year=today.year;
tomorrow.month=today.month;
tomorrow.day=today.day+1; }
else if(today.month==12) {
tomorrow.year=today.year+1;
tomorrow.month=1;
tomorrow.day=1; }
else {
tomorrow.year=today.year;
tomorrow.month=today.month+1;
tomorrow.day=1; }
printf("tomorrow is:%d,%d,%d/n/",
tomorrow.year,tomorrow.month,tomorrow.day); }
问答题已知C源程序如下: /* A simple mailing list example using
an array of structures. */ include <stdion.h>
include <stdlib.h> define MAX 4 struct addr
{ char name[30]; char street[40];
char city[20]; unsigned long int zip; }
addr_list[MAX]; void init_list(void), enter(void);
void deleteAddr(void), list(void) int menu_select(void),
find free(void); int main(void) {
char choice; init_list();/* initialize the structure
array */ for(;;) {
choice=menu_select(); switch(choice) { case 1;
enter(); break; case 2:deleteAddr();
break case 3: list(); break;
case 4: exit(0); } }
return 0; } /* Initialize the list.
*/ void init_list(void) {
register int t; for(t=0; t<MAX;
++t)addr_list[t].name[0]=/0; } /* Get a menu
selection. */ int menu_select(void)
{ char s[80]; int c;
printf("1. Enter a name/n"); printf("2. Delete a
name/n"); printf("3. List the file/n");
printf("4. Quit/n"); do { printf("/nEnter your
choice:"); gets(s); c=atoi(s);
}while(c<1|||c>4); return c;
} /* Input addresses into the list. */ void
enter(void) { int slot; char
s[80]; slot=find_free();
if(slot==-1){ printf("/nList Full");
return; } printf("Enter name:");
gets(addr_list[slot].name); printf("Enter
street:"); gets(addr_list[slot].street);
printf("Enter city:"); gets(addr_list[slot].city);
printf("Enter zip:"); gets(s);
addr_list[slot].zip=strtoul(s, /0,10); } /*
Find anunused structure. */ int find_free(void)
{ register int t; for(t=0;
addr_list[t], name[0] ++t); if(t==MAX)
return-1; /* no slots free */ return t;
} /* Delete an address. */ void
deleteAddr(void) { register int
slot; char s[80]; printf("enter record
#:"); gets(s); slot=atoi(s);
if(slot>=0 } /* Display the
list on the screen. */ void list(void)
{ register int t; for(t=0; t<MAX;
++t){ if(addr_list[t].name[0]) { printf("%
s/n", addr_list[t].name); printf("% s/n",
addr_list[t].street); printf("% s/n",
addr_list[t].city); printf("% lu/n/n", addr_list[t],
zip); } }
printf("/n/ n"); }
问答题以下是QESuite Web Version 1.0用户手册是内容,请按要求回答问题
问答题QESuite Web Version 1.0中,已知某安全文档管理系统测试项目的部分信息如下: ●在测试过程中先后产生4个测试版本。按日期排序分别为SEDM 1.0_101009,SEDM 1.0_101025,SEDM1.0_101103,SEDM1.0_101106。 ●功能分类视图中部分待测区域及人员分配定义如下表所示: 功能区域 功能区域 测试人员 开发人员 安装 李鸣 郁离 我的安全区 本地安全区 李鸣 郑军 导入和导出 李鸣 郑军 …… …… …… 服务端安全区 张明 陈剑峰 性能 并发传输响应能力 李晓军 张然 …… …… …… …… 已知张明在功能区域“我的安全区/导入和导出”下发现一个软件问题,下表中是该软件问题的操作历史信息,请依据QESuite Web Version 1.0的软件问题生命周期定义和题中提供的相关人员分配和测试版本信息,假设下表中“执行操作”的信息均正确,请找出表中的错误并说明理由。 操作序号 操作者 这姓操作 操作后的问题状态 测试版本 1 张明 新建 打开 SEDM1.0_101009 2 李晓军 校验/再现 打开/再现 SEDM1.0_101025 3 郑军 修复/修复 待验/修复 SEDM1.0_101103 4 李鸣 验证/同意 解决/不修复 SEDM1.0_101103 5 李鸣 重新打开 待验/修复 SEDM1.0_101025
问答题以下是某C程序段,其功能是计算出某一天是一年中的第几天,请仔细阅读程序并完成要求。 #include struct days int year; int month; int date; day; void main() struct days *p; int num=0,i; int m[13]=0,31,28,31,30,31,30,31,31,30,31,30,31; p= printf("please input the day:/n"); scanf("%d%d%d", for(i=0;i<(p->month);i++) num+=m[i]; num+=(p->date); if((p->year)%4==0 printf("This day is %d day in the year./n",num);
问答题给出一组测试路径,能覆盖程序流程图的所有分支。
问答题简述如何测试分布式系统。
问答题QESuiteWebVersion1.0中,已知DUCHA1.0工作专网系统测试项目的部分信息如下:●测试版本:总计3个测试版本,按日期排序分别为DUCHA1.0_100105,DUCHA1.0_100205,DUCHA1.0_100210。●功能分类视图中部分待测区域及人员分配定义如下表所示:(表1)已知在功能区域“工作平台/归档”下有一个软件问题处于“打开/再现”状态,下表中是该软件问题操作历史信息,请依据QESuiteWebVersion1.0的软件问题生命周期定义和题中提供的相关人员分配和测试版本信息,填写表中空缺的操作历史信息。(表2)
问答题以下是某C程序段,其功能是计算出某一天是一年中的第几天,请仔细阅读程序并完成要求。 # include<stdio.h> struct days int year; int month; int date; day; void main() struct days *P; int nun=0,i; int met3]=0,31,28,31,30,31,30,31,31,30,31,30,31; P=&day; printf("please input the day:/n"); scanf("%d%d%d",&(P->year),&(P->month),&(P->date)); for(i=0;i<(p->month);i++) num+=m[i]; hum+=(p->date); if((p->year)%4==0&&(P->year)%i00 1=0||(p->year)%400==0) if((p->month)>2) num++: printf("This day is%d day in the year./n",hum);
问答题以下是学生选课系统中“学生成绩查询”交互行为的描述,请仔细阅读程序并完成要求。
交互开始时,终端上显示首页,用户选择“查询”请求后,显示“请输入学号”。在用户输入学号后,系统核对学生学号:若输入的学号不正确,则显示“输入的学号不正确”,此次查询取消,回到首页;若输入的学号正确看,则出现“请输入课程名称”。一旦输入课程名,就开始核对课程名称:若输入的课程名称不正确,则显示“输入的课程名称不正确”,此次查询取消,回到首页;若输入的课程名称正确,则根据“学号”和“课程名”查询学生成绩。
若查询学生成绩成功,则显示查询到得成绩,系统询问是否继续查询:当用户选择“继续查询”后回到“请输入学号”;当用户选择"结束查询"后回到首页。若查询失败,则显示“查询失败”后回到首页。
问答题在QESuite Web Version 1.0中,已知DUCHA 1.0工作专网系统测试项目的部分信息如下: (1)测试版本:总计3个测试版本,按日期排序分别为CUCHA1.0_100105、CUCHA1.0_100205,CUCHA1.01_100210。 (2)功能分类视图中部分待测区域及人员分配定义如下表所示: 功能区域 功能区域 测试人员 开发人员 安全 王军 张晓东 工作平台 发文 李明 吕剑秋 收文 李明 吕剑秋 … … … 归档 李明 吕剑秋 容量 并发用户数 周晓松 张晓东 … … … … 已知在功能区域“工作平台/归档”下有一个软件问题处于“打开/再现”状态,下表中是该软件问题操作历史信息,请依据QEsuite Web Version 1.0的软件问题生命周期定义和题中提供的相关人员分配和测试版本信息,填写表中空缺的操作历史信息。 操作序号 操作者 执行操作 操作后的问题状态 测试版本 1 新建 2 李明 检验/再现 DUCHA1.0_100105 3 修复/修复 DUCHA1.0_100205 4 李明 解决/修复 5 打开/再现 DUCHA1.0_100210
