final exam material Flashcards

1
Q

what is testing intended to do

A

it is intended to demonstrate to the developer and the customer that the software meets its requirements

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

what are the two types of software testing

A

verification testing : are we building the product right?

  • intended to show that the system conforms to its specification
  • tests whether the system verifies tits functional and non-functional requirements

validation testing: did we build the right product?

  • testing whether the software does what the user requires
  • testing whether the software runs without incorrect or undesirable behavior (defect testing)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

what does the confidence required in a system depend on?(3)

A

software purpose: the level of confidence depends on how critical the software is to an organisation

user expectations: users may have low expectations of certain kinds of software or they can tolerate certain software failure rates

marketing environment: getting a product to market early may be more important than finding defects in the program

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

what is software inspection

A

analyzing the system documentation: requirements, architecture, design models and test cases to discover problems

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

what is software testing and what is another word for it

A

running and observing product behavior. also known as dynamic verification

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

what are the 3 advantages of software inspection

A
  • inspections may be applied to any representation of the system
  • incomplete versions of a system can be inspected without additional costs
  • during testing, errors can mask other errors. but because inspection is a static process, we don’t have to be concerned with interactions between errors
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

what are the 4 difficulties of software inspection

A
  • software inspection involves people examining the source representation with the aim of discovering anomalies and defects which is difficult to automate
  • difficult to detect errors which could appear due to component interactions
  • difficult to detect problems related to performance issues
  • requires a dedicated team which is not always available
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

what are the three major stages of testing

A
  • development testing: system is tested during development
  • release testing: separate testing team tests a complete version of the system before it is released
  • user testing: users test the system in their own environment
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

what is a test case?

A

testing procedure to describe the input, expected output and the test process

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

what are the three types of development testing

A
  • unit testing: individual program units or object classes are tested
  • component testing: testing composite components made of individual units
  • system testing: testing the system as a whole
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

what is unit testing and what does it target? what is the most difficult to test

A

the process of testing individual program units in isolation

units designate individual program entities such as:
- individual functions or methods within an object
- object classes with several attributes and methods
- composite components with defined interfaces used to access their functionality

class relations make it more difficult to design object class tests as the information to be tested is not localized

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

what are TAT

A

test automation tools provide generic test classes that can be extended to create specific test cases

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

what are the 3 main phases of test automation

A
  • setup phase: where the system is initialized with the test case
  • call phase: where object or method to be tested is called
  • assertion phase: where the result is compared with the expected result
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

what are the two types of unit test cases

A
  • evaluating the normal operation behavior of a program
  • evaluating the abnormal behavior of a program
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

what are the two strategies to be used in unit testing

A
  • partition testing: where we identify groups of input that have common characteristics and should be processed in the same way
  • guideline-based testing: where certain testing guidelines are used
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

what are some examples of guideline based testing

A
  • choose inputs that force the system to generate all error messages
  • design inputs that cause input buffers to overflow
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

describe the component testing

A
  • software components are composite entities made of several interacting entities which could be individual or composite components
  • the functionality of the constituent entities of a component are accessed through the defined component interface
  • testing composite components should therefore focus on showing that the component interface behaves according to its specification
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

what is interface testing in component testing and what are its 4 types

A

detecting faults due to interface errors or invalid assumptions about interfaces

interface types:
- parameter interfaces: data passed from one method to another
- shared memory interfaces: block of memory is shared between procedures
- procedural interfaces: sub-system encapsulates a set of procedures to be called by other subsystems
- message passing interfaces: sub-systems request services from other sub-systems

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

what are interface errors

A
  • interface misuse: a calling component calls another component and makes an error in tis use of its interface
  • interface misunderstanding: a calling component embeds assumptions about the behavior of the called component which are incorrect
  • timing errors: the called and calling component operate at different speeds and out of date information is accessed
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

what are the interface testing guidelines (5)

A
  • user parameters when calling components at the extreme ends of their ranges
  • always test pointer parameters with null pointers
  • design tests which case the component to fail
  • use stress testing in message passing systems
  • in shared memory systems, vary the order in which components are activated
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

what is system testing and what does it focus on?

A
  • system testing involves integrating components to create a version of the system and then testing the integrated system
  • focuses on the interactions between components
  • Reusable components that have been separately developed and off the shelf systems may be integrated with the newly developed components
  • components developed by different team members may be integrated at this stage
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

what are the testing policies in system testing

A
  • exhaustive system testing is impossible so testing policies which define the required system test coverage is developed.

