Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
testprog / Презентация 5.ppt
Скачиваний:
144
Добавлен:
18.05.2015
Размер:
1.41 Mб
Скачать

Int BONUS(){

1int errorCode=0; Department leadingDepartment{0;0} ; int boundaryWage=15000; int minAllowance=100; int maxAllowance=200;

2If (Departmetns.Lenght <=0 || Employees.Lenght <=0) errorCode=1;

3else

4{for(int i=1; i<= Departmetns.Lenght; i++)

5

if (Departments[i].sales>= leadingDepartment.sales)

 

leadingDepartment=Department;

6bool isLeadingDepartmentNull=true;

7for (int i=1; i<= Employees.Lenght; i++)

8

if (employees[i].department= leadingDepartment.department)

9

if (employees[i].wage >= boundaryWage || employees[i].IDPost

10

==‘M’)

employees[i].wage = minAllowance;

 

11

else employees[i].wage = maxAllowance;

12

if (isLeadingDepartmentNull) errorCode=2;}

Операт Результат true

Результат false

13

return errorCode;}

 

ор

 

 

2Если в таблицах Отделов и Сотрудников нет записей

5Случится не менее одного раза

Сотрудник лидирующего отдела является 8 Сотрудникменеджеромчислитсяили имеетв лидирующемзаработнуюотделеплату не

ниже minAllowance

9

Если в таблицах Отделов и Сотрудников есть записи

В таблице Отделов есть записи упорядочиваются так, чтобы отдел с

меньшей суммой продаж следовал за отделом с большей суммой продаж Сотрудник лидирующего отдела не

Сотрудникявляется менеджеромчислится вилидирующемимеет отделезаработную плату ниже minAllowance

Int BONUS(){

1int errorCode=0; Department leadingDepartment{0;0} ; int boundaryWage=15000; int minAllowance=100; int maxAllowance=200;

2If (Departmetns.Lenght <=0 || Employees.Lenght <=0) errorCode=1;

3else

4{for(int i=1; i<= Departmetns.Lenght; i++)

5

if (Departments[i].sales>= leadingDepartment.sales)

 

leadingDepartment=Department;

6bool isLeadingDepartmentNull=true;

7for (int i=1; i<= Employees.Lenght; i++)

8

if (employees[i].department= leadingDepartment.department)

9

if (employees[i].wage >= boundaryWage || employees[i].IDPost

 

==‘M’)

 

 

10

employees[i].wage = minAllowance;

11

else employees[i].wage = maxAllowance;

 

12

if (isLeadingDepartmentNull) errorCode=2;}

 

Операт Результат true

Результат false

 

13

return errorCode;}

 

 

ор

 

 

 

2

Если в таблицах Отделов и Сотрудников нет

Если в таблицах Отделов и Сотрудников

 

записей

есть записи

 

5

Случится не менее одного раза

В таблице Отделов есть записи

 

 

упорядочиваются так, чтобы отдел с

 

 

меньшей суммой продаж следовал за

 

 

отделом с большей суммой продаж

8

Сотрудник числится в лидирующем отделе

Сотрудник не числится в лидирующем

 

 

отделе

 

9

Не найдены сотрудники, числящиеся в лидирующихНайден хотя бы один

 

Сотрудник лиди ющего отдела явл ется

Сотрудник лидирующегосотрудник,ела не

 

отделах

числящийся в одном из

лидирующих

 

мен джером или имеет заработную плату не

является менеджером и

имеет

 

ниже minAllowance

разделов

 

 

заработную плату ниже minAllowance

12

Покрытие условий

Количество тестов должно быть таким, чтобы каждое из ЭЛЕМЕНТАРНЫХ условий, образующих проверочное выражение в точке ветвления, принимало каждое из двух из двух логических значений (true и false) хотя бы один раз.

Позволяет выявлять ошибки в логических выражениях.

Int BONUS(){

1 int errorCode=0; Department leadingDepartment{0;0} ; int boundaryWage=15000; int minAllowance=100; int maxAllowance=200;

2 If (Departmetns.Lenght <=0 || Employees.Lenght <=0х) errorCode=1;2

3 else

4{for(int i=1; i<= Departmetns.Lenght; i++)

5

if (Departments[i].sales>= leadingDepartment.sales)

 

leadingDepartment=Department;

6bool isLeadingDepartmentNull=true;

7for (int i=1; i<= Employees.Lenght; i++)

8

if (employees[i].department= leadingDepartment.department)

 

{isLeadingDepartmentNull=false;

х 2

9

if (employees[i].wage >= boundaryWage || employees[i].IDPost ==‘M’)

10

employees[i].wage = minAllowance;

 

11

else employees[i].wage = maxAllowance;}

 

12if (isLeadingDepartmentNull) errorCode=2;}

13return errorCode;}

