Вы находитесь на странице: 1из 20

1.

In the context diagram, you have to fill a table like this one:

Actor Physical Interface Logical Interface


Customer PC or smartphone GUI
Admin PC GUI
Credit card system Internet connection HTTPs, SSL, API with functions to
check credit/debit card, etc.

External sensors If specified in the text you must The logic of the sensor (generally
insert the type and voltage such specified in the text) like
as: bipolar connector 0-3V. A Boolean open = something,
physical interface could be also close= something.
the Bluetooth protocol. Or also a description of the
mechanism is acceptable.
User Typically, PC or smartphone but GUI in the first case and in the
if it interacts with something second case something which
else and it is specified in the text describes how it works like
you put like buttons, screen, screenshots, recordings, etc.
keyboard, etc. In other words,
you describe the interface.

Localization service GPS in the smartphone or any Localization API


similar device.
Clerk/Employee PC or smartphone but in some GUI or in the case the bar code
case also the bar code reader reader is available we can put
could be interpreted as physical here: value of the bar code.
interface.
Logistic Company Internet connection Web service
E-mail gateway Internet connection SMTP, POP3

It is important to keep in mind that the table must have all the actors which are external to the system and
for this reason you have to read carefully the text in order to understand if they are considered inside or
outside. However, something that I notice doing the exercise is:

I. When a user has to register to a service before using it a possible actor that we put is the e-mail
gateway necessary to send e-mail to users.
II. If there is a website for the application we are modelling at 99% there is the Admin of the entire
system but also if there is a server in which we store data because we need someone to control and
manage them.
III. If we are in a situation in which it should be possible to receive (or send) something with post-
services we can include as external actor a logistic company.
IV. About GPS we can say that typically it is integrated in the smartphone so often it is omitted (the
same for the camera).
V. Pay attention to the bar code reader mentioned for the Clerk/Employee, if it is inside the system
(for example inside each POS system) it should not appear in the context diagram.

Remember always to be consistent between system design and context diagram; in the system design,
external actor are not allowed!

Lets see a possible example of what we explain above with a Sketch of the context diagram.
2. The second step is to design the glossary using UML:

As we can see from the picture above the user to employ certain services, offered by the Meteo
Service, need to make a subscription (if a subscription is not necessary we can substitute it with the
class Account if the user need it to access the system) and this imply the payment for a
month/year/etc. fee and for that reason that we need the class Payment record/Transaction
(similar could be the presence of a delivery record if we want to keep track of something that a user
has been sent/received). On the right, we have Forecast service and Report service that inherit the
property of the more general Service.
In other cases, we can deal a situation similar to this one in which we have, for example, to define
some jobs necessary for the maintenance of a car/motorbike/etc. It is important to keep them
separate because Job description
it is used simply to describe a
generic job, so it is a list of all the
possible job available for that car
model while the class Job is
necessary to keep track of which
job has been executed on the car
involved. So this way of thinking
may be applied every time we
have a similar situation in which
on one hand we have a list of
possible actions available and on
the other hand we have to record accurately one of them.

Sometimes we may have a situation in which we


must consider that a user can define a list of
friends and share with them something so we do
not have to create a class friends but it is enough
to use the configuration shown on the left.

Other examples of full glossary are the following:


(remember: name classes are not plural)
3. List of the requirements. There are two types of requirements: functional (description of
services/behaviours provided by the system) and non-functional (constraints on the services):

ID Type (Functional or Not) Description


1 F User Management
C(reate)R(ead)U(pdate)D(elete) user, CRUD account,
CRUD subscription, attach account to user, attach credit
card to account.
2 F Authorization and Authentication
Login, Logout, authorize, define privileges of user, CRUD
accounts & passwords.
3 F Statistics
Compute day/week/month something per user
4 F Operation and accounting
Authorization in doing something, compute cost per
usage, attach usage to account, update fees per account,
request payment for account, manage type of payment
for account,
5 F Interact with logistic company
6 F Interact with credit card system
7 F Sensor
Read something rate, attach something rate to
something, add, modify, delete, configure sensor, verify
sensors status.
8 F Friend Management
Attach/Detach user to user
9 F Service Management
CRUD service
10 F Manage catalogue
Browse catalogue, define new product, search product,
modify product, verify availability product.
11 F X description Management
Add X description, attach it to something
NF Performance or Efficiency. All functions should have
response time < x sec or authorization for something
must be assigned within a certain period of time.
NF Security. All functions and data must be accessible only
by the user involved and by the administrator. Or:
payments should be started only by authorization of card
owner.
NF Usability. A user familiar with Internet tools should be
able to use all functions available in at most x minutes
without any training. Or something similar such as: a user
not familiar with this stuff should be trained in at least x
minutes.
NF System should respect the IP67 specifications.
NF Credit card number should not be stored.
NF Scalability. Number of users up to x.
NF Domain currency is euro/dollar/etc.
NF Domain electric consumption in KW/h
It is important to fill the table also with non-functional requirements because often they are
forgotten. This figure may help in remembering them:

4. Description of a scenario:

Name Order Gift


Scope Here we must insert the main category in which we find the action
from the table of the functional requirements.
Level Who will perform this action? User, Admin, etc.
Intention Brief description of what the action we are going to describe.
Primary Actor Customer
Precondition Preliminary operations: in this case we may write that the
customer has already create an account linked to a card and he has
already subscribed to fidelity program. It is also necessary that the
points available on the card are enough to obtain the gift wished.
Main Success Scenario 1. Customer logs into the system.
2. Customer browses into the catalogue for available gifts.
3. Customer select a gift.
4. System checks if the customers points are enough for the
gift chosen.
5. System asks the shipping address and a telephone number.
6. System confirms transaction and detracts points from the
card.
7. Customer logs out from the system.
8. System starts to elaborate the customers request.
Extensions In this field, we write little modifications to the main success
scenario alternative scenarios:
3a. Gift chosen not available
4a. Not enough points to redeem the gift.
4b. Necessary also the payment of a small fee to obtain the gift.
5a. The address inserted is not correct.
Another way to describe a scenario in a simpler way is the following one:

Supposing that we want to describe a user who logs one training composed of two parts.

Precondition: User U is already registered

Postcondition: Training T is available with the two parts generated, P1 and P2.

Step Description Requirement ID


1 U logs into the system and he is authorized. Here we insert the number of
the functional requirement that
we have already written in the
functional and not functional
table.
2 U creates a new training T. X
3 U starts training T. Y
4 U stops part (part1 is created and attached to T). Z
5 U stops training T (part2 is created and attached to W
T).

5. Definition of the system design.

In the first point, we said that we have to pay attention to be consistent between this and the
context diagram. In this case we report what is inside the system; for example, when there is an
administrator who control data and store them in a server this will be one of the element of our
system design. Another example could be a tablet used in a shop to read bar code and to connect to
the net to check if it is available another piece of the product chosen.
6. In the black box testing you have a function like:
int triangleType(int side1, int side2, int side3) which returns 1 if the three sides define an equilateral
triangle, 2 if isosceles, 3 if scalene, -1 if it is not possible to compose a triangle and you have to use
equivalence classes and boundary conditions.
To solve this exercise in the table you put the parameter of the given functions, the possible results,
a column to indicate if the case is valid or not and test cases:

As reported in the table you have to find out all the possible combinations supported by different
test cases in order to see if they result valid or not. Since in that case we deal with a triangle it is
obvious that well find the first valid output when all the three sides are positive integers.

Another example could be the following one: given the function int times[]
computeWaterTiming(int start, int duration, int nTimes) the timer considers only a one day range.
The first parameter defines the time (in minutes) when the valve opens, the second parameter the
duration (in minutes) the valve remains open and the last one the number of times the cycle is
repeated and it could assume only the value 1,2 and 3. If it is 1 it means that the cycle is repeated
every 24 hours, if 2 every 12 hours and if 3 every 8 hours. If the function returns correctly we obtain
an array otherwise an error.

Start Duration Ntimes Start Valid/Not Test Cases