examples:
- all system functions that are accessed through menus should be tested
- combinations of functions that are accessed through the same menu must be tested
- where user input is provided, all functions must be tested with correct and incorrect values

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

what is TDD

A

Test driven development is an approach to program development in which you interleave testing and code development. commonly used with agile development

  • test cases are written before code and passing the tests is the critical driver for development
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

what are the 4 pros and 4 cons of TDD

A

pros:

  • code coverage: every code segment that is written has at least one associated test so all code written has at least one test
  • regression testing: a regression test suite is developed incrementally as a program is developed
  • simplified debugging: when a test fails, it should be obvious where the problem lies such that only newly written code needs to be checked
  • system documentation: the tests themselves are a form of documentation that describe what the code should be doing

Cons:

  • programmers prefer programming to testing
  • some tests can be very difficult to write incrementally
  • it is difficult to judge the completeness of a set of tests
  • maintaining simplicity requires extra work
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

what is regression testing

A
  • testing the system to check that new changes have not damaged previously working code
  • in a manual testing process, regression testing is expensive but, with automated testing, it is simple and straightforward
  • tests must run successfully before the changes can be committed
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

what is release testing and what is its primary goal

A
  • testing a particular release of a system that is intended for use outside of the development team
  • primary goal is to convince the supplier of the system that it is good enough for use
  • release testing is usually a black-box testing process
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

what is the difference between release testing and system testing (2)

A

release testing is a form of system testing

main differences:

  • a separate team that has not been involved in the system development should be responsible for the release testing
  • system testing by development team mainly focuses on discovering bugs in the system (defect testing)
  • release testing is to check the system meets its requirements and is good enough for external use
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

what are the types of release testing (3)

A
  • requirements testing: requirements based testing involves examining each requirement and developing a test for it
  • scenario based testing: testing the system in typical scenarios of use
  • performance testing: testing emergent properties of a system such as performance and reliability
29
Q

what is user testing

A

stage in the testing process in which users or customers provide input and advice on system testing

30
Q

what are the 3 types of user

A
  • alpha testing: users of the software work with the development team to test
  • beta testing: a release of the software is made available to users to allow them to experiment and to raise problems that they discover with the system developers
  • acceptance testing: customers test a system to decide whether or not it is ready to be accepted from the system developers

NOTE: in agile methods, user/customer is part of the development team

31
Q

what are the success criteria for good project management (4)

A
  • deliver the software to the customer at the agreed time
  • keep overall costs within budget
  • deliver software that meets the customer’s requirements
  • maintain a happy and well-functioned development team
32
Q

what are the features distinguishing software management

A
  • the product is intangible
  • many software projects are ‘one-off’ projects (different from the rest)
  • software processes are variable and organization specific
33
Q

what are project management activities (5)

A
  • project planning: estimating and scheduling project development, assigning people to tasks etc.
  • Reporting: project managers are responsible for reporting on the progress of a project to customers
  • Risk management: project managers asses the risks that may affect the project and take action when problems arise
  • People management: choose people for their team and establish ways of working that leads to effective performance
  • Proposal Writing: which describes the objectives of the project and how it will be carries out
34
Q

what are the 3 types of risks giving 4 types in each

A
  • Project risks affect scheduling and resources
    • staff turnover: experienced staff will leave the project before it is finished
    • management change: there will be a change of organizational management with different priorities
    • hardware unavailability: hardware that is essential for the project will not be delivered on schedule
    • Requirement specification delays: specification of essential requirements are not available on time
  • Product risks affect the quality and performance of the software being developed
    • Product requirements change: larger number of changes than anticipated
    • Requirements specification ambiguity: specifications of essential components are not clear
    • size underestimate: the size of the system has been underestimated
    • CASE tool underperformance: CASE tools, which support the project, do not perform as anticipated
  • Business risks affect the organization developing and procuring the software
    • technology change: the underlying technology on which the system is built is superseded by new technology
    • Product competition: a competitive product is marketed before the system is completed
    • New Regulations: governments introduce new regulatory functions and policies which may affect the business
    • cash flow reduction: budget cuts might arise, reducing cash flows
35
Q

what are the 4 types of project risks

A
  • staff turnover: experienced staff will leave the project before it is finished
  • management change: there will be a change of organizational management with different priorities
  • hardware unavailability: hardware that is essential for the project will not be delivered on schedule
  • Requirement specification delays: specification of essential requirements are not available on time
36
Q

what are 4 examples of product risks