Int BONUS(){

1

int errorCode=0; Department leadingDepartment{0;0} ; int boundaryWage=15000; int

 

minAllowance=100; int maxAllowance=200;

 

2

If (Departmetns.Lenght <=0 || Employees.Lenght <=0) errorCode=1;

3

else

х 2

 

4{for(int i=1; i<= Departmetns.Lenght; i++)

5

if (Departments[i].sales>= leadingDepartment.sales)

 

leadingDepartment=Department;

6bool isLeadingDepartmentNull=true;

 

7

for (int i=1; i<= Employees.Lenght; i++)

 

х 2

 

8

if (employees[i].department= leadingDepartment.department)

 

 

{isLeadingDepartmentNull=false;

 

 

 

9

if (employees[i].wage >= boundaryWage || employees[i].IDPost

 

10

==‘M’)

employees[i].wage = minAllowance;

 

 

 

 

 

11

else employees[i].wage = maxAllowance;}

 

Операт12

Результатif (isLeadingDepartmentNull)true

errorCode=2;}Результат false

 

ор

13

return errorCode;}

 

Departmetns.Lenght >0

 

2

 

Departmetns.Lenght <=0

 

 

2

 

Случится не менее одного раза

 

В таблице Отделов есть записи

5

 

 

 

 

 

 

упорядочиваются так, чтобы отдел с

 

 

 

 

меньшей суммой продаж следовал за

 

 

 

 

отделом с большей суммой продаж

8

 

Сотрудник числится в лидирующем отделе

Сотрудник не числится в лидирующем

9

 

 

 

отделе

 

 

 

 

 

 

9

 

Не найдены сотрудники, числящиеся в

Найден хотя бы один сотрудник,

12

 

 

 

лидирующих отделах

 

числящийся в одном из лидирующих

 

 

 

 

разделов

 

Int BONUS(){

1 int errorCode=0; Department leadingDepartment{0;0} ; int boundaryWage=15000; int minAllowance=100; int maxAllowance=200;

2 If (Departmetns.Lenght <=0 || Employees.Lenght <=0) errorCode=1;х 2

3 else

4{for(int i=1; i<= Departmetns.Lenght; i++)

5

if (Departments[i].sales>= leadingDepartment.sales)

 

leadingDepartment=Department;

6bool isLeadingDepartmentNull=true;

 

7

for (int i=1; i<= Employees.Lenght; i++)

 

х 2

 

8

if (employees[i].department= leadingDepartment.department)

 

 

{isLeadingDepartmentNull=false;

 

 

 

9

if (employees[i].wage >= boundaryWage || employees[i].IDPost

 

10

==‘M’)

employees[i].wage = minAllowance;

 

 

 

 

 

11

else employees[i].wage = maxAllowance;}

 

Операт12

Результатif (isLeadingDepartmentNull)true

errorCode=2;}Результат false

 

ор

13

return errorCode;}

 

Departmetns.Lenght >0

 

2

 

Departmetns.Lenght <=0

 

 

2

 

Employees.Lenght <=0

 

Employees.Lenght >0

 

 

Случится не менее одного раза

 

В таблице Отделов есть записи

5

 

 

 

 

 

 

упорядочиваются так, чтобы отдел с

 

 

 

 

меньшей суммой продаж следовал за

 

 

 

 

отделом с большей суммой продаж

8

 

Сотрудник числится в лидирующем отделе

Сотрудник не числится в лидирующем

9

 

 

 

отделе

 

 

 

 

 

 

9

 

Не найдены сотрудники, числящиеся в

Найден хотя бы один сотрудник,

12

 

 

 

лидирующих отделах

 

числящийся в одном из лидирующих

 

 

 

 

разделов

 

