Contacts模块功能测试用例设计思路.docx
《Contacts模块功能测试用例设计思路.docx》由会员分享,可在线阅读,更多相关《Contacts模块功能测试用例设计思路.docx(28页珍藏版)》请在冰豆网上搜索。
Contacts模块功能测试用例设计思路
Contacts模块功能测试用例设计
测试需求分析(shortcuts——>按钮结合功能分析)
相关的数据库表结构
contacts表结构:
保存所有联系人信息。
字段
类型
Null
默认
assigned_user_id
char(36)
是
NULL
id
char(36)
是
date_entered
datetime
是
NULL
date_modified
datetime
是
NULL
modified_user_id
char(36)
是
NULL
created_by
char(36)
是
NULL
description
text
是
NULL
deleted
tinyint
(1)
是
0
salutation
varchar(5)
是
NULL
first_name
varchar(100)
是
NULL
last_name
varchar(100)
是
NULL
title
varchar(100)
是
NULL
department
varchar(255)
是
NULL
do_not_call
tinyint
(1)
是
0
phone_home
varchar(25)
是
NULL
phone_mobile
varchar(25)
是
NULL
phone_work
varchar(25)
是
NULL
phone_other
varchar(25)
是
NULL
phone_fax
varchar(25)
是
NULL
primary_address_street
varchar(150)
是
NULL
primary_address_city
varchar(100)
是
NULL
primary_address_state
varchar(100)
是
NULL
primary_address_postalcode
varchar(20)
是
NULL
primary_address_country
varchar(100)
是
NULL
alt_address_street
varchar(150)
是
NULL
alt_address_city
varchar(100)
是
NULL
alt_address_state
varchar(100)
是
NULL
alt_address_postalcode
varchar(20)
是
NULL
alt_address_country
varchar(100)
是
NULL
assistant
varchar(75)
是
NULL
assistant_phone
varchar(25)
是
NULL
lead_source
varchar(100)
是
NULL
reports_to_id
char(36)
是
NULL
birthdate
date
是
NULL
portal_name
varchar(255)
是
NULL
portal_active
tinyint
(1)
是
0
portal_app
varchar(255)
是
NULL
campaign_id
char(36)
是
NULL
contacts_audit表结构:
保存联系人的修改记录。
字段
类型
Null
默认
id
char(36)
是
parent_id
char(36)
是
date_created
datetime
是
NULL
created_by
varchar(36)
是
NULL
field_name
varchar(100)
是
NULL
data_type
varchar(100)
是
NULL
before_value_string
varchar(255)
是
NULL
after_value_string
varchar(255)
是
NULL
before_value_text
text
是
NULL
after_value_text
text
是
NULL
contacts_bugs表结构:
保存联系人和bug之间的关联
字段
类型
Null
默认
id
varchar(36)
是
contact_id
varchar(36)
是
NULL
bug_id
varchar(36)
是
NULL
contact_role
varchar(50)
是
NULL
date_modified
datetime
是
NULL
deleted
tinyint
(1)
是
0
contacts_cases表结构:
保存联系人和事件之间的关联
字段
类型
Null
默认
id
varchar(36)
是
contact_id
varchar(36)
是
NULL
case_id
varchar(36)
是
NULL
contact_role
varchar(50)
是
NULL
date_modified
datetime
是
NULL
deleted
tinyint
(1)
是
0
contacts_users表结构:
保存联系人和sugar用户之间的关联
字段
类型
Null
默认
id
varchar(36)
是
contact_id
varchar(36)
是
NULL
user_id
varchar(36)
是
NULL
date_modified
datetime
是
NULL
deleted
tinyint
(1)
是
0
accounts_contacts表结构:
保存联系人和企业之间的关联
字段
类型
Null
默认
id
varchar(36)
是
contact_id
varchar(36)
是
NULL
account_id
varchar(36)
是
NULL
date_modified
datetime
是
NULL
deleted
tinyint
(1)
是
0
calls_contacts表结构:
保存联系人和电话之间的关联
字段
类型
Null
默认
id
varchar(36)
是
call_id
varchar(36)
是
NULL
contact_id
varchar(36)
是
NULL
required
varchar
(1)
是
1
accept_status
varchar(25)
是
none
date_modified
datetime
是
NULL
deleted
tinyint
(1)
是
0
meetings_contacts表结构:
保存联系人和会议之间的关联
字段
类型
Null
默认
id
varchar(36)
是
meeting_id
varchar(36)
是
NULL
contact_id
varchar(36)
是
NULL
required
varchar
(1)
是
1
accept_status
varchar(25)
是
none
date_modified
datetime
是
NULL
deleted
tinyint
(1)
是
0
opportunities_contacts表结构:
保存联系人和商机之间的关联
字段
类型
Null
默认
id
varchar(36)
是
contact_id
varchar(36)
是
NULL
opportunity_id
varchar(36)
是
NULL
contact_role
varchar(50)
是
NULL
date_modified
datetime
是
NULL
deleted
tinyint
(1)
是
0
Createcontact
在用户手册中有以下比较重要的文字描述:
1.AccountName.Entertheaccountnameassociatedwiththecontact;alternatively,clickSelecttochoosefromtheexistinglistofaccounts.也就是说AccountName可以选择也可以直接输入。
2.Campaign.Toassociatethecontactwithacampaign,enterthecampaignnameorclickSelecttoselectitfromtheCampaignslist.也就是说Campaign可以选择也可以直接输入。
3.SynctoOutlook.IfyouhaveinstalledSugarPlug-inforMicrosoftOutlook,selectthisboxtosynchronizethiscontactinformationwithOutlook.由于没有该插件,因此这个输入可以忽略。
4.DoNotCall.SelectthisboxtoaddthecontacttotheDoNotCalllist.Thisistoensurethatthecontactisnottargetedduringcampaigns.这个输入和Campaign模块相关,可以放到Campaign模块来进行考虑。
5.Ifyouselectanaccountfromtheaccount’slist,thesystemautomaticallyenterstheaddressforyou.However,youcaneditthisinformationifneeded.如果选择了accountname,那么AddressInformation中会自动填入相关信息,这个可以单独作为测试子项来考虑。
6.EmailAddress(es):
EnteranemailsaddressforthecontactandselectPrimary.Ifanemailaddressisincorrect,selectInvalidtoindicateit.Ifyousentoutcampaignemailsthiscontactandtheindividualchosetoopt-outofreceivingthem,selectOptedOut.这里是对EmailAddress不同状态的解释,需要考虑不同状态之间的冲突。
Save
首先分析哪些输入比较重要,针对这些比较重要的输入使用等价类划分、边界值分析法来进行测试用例设计。
1.Lastname:
必填项,最大长度100(长度来自于contacts表)。
2.Accountname:
选填项(会与Accounts模块发生关联,对应accounts_contacts表)。
3.Campaign:
选填项(与Campaigns模块没有直接联系,与ReportsTo、Assignedto类似,只是在contacts表中有记录)。
4.Birthdate:
选填项,为MM/DD/YYYY格式,不能晚于系统当前日期。
5.EmailAddress:
选填项,满足邮件地址规则,最大长度255(长度来自于email_addresses表,所有邮件地址均保存在该表)。
等价类表:
输入
输入条件
有效等价类
无效等价类
Lastname
必填项
填
不填
最大长度100
长度不超过100
长度超过100
Accountname
选填项
填,不填
Campaign
选填项
填,不填
Birthdate
选填项
填,不填
为MM/DD/YYYY格式
月份1位,月份2位,日期1位,日期2位,年份4位,闰年2月,非闰年2月,大月,小月,月份1-12,
月份为非数字,日期为非数字,年份为非数字,月份>12,闰年2月日期>29,非闰年2月日期>28,大月日期>31,小月日期>30
不能晚于系统当前日期
早于系统当前日期,等于系统当前日期
晚于系统当前日期
EmailAddress
选填项
填,不填
满足邮件地址规则
是
不包含“@”,不包含“.”仅有“@.”
最大长度255
长度不超过255
长度超过255
和数字相关的等价类考虑用边界值进行覆盖,具体用例略。
接着针对系统对空格的处理来进行测试,选择Lastname,考虑以下几种情况:
1.字符串前面有空格(1个或多个)。
2.字符串中间有空格(1个或多个)。
3.字符串后面有空格(1个或多个)。
最后用错误猜测法补充用例,需要注意的是主要关注影响系统使用的错误,比如记录无法点击等等。
1.仍然选择Lastname进行测试,输入全角空格,对应的是Lastname为空的情况。
2.针对Lastname进行输入时,考虑拷贝输入的方式。
注意事项:
1.每个用例的预期输出中都应包含数据库的检查。
2.包含了Accountname的测试用例还需要到Accounts模块来进行查看。
3.没有考虑快捷键Alt+S的测试(后面类似)。
Cancel
该功能的测试,需要注意在cancel之前是否存在和服务器之间的数据交互,如果有交互,需要考虑交互对cancel的影响,比如需不需要从服务器上删除前面交互的数据,如果没有交互则比较简单了,直接测试即可。
这里对应的是后者。
注意事项:
1.上下两个cancel都需要测试。
2.cancel功能的测试用例的预期输出必须写清回退到哪个页面。
Select
这里的select实际对应的是AccountName的输入功能。
从用户手册会发现这里的输入有两种方式:
选择已有的记录和手工输入已有的记录。
这样测试也分两种情况来考虑。
选择已有记录考虑:
1.AccountName为空,选择一条记录(选择一次)。
2.AccountName为空,选择一条记录,再选择另一条记录(选择多次)。
手工输入已有记录考虑:
1.AccountName为空,手工输入存在的记录,再手工修改为不存在的记录。
2.AccountName为空,手工输入不存在的记录,再手工修改为存在的记录。
Clear
这个功能的测试比较简单,以AccountName为例主要考虑:
1.AccountName输入存在的记录,点击clear进行清除。
2.AccountName输入不存在的记录,点击clear进行清除。
AddAddress
关于邮件地址合法性检查已经在Save中考虑了,因此这里不再考虑。
这里主要考虑:
1.添加多个邮件地址。
2.能添加的邮件地址的最大个数。
3.邮件地址状态的设置(Primary、OptedOut和Invalid)。
添加多个邮件地址主要考虑:
1.添加多个不同的邮件地址,查看能否保存以及保存后显示的顺序是否正确。
2.添加多个相同的邮件地址,查看能否有提示信息提示重复输入。
3.添加多个邮件地址,但其中有部分为空。
针对能添加的邮件地址最大个数,可以注意一下邮件地址所保存的表为email_addresses,从该表会发现,对于这个最大个数并没有什么限制,只会受到数据库本身容量的限制,因此这个邮件地址最大个数可以不测。
邮件地址状态的设置主要考虑:
1、添加多个不同的邮件地址,第一个设置成Primary。
2、添加多个不同的邮件地址,最后一个设置成Primary。
3、添加多个不同的邮件地址,中间的一个设置成Primary。
4、添加一个邮件地址,设置成OptedOut。
5、添加一个邮件地址,设置成Invalid。
6、添加一个邮件地址,不进行任何设置。
7、添加多个邮件地址,不进行任何设置。
8、添加一个邮件地址,同时设置Primary和Invalid。
9、添加多个邮件地址,同时设置第一个为Primary和Invalid。
10、添加多个邮件地址,同时设置最后一个为Primary和Invalid。
11、添加一个邮件地址,同时设置OptedOut和Invalid。
12、添加多个邮件地址,同时设置第一个为OptedOut和Invalid。
13、添加多个邮件地址,同时设置最后一个为OptedOut和Invalid。
如果想更简单的测试Primary、OptedOut和Invalid这三个状态之间的相互影响,可以采用正交分析法,这三个状态值为因子,选和不选为状态,因此可以选用3因子2状态的正交表。
EnterBusinessCard
这个功能提供的实际上是把名片上的信息录入到sugar中去,所输入的信息基本为createcontact所录入信息的子集,因此这个功能的测试主要放在与createcontact不同的地方。
Save
这里可以简单的通过2个测试用例来进行测试:
1.所有输入均输入合法值。
2.除了必填项之外都不输入。
LinksTest
这里测试比较简单,主要是验证CreateNote、CreateAccount、CreateOpportunity、CreateAppointment的基本功能。
如果想少测一点的话,可以将后三个归成一类,因为都有专门的表来记录它们和联系人之间的关联(accounts_contacts、calls_contacts、meetings_contacts)。
设计测试用例时考虑必填项的填和不填即可。
CreateFromvCard
首先需要知道vCard对应的是电子名片,是一种数据格式,不少软件都支持这种格式的文件的导入导出。
如果要制造这种文件,可以借助于outlookexpress的通讯簿来生成,选中一条记录导出即可,导出的文件为vcf文件。
从界面上会发现,该功能就是通过浏览或者手动输入一个文件,然后点击ImportvCard即可。
因此设计测试用例也就是从这个文件来入手,除了考虑文件的扩展名等因素,还需要考虑文件的内容。
1.合法vcf文件导入,英文字母和数字内容,全填。
2.合法vcf文件导入,中文内容,部分填。
3.文件不存在。
4.输入的路径文件名包含非法字符(如*、?
等)。
5.文件扩展名不是vcf。
6.非vcf文件扩展名强制改成vcf。
另外由于导入的vcf文件并不完全受控,因此可能会出现导入数据的长度超过sugar中能保存的最大长度的情况,这需要通过错误猜测法进行测试。
注意事项:
由于是直接导入数据,数据在服务器上并不会以文件形式存在,因此不需要考虑同一个文件多次导入的情况(上传到服务器上的文件主要放在cache目录的import子目录和upload子目录下)。
Contacts
这里主要涉及联系人的管理和维护。
在用户手册中有以下比较重要的文字描述:
1.Thesystempaginateslonglists.Tosortthelist,clickanycolumntitlewhichhastheiconbesideit;toreversethesortorder,clickthecolumntitleagain.记录存在排序的问题,需要进行测试。
2.TheaddressdisplaysintheAdditionalDetailspopupwindow.Inthiswindow,youcanclicktheViewicontonavigatetotherecord’sdetailpage,orclicktheEditicontonavigatetotherecord’sdetailpageandedittheinformation.这里提示还有view按钮和edit按钮需要进行测试。
NewContact
这个功能只是新建联系人的快捷方式,需要输入的内容比CreateContact少的多,因此如果CreateContact考虑的比较充分,NewContact可以测试的比较简单:
1.全部输入合法数据。
2.全部不输入数据。
BasicSearch
在用户手册中有以下比较重要的文字描述:
1.Whenyoutypeacharacterinafield,thesystemperformsaquicksearchofpossiblevaluesandpresentsalistofvaluesstartingwiththatcharacter.说明搜索是从第一个字符来进行匹配的。
2.Textenteredinsearchfieldsneedstomatchfromthebeginningofthevaluestoredineachrecordunlessthewildcardcharacterisprepended.Iftextisenteredinmorethanonesearchfield,thenarecordmustmatchonallthosefieldstobeincludedinthefilteredlist.Inotherwords,searchingfor“fred*”wouldonlymatchfirstnameslike“Fred*erick”orother“Fred”namescontainingtheasterisk(*)character.说明搜索分成三种:
一般的搜索、通配符前置的搜索、通配符后置的搜索。
Search
一般涉及到搜索的测试,都可以分成单关键词搜索和组合关键词搜索。
如果了解搜索的算法,还需要针对搜索算法来进行测试。
先来看一下单关键词搜索,这里主要需要分析搜索出来的结果到底和哪些因素有关,分析清楚了这些才能更好的设计测试用例。
这些因素主要包括:
1.输入的关键词。
2.数据库中到底有哪些数据。
这样可以考虑以下这些测试用例:
1.输入不带通配符的关键词(1个字符),数据库中没有匹配的记录。
2.输入不带通配符的关键词(多个字符),数据库中有完全匹配的一条记录。
3.输入不带通配符的关键词(多个字符),数据库中有字符匹配大小写不同的一条记录。
4.