+duration*Ntimes Valid
<=1440
[minint, 0[ - - - I T(-1,0,1;err)
[0, 1440] [minint, 0[ - - I T(10, -2, 1; err)
[0, 1440] [0, 1440] [minint, 0[ - I T(10, 1, -10; err)
[0, 1440] [0, 1440] 1 T V T(60, 20, 1; 60, 80,
-1, -1, -1, -1)
[0, 1440] [0, 1440] 1 F I T(60, 1400, 1; err)
[0, 1440] [0, 1440] 2 T V T(60, 20, 2; 60, 80,
780, 800, -1, -1)
[0, 1440] [0, 1440] 2 F I T(60, 700, 2; err)
[0, 1440] [0, 1440] 3 T V T(60, 20, 3; 60, 80,
540, 560, 1020,
1040)
[0, 1440] [0, 1440] 3 F I T(60, 800, 3; err)
[0, 1440] [0, 1440] [4, maxint] - I T(10, 1, 10; err)
[0, 1440] [1441, - - I T(10, 1500, 1; err)
maxint]
[1441, - - - I T(1500, 1, 1; err)
maxint]

Like the previous exercise we fill the table with the parameters of the function but we add a
condition: start+duration*Ntimes <= 1440. This is good because a day is composed of 1440 minutes
so we can define the three equivalence classes that are: [minint, 0[, [0, 1440] and [1441, maxint]
and this can be used both for start and duration. Differently for Ntimes in which we have only 3
possible values and so the equivalence classes are [minint, 0] and [4. maxint]. For the boundary
condition, instead, we have to test for start and duration values -1, 0, 1440, 1441 while for Ntimes
values 0, 4.

Last example:
Double telCallCost(int startTime, int endTime, int zone) where the first two parameters are in
seconds over a 24 hours day and the cost depends on the zone. Calls longer than 5 minutes get a
10% discount. The cost rates are: 1cent/sec for Zone1, 2cent/sec for Zone2 and 3cent/sec for Zone3.

startTime endTime Zone endTime > Call length Valid/Not Test cases
startTime vaid
[minint, 0[ - - - - I T(-1, 10, 1; err)
[0, 86400[ [minint, 0[ - - - I T(1, -1, 1; err)
[0, 86400[ [0, 86400[ [minint,0] - - I T(1, 1, -2; err)
[0, 86400[ [0, 86400[ [1,3] F <5m V T(86351, 1, 1; 50)
[0, 86400[ [0, 86400[ [1,3] F >5m V T(86101, 1, 1;
270)
[0, 86400[ [0, 86400[ [1,3] T <5m V T(2, 102, 1; 100)
[0, 86400[ [0, 86400[ [1,3] T >5m V T(0, 300, 1; 270)
[0, 86400[ [0, 86400[ [4,maxint - - I T(1, 3, 5; err)
]
[0, 86400[ [86400, - - - I T(1, 90000, 1; err)
maxint]
[86400, - - - - I T(90000, 1, 1; err)
maxint]
Also in that case we fill the table with the parameters of the function and the constraints extract
from the test such as the call length. We assume that seconds start from 0 and the total seconds in
a day are 86400 and we also assume that a call can start in a day and end the following one that
means endTime < startTime which is another parameter that we put in the table above. For the first
two we have that the equivalence classes are [minint, 0[, [0, 86400], [86400, maxint] while for the
zone we have [minint, 0], [1, 3] and [4, maxint].
To understand how it works the function we use two test cases:
T(86351,1,1) we have as result 50 because we start at second 86351, 49 before 0 and we end at 1
so 49+1, the call last less then 5minutes and we are in Zone1 where the cost is 1cent/sec. Instead if
the call last more than 5m and the test case is T(86101, 1, 1) we have 299+1=300, we applied the
10% which is 30 so the final result is 300-30=270.

7. In this case we have to perform a white box testing in which is asked to define the control flow
graph and define test cases to obtain the highest possible node coverage, edge coverage, multiple
condition coverage, loop coverage and path coverage.
1) int function(int x, int z){
2) int k, j;
3) int value = 0;
4) if (x < 0) return -1;
5) for (k = 0; k < x; k++){
6) If (z > x || z < 20){
7) for (j = 0; j < k; j++){
8) value ++;
9) }
10) }
11) }
12) return value;
13) }

Coverage Type TC for 100% coverage Coverage Obtained Test cases


Node 2 100 T1(-1, 10)
T2(2, 3)
Edge 3 100 T1, T2, T3(1, 3)
Multiple condition (at 4 100 T2, T3: TT
line 6) T4(3, 3): FT
T5(2, 21): TF
T6(22, 21): FF
Loop (at line 7) 3 100 T3: no enter
T2: one time
T4: many times
Path

Loop coverage: for each loop, you should have 3 test cases: one that does not enter in the loop, one
that enter and complete the iteration just once and the last that in which it enters many times.

Edge coverage: the aim is to cross in the graph, using a certain number of test cases, all the possible
edges (links between nodes).

Node coverage: number of test cases necessary to cross all the nodes of the graph.

Path coverage: try to cover all the possible combinations; se c una biforcazione seguita da unaltra
biforcazione bisogna seguire tutti i possibili rami con le varie combinazioni. Generalmente negli
esami presente il loop e quando lo si trova bisogna fare il numero di path possibili allinterno del
loop (ignorandolo e facendo solo gli IF) elevato al numero di volte che cicla che, se dipende da un
input, pu essere fino a maxint. Se si hanno due loop annidati, per esempio, si parte da dentro il
primo loop e si ottiene ((numero_path_dentro_loop)^numero_cicli1)^numero_cicli2. Normalmente
unfeasible.
Coverage Type TC for 100% coverage Coverage obtained Test cases
Node 3 100 T1: compute_tax(6000)
Edge 4 100 T1
Multiple Condition Not Available - -
Loop (at line 7) 1 33% T0: compute_tax(1000)
Path 4 100% T0
T1
T2: compute_tax(16000)
T3: compute_tax(32000)

In this case we notice that the loop at line 7 does not depend on the variables in input and it will be
executed three times every time we execute the function. For this reason, it is not possible to
obtain 100% coverage but just 33% (1/3). Theoretically the paths are 32:
23 ( if inside the for )4 (if else chain) but only 4 are feasible and are the ones corresponding
to the four test cases because paths depend on the value of parameter wage with the same test
defined for node and edge coverage is possible to cover all paths.

8. Q U E S T I O N S
Describe shortly the Scrum technique:
o Sprints iterations of fixed duration (at maximum 4 weeks) producing a working
application in increments. A sprint is a session of work delimited in time, with a
precise aim that, when it concludes, produces a usable derivable. Ranking of
requirements by end user/customer. Stand up meeting (15 minutes) every day
necessary for coordination.
Provide an example of a configuration item:
o A CI is a unit of the configuration management system. It may be a product, a piece
of software, one or more documents, one or more files. It has a name and a version
number, a new version is created with the commit operation and all its version
numbers are kept retrieving any version. For example, a CI may be Requirement
document v1.0 at 2015 07 11.
What is a Configuration?
o A configuration is a set of Configuration Items (CI), each in a specific version, and it
can be seen as a snapshot of the software at certain time. Some Cis may appear in
different configurations, and also configuration has a version number.
Describe the copy modify merge strategy for controlling changes. List advantages and
disadvantages:
o Many users can modify but the results are merged; when more users check-out
something, then someone commits a modified version, the next users will be
prompted with the message specifying that they nee to merge the documents. The
advantage of this approach is the fact that is more flexible rather than the others
because it allows more people working in parallel even though it is trivial about
conflicts resolution.
Describe shortly the Pair Programming technique:
o Pair programming is part of the extreme programming; for each person writing
code there is another person thinking about improvements and test cases. This
improves qualities but may waste development time. The correct pairing is
important and not too easy to realize.
Describe shortly the MVC Design pattern:
o The model view control design pattern is used in applications in which the GUI is
highly important and interactive to avoid mixing the data with how they are
presented and how user interacts with them. The pattern divides these three things
in three sections: model (describes the data; for example in a spreadsheet the
model is a matrix), view (how one or more model is presented; for example in a
spreadsheet the view is a table with certain borders, coloured cells and so on) and
control (manages user interactions; for example in a spreadsheet it can be a set of
listener on each cell/button).
Function A calls function B, that calls function C. You want to apply bottom up integration.
How do you proceed?
o Test C, test B+C, test A+B+C
Considering GIT, what are the three project sections that it defines, and how are they used?
o Git directory which includes everything in the project and it is what is copied when
a repository is cloned; the working directory which is a single checkout for one
version of the project and finally the staging area that contains information about
what will go into the next commit.

What is the typically lifecycle for a change? (draw states and transitions)Pu andare?

o Identify and submit Change Request


o Evaluate and approve Change Request (costs and benefits)
o Plan the Change
o Implement and test the change
o Verify implementation of the change
What measures can be used to evaluate the quality of a software?
o Number of defects found over a period of time, generally until the first failure
(defect rate, MTBF)
o Number of defects/size detected in the overall software on in a certain component
during an amount of time, divided by the size of the software or component. A
component with an high defect density may be considered more risky and so more
resources should be focus towards it.
o User satisfaction (using questionnaires/survey)
Describe shortly the Adapter Design pattern:
o The Adapter design pattern is based on the need to integrate two components, one
that requires a functionality offered by the other, but with incompatible interfaces.
Using the adapter it is possible to encapsulate one component and mask the
necessary computation in order to offer to the outside (client) the requested
interface.
Describe shortly the Test-Driven Development technique:
o It is based on testing each unit. Write one test case that fails (because feature is not
implemented yet), write the corresponding code until test case passes, repeat until
all requirements are satisfied and all test cases pass.
Describe shortly the Facade Design pattern:
o Given a number of classes strongly coupled, if it is complex to interact with them all
in order to get a certain functionality, a wrapper class can be made that offers a
simple interface and that inside itself manages all the classes on which the interface
is based. This make easier for the client to use the functionality. It may be used
when there is a bad programmed API and a more compact and usable interface is
desired, or when an existing code should be integrated in a different software.
Someone asks you to develop a simple web site, a work that requires around 3 months.
Which milestones would you define? Which deliverables?
o Month1, only GUI without logic, month 2 GUI + logic iteration1, month3 delivery
while the deliverables are: GUI mock-up and requirements M1, design(M1),
code(M3).
Describe what is an oracle in testing and the key problems related to it:
o It is the set of correct associations between input and outputs but it is really
difficult to have even if it is necessary condition to perform testing.
What is a build? What are the related problems?
o Process (including compilation, link, possibly testing and other activities) to produce
an executable starting from source code modules and libraries. Problems:
dependencies among modules, finding and using the right modules in term of type
and version. Popular tools are: Make, Ant, Maven.
In the context of verification and validation, describe a static analysis technique:
o Inspection or dataflow analysis or control flow analysis.
What are the main differences between an iterative and a waterfall process?
o Waterfall only performs one iteration.
Describe shortly the Singleton Design pattern:
o Is one of the simplest design patterns and comes under creational pattern as this
pattern provides one of the best way to create an object. This pattern involves a
single class which is responsible to create an object while making sure that only
single object gets created. This class provides a way to access its only object which
can be accessed directly without need to instantiate the object of the class.
According to the Cocomo model, how are related duration and effort?
o TDEV = 3 PM (0.33 + 0.2* (B-1.01)) with B=1 in the simplest model. Writing the
formula was not necessary; the key point was saying that duration TDEV depends
on effort PM with exponential formula with exponent < 1.

140 person hours are equivalent to how many person months?


o The conversion rate depends on national and company rules. If one person month
== 140 person hours then result is of course 1. If one person month == 160 person
hours then result to be 140/160 and so on. However to realize a correct conversion
we need other two information: how many hours a day a person work and how
many days a week.
Describe the key concepts of mutating testing:
o It is a technique to evaluate how good a test suite is. When a test case is defined, if
it works on one component, the problem is to understand if the component is
defect-free or the test has been not properly defined. Errors are inserted in the
program under test (mutations). The more mutations the test suite finds, the better
the test suite.
Describe the key steps in an inspection process of a requirement document:
o A team of people that does not include the author of the document develops a
checklist of questions to understand if they can find the answer in the document.
Usually these questions are based on precedent defects, then they do a
perspective-reading from the perspective of each stakeholder with the aim of
finding ambiguities. There must be at least one test for each requirement.
What are Function Points used for? How are they defined?
o Function Points are an estimation of the effort; their characteristic is that they are
not language, technology, developers dependant. There are a number of different
implementations and standards, all based n mathematic computation of indices in
order to reflect the characteristics of each specific measure and try to normalize it.
Function Points are complex to evaluate, so usually it is a task assigned to an expert
with experience in the field.
What kind of problem traceability identifies?
o Linking requirements to design components/functions to code
components/functions to test cases. On method is the traceability matrix that
matches each requirement with at least one function.
A defect on a SW product signalled by a customer has been allocated to a developer, who
has found the corresponding error. What happens next?
o Fix the defect, rebuild test, regression test, decide release to attach the patch to,
release.
Describe the keys concepts of the waterfall process:
o Starting from the description of the problem, all development steps are performed
sequentially. For the next activity to start, the previous one must be completed and
any change to a document implies re-doing all activities depending on it. It is a
document-driven model. To work correctly it is necessary that pre-requisites should
be complete, stable and understood and team must have experience because it is
hard to learn from the experience within the project.
The size of a project is estimated to be 600 FP. The project is developed in Java, past figures
from the company tell that one FP is worth 20 to 30 LOC, and that productivity is 10-15 LOC
per person days. How many person days would be required for the project?
o 600 FP 12000 to 18000 LOC
o Min_effort = 12000/15= 800 PD; Max_effort = 18000/10 = 1800 PD
o 600*(20+30)/2 = pippo where pippo is the number of LOC that the project is
estimated to involve. This is independent from the language and for that reason
pippo/(10+15)/2 is the number of average person days.
A software product is developed custom for a bank. Development takes 18 months,
operation and maintenance 10 years. Where do you expect to have the larger part of costs?
o Maintenance because 10 years is way longer than 18 months, evolutive, corrective
and enhancement maintenance will likely require more effort than initial
development.
What are pros and cons of the lock modify unlock approach to change control?
o User puts lock on CI, user modifies Ci, user unlocks CI. Until lock is set, only one
user can modify the CI. Advantages: no concurrent, incoherent modifications.
Disadvantages: bottlenecks on CI needed by many users, deadlocks if user forgets
to unlock a CI.
A project is estimated to require 60 person months for development. What could be the
calendar duration for development?
o Depends on the number of people working, 3 people, 20 calendar months, 4
people 15 months but there is a limit on the number of people. For example, 20
people is not realist and consequently 3 months is unfeasible.
Describe shortly the incremental software process:
o The incremental software process is based on the waterfall process, but instead of
integrating all at the end and delivering the final product, each component is
developed following the waterfall model, integrated with what has been already
developed and delivered. The difference with the iterative process is that in the
iterative all pieces are produced following the waterfall and then in the end they
are integrated, in the incremental each piece is developed and integrated each
step.
Cost of the project should be measured in Euros, what kind of requirement is this?
o Domain requirement it is non-functional
Describe shortly the Delphi estimation method:
o It is a structured communication technique, originally developed as a systematic,
interactive forecasting method which relies on a panel of experts. The experts
answer questionnaires in two or more rounds and after each round a facilitator
provides an anonymous summary of the expertsforecasts from the previous round
with the reasons for their judgments. It is believed that during this process the
range of answers will decrease and the group will converge towards the correct
answer. Finally, the process is stopped after a predefined stop criterion and the
median scores of the final rounds determine the results.
What is a deadline?
o Calendar date when a task/deliverable has to be completed/issued. For example, in
a construction project, could be: roof ready by May 31, 2009.
What is the recommended length of an iteration in an agile project?
o 4-5 weeks at most.

Describe shortly the Strategy Design pattern:


o The Strategy Design pattern is strongly based on polymorphism; it is based on the
problem of having a class or an algorithm with a stable core and many different
small variations. This may require many classes, each one implementing its own
algorithm or many conditional statements. The strategy design pattern solves this
by polymorphism, each class can rely on the core algorithm and re-implement only
the specific part, supported by the run-time binding. For example, each data type
can implement its own compare() method but all data types will rely on the sort()
algorithm by just providing it the compare() functionality.
A project has the following estimated Gantt: the planned value of the project is 100 units,
50 on activity1, 50 on activity2. One month after start the project has consumed 60 units,
activity1 is finished while activity2 not yet, what is the Earned Value of the project?
o EV = 50 and the activity2 does not count because it is not finished.
Describe briefly the repository architectural style:
o Several applications communicate only through exchange of data files. No direct
interaction between applications, no call to APIs such as Eclipse.
Provide an example of two conflicting non-functional properties of a software architecture:
o Very high precision of computation conflicts with performance. The higher the
precision, the slower is the response time.
What are the possible type of defects in a code module?
In the context of configuration management, what is a baseline?
o It is a configuration stable in a frozen form. There are two types: development (for
internal use) or product (for delivery).
In the context of project management, give the definition of deliverable:
o It is a product, final or intermediate, in the process. It may be internal or external
and have or not a contractual value.
Describe briefly the layered architectural style:
o It is a description of the component and connector types involved in the style and
also the collection of rules that constrain and relate them. It organizes a system into
a set of layers each of which provide a set of services to the layer above.
Advantages: you can test the component independently of each other,
independently deployed, maintained and updated on different time schedules and
this allow to members of the team to work in parallel on different parts this
allow to have an increase in flexibility, maintainability and scalability.
Disadvantages: if there are too many layers performance degrades, sometimes it is
difficult to cleanly assign functionality to the right layers and cannot be used for
simple since it adds complexity. An example could be virtual machines and APIs.
What are the key differences between testing and debugging?
o Testing tries to find failures, debug tries to discover the correspondent fault(s).
In the context of project management give the definition of milestone:
o A key event in the project, with possible effect on later activities. For example
construction permit is granted.
Give the definition of effort in the context of project management, and its unit of measure:
o Effort is the time taken by the staff to complete a task. It is measured in person
hours and also person day, person month, person year and it depends on national
and corporation parameters.

What are the possible type of defects in a requirement document?


o Omission/incompleteness
o Incorrect Fact
o Inconsistency/contradiction
o Ambiguity
o Extraneous Information
o Overspecification (design)
o Redundancy
What are the key points of the Cocomo model?
o The Cocomo model links effort (in person months) and size (in delivered source
instructions). Three models are provided (simple/intermediate/complex) but in all
cases the relation is exponential. The Cocomo model was proposed by Boehm in
1981 and now has been replaced by Cocomo2.
Describe shortly the perspective based inspection technique:
o Inspection where readers use different points of view (like end user, designer, etc.)
to read the requirement document.
Class A has been developed and you should test it. What is better to do, black box testing,
white box testing or both?
o Both because they use different criteria of writing test cases and only using
together is highly probable of finding them.
Describe the CCB (Configuration Control Board) approach for change management:
o It is a group of project stakeholders responsible for: evaluating and approving or
disapproving proposed changes to a system, prioritizing the incorporation of
approved changes and scheduling the changes for forthcoming releases. In some
projects the CCB may also be responsible for verifying that approved changes have
been implemented.
What are the key points of perspective based reading?
o Like an inspection, but each reader reads the document from a different
perspective like tester, designer or end user.
What states the Weinberg law?
o A developer is unsuitable to test his/her code. In general the creator of an artefact
is not suitable to evaluate its quality.
User Mario commits file A on a subversion server, subversion notifies that the file is at
revision 300. User Mario and other users execute 3 more commits of other files. Then John
commits again file A. What is the revision number of a?
o 304 on the repository and on Johns working copy while Marios working copy is at
301 unless he updates.
The cost of fixing a defect in a requirements document is higher if the project is in the
requirements phase, or if the project is in the coding phase, why?
o Fixing a defect costs less in the requirements phase, essentially because no other
artefacts exist yet at the stage. Fixing a requirements defect in the requirement
phase means only changing one document, instead of many. Think to a house: it
costs less to add a windows in the project plan rather than adding it when the
house is in construction or it is already built and people is living there.
What are the most important functions of a configuration management tool?
o Identify and manage parts of software
o Handle whole history of repository
o Handle branches, configurations and versions of software
o Handle accesses and changes to parts
A defect can be injected, discovered, removed. Of course not injecting defects at all is the
best option. Is this feasible?
o Not injecting defects is not feasible: software is not defect-free for definition, since
its the result of a human activity. Probability of inserting a defect writing or
changing code is different from zero Adamss Law.
Describe what are mixed revisions in Subversion:
o Mixed revisions are revisions of a working copy whose files have different revision
numbers. They are possible only in working copies and not in the central repository.
For example if you suppose to have a working copy entirely at revision 10 you could
edit the file foo.html and then perform an svn commit which creates revision 15 in
the repository. Therefore the Subversion marks the file foo.html as being at revision
15. The rest of the working copy remain at revision 10.inspec
In the context of project management, give the definition of slack time:
o It is the admissible delay to complete an activity and can be used to delay the start
time or to lengthen an activity.
A project is estimated to require 40 person months. Give an estimated range of the required
calendar time and explain how you compute it:
o A reasonable team for such project could be 2 to 5 people. Assuming that the team
has the same number of people from start to end this gives a calendar range of 20
to 8 calendar months (computed as person months/persons). A team of 40
person is not reasonable because it requires too much coordination and
communication overhead so 1 month duration would be unfeasible (similarly for
20-30 people).
In project management, what are the units of measure for duration and effort? What is the
difference between these measures?
o Duration: calendar time (hours, days, weeks) and it can be relative to the start of
the project (two days) or absolute (from 12/07 to 14/07);
o Effort: person * hours.
By definition: duration measures the time needed to complete a project while effort
represents the amount of work needed. Given the effort of a project, calendar time
depends on how many people work on it. Ideally increasing people working on the
project the duration will decrease but this depends on coordination and on the
possibility to work in parallel.

Вам также может понравиться