Int BONUS(){

1 int errorCode=0; Department leadingDepartment{0;0} ; int boundaryWage=15000; int minAllowance=100; int maxAllowance=200;

2 If (Departmetns.Lenght <=0 || Employees.Lenght <=0) errorCode=1;х 2

3 else

4{for(int i=1; i<= Departmetns.Lenght; i++)

5

if (Departments[i].sales>= leadingDepartment.sales)

 

leadingDepartment=Department;

6bool isLeadingDepartmentNull=true;

 

7

for (int i=1; i<= Employees.Lenght; i++)

 

х 2

 

 

8

if (employees[i].department= leadingDepartment.department)

 

 

 

{isLeadingDepartmentNull=false;

 

 

 

 

9

if (employees[i].wage >= boundaryWage || employees[i].IDPost

 

 

10

==‘M’)

employees[i].wage = minAllowance;

 

 

 

 

 

 

 

11

else employees[i].wage = maxAllowance;}

 

 

Операт12

Результатif (isLeadingDepartmentNull)true

errorCode=2;}Результат false

 

 

ор

13

return errorCode;}

 

Departmetns.Lenght >0

 

 

2

 

Departmetns.Lenght <=0

 

 

 

2

 

Employees.Lenght <=0

 

Employees.Lenght >0

 

 

5

 

Случится не менее одного раза

 

В таблице Отделов есть записи

 

 

 

 

 

упорядочиваются так, чтобы отдел с

 

 

 

 

 

меньшей суммой продаж следовал за

 

 

 

лидирующего отдела имеет з/п не

отделом с большей суммой продаж

з/п

8

 

лид рующего

 

 

Сотрудникчислится в лидирующем отделе

Сотрудникне числится в лиотделаирующимеет

 

 

 

ниже boundaryWage

 

ниже boundaryWage

 

 

9

 

 

 

отделе

 

 

 

 

 

 

 

 

9

 

Не найдены сотрудники, числящиеся в

Найден хотя бы один сотрудник,

 

12

 

 

 

 

лидирующих отделах

 

числящийся в одном из лидирующих

 

 

 

 

 

разделов

 

 

Int BONUS(){

1 int errorCode=0; Department leadingDepartment{0;0} ; int boundaryWage=15000; int minAllowance=100; int maxAllowance=200;

2 If (Departmetns.Lenght <=0 || Employees.Lenght <=0) errorCode=1;х 2

3 else

4{for(int i=1; i<= Departmetns.Lenght; i++)

5

if (Departments[i].sales>= leadingDepartment.sales)

 

leadingDepartment=Department;

6bool isLeadingDepartmentNull=true;

7for (int i=1; i<= Employees.Lenght; i++)

 

8

if (employees[i].department= leadingDepartment.department)

х 2

 

 

{isLeadingDepartmentNull=false;

 

 

 

9

if (employees[i].wage >= boundaryWage ||

 

 

10

employees[i].IDPost ==‘M’)

employees[i].wage = minAllowance;

 

 

 

 

 

11

else employees[i].wage = maxAllowance;}

 

Операт12

Результатif (isLeadingDepartmentNull)true

errorCode=2;}Результат false

 

ор

13

return errorCode;}

 

Departmetns.Lenght >0

 

2

 

Departmetns.Lenght <=0

 

 

2

 

Employees.Lenght <=0

 

Employees.Lenght >0

 

5

 

Случится не менее одного раза

 

В таблице Отделов есть записи

 

 

 

 

упорядочиваются так, чтобы отдел с

 

 

 

 

меньшей суммой продаж следовал за

 

 

 

 

отделом с большей суммой продаж

8

 

Сотрудник числится в лидирующем отделе

Сотрудник не числится в лидирующем

 

 

 

 

отделе

 

9

 

Сотрудник лидирующего отдела имеет з/п не

Сотрудник лидирующего отдела имеет з/п

 

 

Сотрудник лидирующего отдела является

ниже boundaryWage

 

 

 

ниже boundaryWage

 

 

9

 

менеджером

 

Сотрудник лидирующего отдела не

 

 

 

 

является менеджером

 

12

 

Не найдены сотрудники, числящиеся в

Найден хотя бы один сотрудник,

 

 

лидирующих отделах

 

числящийся в одном из лидирующих

 

 

 

 

разделов

 

Операт

Результат true

 

 

 

Результат false

 

ор

 

 

 

 

 

 

 

 

 

 

2

 

Departmetns.Lenght <=0

 

 

Departmetns.Lenght >0

2

 

Employees.Lenght <=0

 

 

Employees.Lenght >0

5

 

Случится не менее одного раза

 

 

В таблице Отделов есть записи

 

 

 

 

 

 

 

 