A
  • Product requirements change: larger number of changes than anticipated
  • Requirements specification ambiguity: specifications of essential components are not clear
  • size underestimate: the size of the system has been underestimated
  • CASE tool underperformance: CASE tools, which support the project, do not perform as anticipated
37
Q

what are 4 examples of business risks

A
  • technology change: the underlying technology on which the system is built is superseded by new technology
  • Product competition: a competitive product is marketed before the system is completed
  • New Regulations: governments introduce new regulatory functions and policies which may affect the business
  • cash flow reduction: budget cuts might arise, reducing cash flows
38
Q

describe the 4 stages in risk management process

A
  • Risk identification
  • Risk analysis
  • Risk planning: how to avoid or minimize the effects
  • Risk monitoring: monitor the risks throughout the project
39
Q

what are some common risks that may be used to identify risks in a project

A
  • Technology risks
  • people risks
  • organizational risks
  • requirements risks
  • estimation risks
40
Q

what are the 4 risk consequence levels

A
  • Catastrophic: threaten the survival of the project
  • Serious: would cause major delays
  • *Tolerable: delays are within allowed contingencies
  • Insignificant: does not significantly affect the project
41
Q

what are the two approaches to risk

A
  • Avoidance strategies: reduce the probability that the risk will arise
  • minimization strategies: reduce the impact of the risk on the project or product
42
Q

how can we perform risk monitoring

A
  • Asses each identified risk regularly
  • discuss key risks at management progress meetings
43
Q

what is the most important asset in an organization

A

PEOPLE

44
Q

what are teh major people management factors (4)

A
  • consistency: team members are treated fairly
  • Respect: Different team members have different skills which should be respected
  • Inclusion: involve all team members and make sure that people’s views are considered
  • Honesty: always be honest about what is going well & what is going badly
45
Q

what are the general needs for team motivation

A
  • basic needs
  • social needs
  • personal needs
46
Q

what are the basic needs in an SE group

A
  • social:
    • provide communal facilities
    • allow informal communications
  • esteem
    • Recognition and achievements
    • appropriate rewards
  • self-realization
    • training: people like to learn more
    • responsibility: people like to know they can be counted on
47
Q

what are the 3 personality types

A
  • task oriented motivation for doing the work itself
  • self-oriented: the work is a means to an end, which is achievement of individual goals
  • interaction oriented: the principal motivation ins the presence and actions of co-workers
48
Q

what are the 4 advantages of a cohesive group

A
  • group quality standards can be developed by the group members
  • team members learn from each other and get to know each other’s work
  • knowledge is shared: continuity can be maintained if a group member leaves
  • refactoring and continual improvement is encouraged
49
Q

what does the effectiveness of a team depend on

A
  • the people in the group: you need a mix of people in a group project as software development involves diverse activities
  • the group organization
  • technical and managerial communications
50
Q

what is a manager or team leader’s job and what makes it challenging

A

to create a cohesive group

it may not be possible to appoint the ideal people to work on a project:

  • project budget may not allow for use of highly-paid staff
  • staff with the appropriate experience may not be available
  • an organization may wish to develop employee skills on a software project
51
Q

why is a team composed of members with the same motivation problematic?

A
  • task oriented: everyone wants to do their own thing
  • *self oriented: everyone wants to be the boss
  • *interaction oriented: too much babbling
52
Q

what are the properties of informal groups and when does it become successful

A
  • the group acts as a whole and comes to a consensu on decisions
  • the leader serves as the external interface of the group
  • work is discussed by the group as a whole

Successful where members are experienced and competent

53
Q

what may team communications depend on

A
  • team size: the larger the group, the harder it is for people to communicate
  • team structure: communication is better in informally structured groups than in hierarchically structured groups than in hierarchy structured groups
  • team composition: communications is better when there are different personality types in a group
  • the physical work environment: good workplace encourages communication
54
Q

what are the 7 roles a member can play in teams

A
  1. encourager
    • energizing the group when motivation is low
  2. compromiser
    • tries to maintain harmony among team members
    • tolerant individuals and good judges of people
    • diplomatic
    • able to resolve differences of opinion
  3. leader
    • directs the work and keeps the group on track
    • good at controlling people and events and coordinating resources
    • recognize the skills of each individual and how they can be used
  4. summarizer
    • summarizes group discussions and highlights conclusions
    • calm and reflective
    • elaborate on the ides of others
  5. ideas person
    • suggest new ideas to solve group problems
    • suggest new ways for the group to organize the task
    • they may get bored after the initial motivation wears off
  6. evaluator
    • helps the group avoid coming to agreement too quickly
    • tend to be slow in making decisions
      - logical, analytical and objective people
  7. recorder
    • keeps the group focused and organized
    • make sure everyone is helping with the project
    • time keepers
    • can act as spokesperson
    • memory of the group