упорядочиваются так, чтобы отдел с

 

 

 

 

 

 

 

 

меньшей суммой продаж следовал за

 

 

 

 

 

 

 

 

отделом с большей суммой продаж

8

 

Сотрудник числится в лидирующем отделе

Сотрудник не числится в лидирующем

 

 

 

 

 

 

 

 

отделе

 

 

9

 

Сотрудник лидирующего отдела имеет з/п не

Сотрудник лидирующего отдела имеет з/п

 

 

ниже boundaryWage

 

 

 

ниже boundaryWage

9

 

Сотрудник лидирующего отдела является

Сотрудник лидирующего отдела не

 

 

менеджером

 

 

 

 

является менеджером

12

Тест

Не найдены сотрудники, числящиеся в

 

Найден хотя бы один сотрудник,

 

Вход

 

 

 

 

 

Ож даемый результат

 

1

лидирующих отделах

 

 

числящийся в одном из лидирующих

 

Departmetns.Lenght = 2, Employees.Lenght = 3 errorCode = 0, таблица отделов не

 

 

Таблица сотрудников

Таблица

разделов

 

 

 

 

меняется

 

 

 

 

отделов

С

1

21000

1

10000

Таблица Сотрудников

 

 

Иванов

Иванов

С

1 21100

 

 

Петров

С

2

14000

2

8000

 

 

Петров

С

2 14000

 

 

Сидоров М

1

10000

 

 

 

 

 

 

Сидоров М

1 10100

 

 

 

 

 

 

 

 

2 Departmetns.Lenght = 0, Employees.Lenght = 0 errorCode = 1, таблицы отделов и сотрудников не меняются

3

Departmetns.Lenght = 2, Employees.Lenght = 3 errorCode = 2, таблицы отделов и

 

Таблица сотрудников

Таблица сотрудников не меняются

 

отделов

С

2

21000

 

 

 

Иванов

1

10000

 

Петров

С

2

14000

 

2

8000

 

Сидоров М

2

10000

 

 

 

….

9if (employees[i].wage >= boundaryWage || employees[i].IDPost ==‘M’)

10

 

 

 

 

 

 

 

employees[i].wage = minAllowance;

 

11

 

else employees[i].wage = maxAllowance;}

 

 

 

 

….

1

Departmetns.Lenght = 2, Employees.Lenght = 3 errorCode = 0, таблица отделов не

 

 

 

 

 

Таблица сотрудников

 

Таблица меняется

 

 

 

 

отделов

 

 

 

 

 

 

Таблица Сотрудников

 

 

Иванов

С

1

21000

 

1

10000

Иванов

С

1 21100

 

 

Петров

С

2

14000

 

2

8000

 

 

 

Петров

С

2 14000

 

 

Сидоро

 

 

 

 

 

 

 

 

М

1

10000

 

 

 

Сидоров М

1 10100

 

 

в

 

 

 

 

 

 

Покрытие условий - успешно

 

 

 

 

 

9

Сотрудник лидирующего отдела имеет з/п не

Сотрудник лидирующего отдела имеет з/п

 

ниже boundaryWage

 

 

 

 

ниже boundaryWage

 

9

Сотрудник лидирующего отдела является

Сотрудник лидирующего отдела не

 

менеджером

 

 

 

 

 

 

 

является менеджером

 

 

Покрытие решений- неуспешно

 

 

 

 

9

Сотрудник лидирующего отдела является

Сотрудник лидирующего отдела не

 

менеджером или имеет заработную плату не

является менеджером или имеет

 

ниже minAllowance

 

 

 

 

 

заработную плату ниже minAllowance

1

 

Departmetns.Lenght = 2, Employees.Lenght = 3 errorCode = 0, таблица отделов не

 

 

Таблица сотрудников

Таблица

меняется

 

 

 

 

 

отделов

М

1

 

21000

 

1

10000

Таблица Сотрудников

 

 

Иванов

 

 

Иванов

С

1 21100

 

 

Петров

С

2

 

14000

 

2

8000

Петров

С

2 14000

 

 

Сидоро

С

1

 

10000

 

 

 

Сидоров М

1 10100

 

 

в

 

 

 

 

 

 

 

 

условий

Каждое условие в решении принимает каждое возможное значение минимум 1 раз, каждый возможный исход решения проверяется минимум 1 раз и каждой точке входа управление передаётся минимум 1 раз.