55
Q

what makes a team effective (8)

A
  • clear goals
  • range of individuals who contribute in different ways
  • help each other achieve work
  • there should be balance between teh task and the process
  • the team is comfortable with disagreement
  • there are lots of discussion sand everyone’s ideas are heard
  • the group learn from experience
  • highlighting individual performance within the team
56
Q

what makes a team ineffective

A
  • no clear goals
  • people talk more than they listen
  • ideas are dismissed
  • there are arguments instead of constructive conversations
  • a few members dominate the rest
  • disagreements are put to the vote (makes some unhappy)
  • roles are not delegated to particular team members
  • lack of trust
57
Q

when does the project planning take place in the project life

A

takes place at three stages of a project’s life:

  • proposal stage, when bidding for a contract to develop or provide a software system
  • during the project startup phase when planning (who will work on the project, how the project is broken down etc)
  • periodically throughout the project
58
Q

what are the factors affecting software pricing (5)

A
  • Market opportunity
    • a development organization may quote a low price because it wishes to move into a new segment of the software market
    • accepting lower profit on one project may give the organisation the opportunity to make a greater profit on one project may give the organization the opportunity to make great profit later
    • the experience gained may also help develop new products
  • cost estimate uncertainty:
    • if an organization is unsure of tis cost estimate it may increase its price by a contingency over and above its normal profit
  • contractual terms:
    • a customer may be willing to allow a developer to retain ownership of the source code and reuse it in other projects
  • requirements volatility:
    • if the requirements are likely to change, an organization may lower its price to win a contract
  • *development company financial crisis
    • developers in financial difficulty may lower the price to gain a contract
59
Q

what is plan driven development

A

plan driven development is an approach to software engineering where the development process is planned in detail

60
Q

what are the project plan’s main sections

A
  • introduction: briefly describing the project objectives requirements and company constraints
  • project team organization: describes how the development team is organized
  • requirements specification: starting from organizational & external non-functional requirements to more detailed functional & non-functional requirements
  • risk analysis: describes possible risks and their likelihood as well as their mitigation/avoidance strategies
  • development requirements: hardware and software support required to develop the project
  • work breakdown: dividing the project into activities in order to define milestones and deliverables
    • milestone: key stages where progress is assessed
    • deliverables: work products delivered to the customer
  • project schedule:
    • dependencies between activities
    • estimated time to reach milestone
    • allocation of people to activities
  • Monitoring and reporting mechanisms: defines management reports that have to be produced
61
Q

what is project monitoring

A
  • measuring ongoing project activities (where we are)
  • monitoring project variables
  • identify corrective actions
62
Q

what are the project plan supplements (4)

A
  • quality plan: describes the quality procedures and standards that will be used in a project
  • validation plan: describes the approach, resources, and schedule used for system validation
  • maintenance plan: describes the maintenance requirements, costs and effort
  • staff development plan: describe how the skills and experience of the project team members will be developed
63
Q

what type of process is project planning

A

Iterative process where changes are inevitable

64
Q

what is project scheduling (3)

A
  • deciding how the work in a project will be organized as separate tasks
  • estimating the calendar time needed to complete each task
  • estimating the resources needed to complete each task
65
Q

what are the main project scheduling activities (4)

A
  • split project into tasks
  • estimate resources required to complete each task
  • estimate time required to complete each task
  • optimization: minimize dependencies to avoid delays caused by waiting
66
Q

what is person-day

A

average effort spend by one person during a day

67
Q

why is the relation between duration and effort (in person-days) not straightforward

A

it depends on different factors:
- number of staff allocated to each task
- productivity of each staff member
- amount of time allocated by each staff member to task

NOTE: we use staff allocation chart

68
Q

what is agile planning

A
  • agile methods are iterative approaches where software is developed and delivered in increments
  • not planned
  • based on the idea that customer’s requirements and priorities change
69
Q

what do XP and Scrum approaches have in common

A

they both have two-stage planning

  • release planning: whcih looks ahead for several months and decides the features that should be included in the release
  • iteration planning: which has shorter term outlook and focuses on planning the next increment of the system (2-4 weeks long)
  • story based planning:
    • the system specification is based on user stories
    • rank the stories in order of time they think it will take
    • release planning involves selecting and refining the stories selected