Finals Flashcards

1
Q

What are the types of software testing?

A

1 - Verification testing:
- Intended to show that system conforms to its specifications
- Tests whether the system verifies its functional and non-functional requirements

2- Validation testing:
- Testing whether the software does what the user requires
- Testing whether the software runs without incorrect behavior

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

What does the level of confidence in a system depend on?

A
  • Software purpose:
    Depends on how critical the software is to an organization
  • User expectations:
    User may have low expectations or tolerate certain failures
  • Marketing environment:
    Getting a product to market early may be more important than finding defects
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is software inspection?

A
  • It is prior to testing
  • It analyses the system documentation to find problems
  • Also known as static verification
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What are the advantages of software inspection?

A
  • Useful in searching for program defects
  • Inspections do not require executing the system
  • Won’t be concerned with interactions between errors
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What are difficulties in software inspection

A
  • Manual effort
  • Difficult to detect errors which appear due to component interactions
  • Difficult to detect problems related to performance issues
  • Required dedicated team
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What are the 3 stages of testing?

A

1- Development testing (during development):
- Discover bugs
- Verifying functional requirements

2- Release testing (beta):
- separate testing team tests a complete version of the system before it is released to users
- Verifying functional and non-functional requirements

3- User testing (prod):
Users test the system on their own

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

What are the 3 different levels development testing?

A
  • Unit testing:
    Individual 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
8
Q

Explain unit testing

A
  • Unit testing is the process of testing the individual program units in isolation
  • Units designate individual program entities such as functions, object classes,…
  • Focuses on testing the functionality of objects or methods
  • It is a defect testing process
  • Breaks down and assesses functional requirements at the unit level
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What do test automation tools provide?

A

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
10
Q

What phases does test automation pass through?

A

1- Setup phase:
Where the system is initialized with test case

2- Call phase:
Object or method to be tested is called

3- Assertion phase:
The result of the call is compared with the expected result

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

What is a test case and what are the two types of test cases?

A
  • Test procedure designed to show that the unit tested is working properly

1- Evaluating normal operation behavior of a program

2- Evaluating abnormal behavior of a program

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

What are unit testing strategies that can be considered?

A
  • Partition testing:
    Identify group of inputs that are similar and should be processed the same way
  • Guideline-based testing:
    Certain testing guidelines are used. These reflect previous errors that programmers make
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Explain partition testing

A
  • Input data and output results are divided into different classes where all members of a class are related
  • Each of these classes is an equivalence partition
  • Test cases should be chosen from each partition

Testing values in partitions + testing values around boundaries + testing values outside of boundaries

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

Explain the guideline-based testing

A
  • Choose inputs that force the system to generate all error messages
  • Design inputs that cause input buffers to overflow
  • Repeat the same input or series of inputs numerous times
  • Force invalid outputs to be generated
  • Force computations results to be too large or too small
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Explain what is a component and what is component testing

A
  • Software components are composite entities made of several interacting entities
  • Testing composite components should focus on showing that the component interface meets required specification
  • Assumes that unit tests on individual entities have been done
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What is interface testing?

A
  • Detects faults due to interface errors
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

What are the types of interface?

A
  • Parameter interface:
    Data passed from one method to another
  • Shared memory interface:
    Block of memory shared between functions
  • Procedural interface:
    Subsystem encapsulates a set of procedures to be called by other subsystems
  • Message passing interfaces:
    Subsystems request services from other subsystems
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

What are types of interface errors?

A
  • Interface misuse:
    Two components calling each other causing an error
  • Interface misunderstanding:
    Calling component assumes behavior of called component which is incorrect
  • Timing error:
    Called and calling components operate at different speeds
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

What are interface testing guidelines?

A
  • Use edge cases
  • Always test pointer parameters with null pointers
  • Design tests which cause component to fail
  • In message system, use stress testing
  • 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
20
Q

Explain system testing

A
  • Test interactions between components
  • Checks that components are compatible, interact correctly, and transfer the right data
  • Test the overall behavior of the system
  • Components developed by team members or sub-teams may be integrated at this stage
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

What are the key considerations in developing testing policies for system testing when exhaustive testing is not possible?

A
  • Since it’s not possible to test every aspect of a system, we develop testing policies that define which parts are most important to test.

Examples:
- All system functions that are accessed through menus
- Combinations of functions that are accessed through the same menu
- User input functions must be tested with correct and incorrect input

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

What is test-driven development

A
  • It is an approach where we combine testing and code development
  • Test cases are written before code and once the test is passed, the code is written
  • Code is developed incrementally along with a test for each increment
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

What are pros of TDD

A
  • Code coverage:
    Every code has at least one test associated with it
  • Regression testing:
    Developed incrementally as program is developed
  • Simplified debugging:
    Problem is clear when test fails
  • System documentation:
    Tests are a form of documentation
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

What are the cons of TDD?

A
  • Programmer prefer programming to testing
  • Some test can be difficult to write incrementally
  • Difficult to judge completeness of a set of tests
  • 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 the new changes did not affect previous code
  • Expensive when done manually, but when automated it is simple
  • 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?

A
  • The process of testing a particular release of a system that is intended to be used outside of the development team
  • Form of system testing
  • Primary goal is to convince supplier that the system is good enough for use
  • Black-box testing where tests are only derived from system specification
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

What is the difference between system testing and release testing?

A
  • A separate team that has not been involved in system development should be responsible for release testing
  • System testing by the development team focuses on discovering bugs in the system
  • The objective of release testing is validation and verification
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

What are the 3 types of tests that are associated with release testing?

A

1- Requirements testing:
- Tests to verify requirements are met

2- Scenario based testing:
- Testing the system in typical scenarios of use
- Scenarios could be narrative stories or visual diagrams

3- Performance testing:
- Tests performance and reliability
- Stress testing

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

What is user testing? What are the types of user testing?

A
  • Where users test the system

Alpha testing:
Users test system at developer’s site

Beta testing:
A release of the software is available to certain users and raise problems with developers

Acceptance testing:
Customers test a system to decide whether or not it is ready to be accepted from
the system developers and deployed in the customer environment

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

What are project management activities?

A
  • Project planning:
    Assigning people to tasks
  • Reporting:
    Report on progress of a project to customers and managers
  • Risk management:
    Assess the risks that may affect a project
  • People management:
    Choose people for their time and establish ways of working that lead to effective team performance
  • Proposal writing:
    Writing a proposal to win a contract to carry out an item of work
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q

What is risk management?

A

It is concerned with identifying risks and drawing up plans to minimize their effect on a project

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

What is a risk and what are the types or risks?

A

A risk is a probability that some adverse circumstance will occur

Types of risks are:

  • Project risks:
    Affect schedule or resources
  • Product risks:
    Affect the quality/performance of the software being developed
  • Business risks:
    Affect the organization developing/using software
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
33
Q

What are some examples of project risks?

A
  • Staff turnover
  • Management Change
  • Hardware unavailability
  • Requirement specification delays
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
34
Q

What are examples of product risks?

A
  • Product requirements change
  • Requirements specification ambiguity
  • Size underestimate
  • CASE tool underperformance
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
35
Q

What are examples of business risks?

A
  • Technology change
  • Product competition
  • New regulations
  • Cash flow reduction
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
36
Q

What is the risk management process?

A
  • Risk identification:
    Identify project, product, and business risk
  • Risk analysis:
    Assess the likelihood and consequences of these risks
  • Risk planning:
    Draw up plans to avoid or minimize the effects of risk
  • Risk monitoring:
    Monitor the risks throughout the project
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
37
Q

How can risk identification be performed and what are different types of risks?

A

It can be performed as a team activity or individually. It revises a checklist of common risks that may be used to identify the risks such as:

1- Technology risks:
- Database can’t process as many transactions per second as expected
- Reusable software components contain defects and cannot be reused as planned

2- People risks:
- Difficult to recruit staff with skills required
- Key staff are ill

3- Organizational risks:
- Organization is restructured so that different management supervises project
- Organizational financial problems force reductions in the project budget

4- Requirements risks:
- Changes to requirements that require major design rework are proposed
- Software tools cannot work together in an integrated way

5- Estimation risks:
- Time required to develop is underestimated
- The rate of the defect repair is underestimated

6- Tools:
- Code generated by software code generation tools is inefficient
- Software tools cannot work together in an integrated way

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

What is risk analysis:

A
  • It assesses the probability and seriousness of each risk
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
39
Q

How to measure risk consequence?

A
  • Catastrophic:
    Threatens the survival of project
  • Serious:
    Would cause major delays
  • Tolerable:
    Delays are within allowed contingencies
  • Insignificant:
    Do not significantly affect project
40
Q

How to measure risk probability?

A
  • Very low (< 10%)
  • Low (10-25%)
  • Moderate (25-50%)
  • High (50-75%)
  • Very high (> 75%)
41
Q

What are the strategy categories that are taken in risk planning phase?

A
  • Avoidance strategy:
    Reduce probability that the risk will arise
  • Minimization strategies:
    Reduce the impact of the risk on the project or product
    Contingency plans to deal with that risk
42
Q

What are the major points in risk monitoring?

A

1- Assess each identified risk regularly
2- Discuss key risks at management progress meetings

43
Q

What are risk types and some potential indicators?

A

1- Technology:
- Late delivery of hardware or support software
- Many reported technology problems

2- People:
- Poor staff morale
- Poor relationships amongst team members
- High staff turnover

3- Organizational:
- Organizational gossip
- Lack of action by senior management

4- Tools:
- Reluctance by team members to use tools
- Complaints about tools

5- Requirements:
- Many requirements change request
- Customer complaints

6- Estimation:
- Failure to meet agreed schedule
- Failure to clear reported defects

44
Q

What are the major factors affecting people management?

A
  • Consistency:
    Team members are treated with no discrimination
  • Respect:
    Different team members have different skills that are respected
  • Inclusion:
    Involve all team members and make sure that their views are considered
  • Honesty:
    Always be honest about what is going well and bad
45
Q

What are the needs that are affected in SE?

A

1- Social:
- Provide communal facilities
- Allow social interactions

2- Esteem:
- Recognition of achievements
- Appropriate rewards

3- Self-realization:
- People like to learn more
- People like to know they can be counted on

46
Q

What are the personality types when managing people?

A

1- Task oriented:
The motivation for the work is the work itself

2- Self-oriented:
The work is done for a sense of achievement of individual goals

3- Interaction-oriented:
The principal motivation is the presence and actions of co-workers

47
Q

What is a team and what makes a good team?

A
  • A team is a group of people having the same goal
  • A good team is cohesive and has a team spirit
48
Q

What are the advantages of a cohesive group?

A
  • Group quality standards can be developed by the group members
  • Team members can learn from each other and get to know each other’s work
  • Knowledge is shared
  • Refactoring and continual improvement is encouraged
49
Q

On which factors does the effectiveness of a team depend on

A

1- People in the group:
You need a mix of people in a group project

2- Group organization:
Group should be organized

3- Technical and managerial communications:
Good communication between group members is essential

50
Q

What are the key points to assembling a team?

A
  • Create a team with the right balance in terms of technicalities and personalities
  • A manager’s job is to create a cohesive group
51
Q

Why can a team composed of members who share the same motivation be problematic?

A

1- Task-oriented:
everyone wants to do their thing

2- Self-oriented:
Everyone wants to be the boss

3- Interaction-oriented:
Not enough work

52
Q

What are hierarchical groups?

A
  • Consists of a singular group of power at the top with subsequent levels of power beneath them
  • Dominant in large organizations
53
Q

What are informal groups?

A
  • Group acts as a whole and comes to a consensus on decisions
  • Leader serves as the external interface of the group
  • Work is discussed by the group and tasks are allocated according to ability and experience
54
Q

Which factors affect team communication?

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
  • Team composition:
    Communication is better when there are different personality types
  • The physical work environment:
    Good workplace can encourage communication
55
Q

What are team member roles?

A
  • Encourager
  • Compromiser
  • Leader
  • Summarizer
  • Ideas person
  • Evaluator
  • Recorder
56
Q

What are the responsibilities of a team encourager?

A
  • Energizing the group when motivation is low through humor or enthusiasm
  • They don’t like sitting around, they suggest ideas and clarify ideas of others
57
Q

What are the roles of a team compromiser?

A
  • Tries to maintain harmony among team members
  • They introduce people, draw them out, make them feel comfortable
  • They work well with different people
  • They are good judges of people
  • They are tolerant individuals and good listeners
  • They are able to recognize and resolve the differences of opinion and conflicts
58
Q

What is the role of a team leader?

A
  • Directs the work and keeps the group on track
  • They are good at controlling people and events
  • They recognize the skills of each individual and how they can be used
  • They bring competitive drive to the team
59
Q

What is the role of the team summarizer?

A
  • Summarizes the group discussions and highlights conclusions
  • They are calm and reflective individuals
  • They clarify group objectives and elaborate on the ideas of others
  • They are good mediators and seek consensus
60
Q

What is the role of the ideas person?

A
  • Suggests new ideas to solve group problems
  • Suggest new ways for the group to organize the task
  • They dislike orthodoxy and are not too concerned with practicalities
  • They are more concerned with the big picture
  • They may get bored after the initial motivation wears off
61
Q

What is the role of the team evaluator?

A
  • Helps the group to avoid coming to agreement too quickly
  • They tend to be slow in making decisions
  • They are logical, analytical, and objective people
  • They are capable of evaluating competing proposals
62
Q

What is the role of the team recorder?

A
  • Keeps the group focused and organized
  • They make sure everyone is helping with the project
  • They take notes to keep a record of ideas and decisions
  • They also act as time-keepers
  • They can act as spokesperson
  • They act as the memory of the group
63
Q

What makes a team effective?

A
  • It has clear goals that everyone understands and is committed to
  • It has a range of individuals who contribute in different ways
  • Team members should help each other achieve the work
  • There should be a balance between the task and the process
  • The team is comfortable with disagreement
64
Q

What makes a team ineffective?

A
  • There are no clear goals
  • There are arguments
  • Few members dominate the others
  • There is a lack of trust
65
Q

What does project planning involve?

A
  • Breaking down the work into parts
  • Assigning these to project team members
  • Anticipating problems that might arise
  • Preparing tentative solutions to those problems
66
Q

When does project planning take place in the project’s life cycle?

A

1- At the proposal stage when bidding for contract to develop or provide software system

2- During the project startup phase when planning:
- Who will work
- How will the project be broken down into increments
- How resources will be allocated across company

3- Periodically throughout the project when modifying the plan in the light of experience gained and information from monitoring progress

67
Q

What are the factors affecting software pricing?

A

1- Market opportunity:
- Experience gained may help it develop new products
- Accepting a low profit might give new opportunities

2- Cost estimate uncertainty:
- If unsure about cost, the price might increase by a contingency over its normal profit

3- Contractual terms:
A customer might give ownership to the developer and reuse it later

4- Requirements volatility:
- If requirements are likely to change, organization might lower its price

5- Development company in financial crisis:
- Developers in financial difficulty may lower their price to gain contract

68
Q

What is plan driven development

A
  • Approach to software engineering where the development process is planned in detail
  • A project plan is created that records the work to be done, who will do it, and the development schedule and the work products
  • Managers use the plan to support project decision making and a way of measuring progress
69
Q

What are a project’s plan main sections?

A

1- Introduction:
- Briefly describing the project objectives, requirements, and company constraints

2- Project team organization:
- Describe how the development team is organized

3- Requirements specification;
- Starting from organizational and external non-functional requirements
- To more detailed functional and non-functional requirements

4- Risk analysis:
- Describes possible risks and risk mitigation/avoidance strategies

5- Development requirements:
- Hardware and software support required to develop the project

6- Work breakdown:
- Dividing the project into activities in order to define milestones and deliverables

7- Project schedule:
- Dependencies between activities
- Estimated time to reach
- Allocation of people to activities

8- Monitoring and reporting mechanisms
- Defined management reports that have to be produced

70
Q

What are the major points in project monitoring?

A
  • Measuring project activities
  • Monitoring project variables
  • Identify corrective actions to address issues and risks properly
71
Q

What are project plan supplements?

A

1- Quality plan:
- Describes the quality procedures and standards that will be used in a project

2- Validation plan:
- Describes approach, resources, and schedule used for system validation

3- Maintenance plan:
- Describes the maintenance requirements, costs, and effort

4- Staff development plan:
- Describes how the skills and experience of the project team members will be developed

72
Q

What are the main project scheduling activities?

A
  • Split project into tasks
  • Estimate resources required to complete each task
  • Estimate time required to complete each task
  • Optimization:
    Organizing tasks concurrently to make optimal use of workforce.
    Minimize task dependencies to avoid delays caused by one task waiting for another to complete
73
Q

What are the factors that affect relation between duration (days) and effort?

A
  • Number of staff allocated to each task
  • Productivity of each staff member
  • Amount of time allocated by each staff member to task
74
Q

What are some common agile approaches?

A
  • Extreme programming
  • Scrum approach
75
Q

What are the two stages in agile planning for XP and Scrum?

A

1- Release planning:
- Looks ahead for several months and decides on the features that should be included in a release of a system

2- Iteration planning:
- Shorter term outlook, focuses on planning the next increment of a system

3- Story based planning:
- System specification is based on user stories that reflect the features that should be included in the system
- Project team reads and discusses the stories and ranks them in order of the amount of time they think will take to implement story
- Release planning involves selecting and refining the stories that will reflect the features to be implemented in the release of a system and the order in which the stories should be implemented
- Stories to be implemented in each iteration are chosen, with the number of stories reflecting the time to deliver an iteration

76
Q

What is the aim of agile methods

A
  • Reduce overheads in the software process
  • Respond quickly to changing requirements without excessive work
77
Q

What are the main principles of agile software development?

A
  • Incremental delivery:
    Software is developed in increments
  • Customer involvement:
    Closely involved throuhout the development process
  • People not process:
    Reconginizing and exploiting skills of the development team
  • Embrace change:
    Expect system requirements to change
  • Maintain simplicity:
    Work to eliminate complexity from the system
78
Q

Where are agile methodologies used?

A
  • Small or medium sized software product development
  • Custom system development with an organization
  • Small and tightly-integrated teams
79
Q

What are the problems of agile development?

A
  • Customer involvement:
    Difficult to keep the interest of customers invloved
  • Team members may not be suited to the intense involvement in agile methods
  • Prioritizing changes:
    Can be difficult where there are multiple stakeholders
  • Maintaining simplicity:
    Requires extra work
  • Complying with rules and regulations when developing software
  • Contracts:
    Customer pays for time required for system development
80
Q

What are the two key issues in software maintenance in agile methodologies?

A
  • System developed using an agile methodologies are difficult to maintain since documentation is minimal
  • Prioritizing customer change rather than maintenance
81
Q

What is extreme programming?

A
  • Widely used agile method
  • Incremental development through small frequent releases
  • Maintaining simplicity through constant refactoring of code
  • All tests myst be run for every build
  • Full time customer engagement with the team
  • Development through pair programming
82
Q

Explain how does in incremental planning happen in XP

A
  • Customer is a part of the development team
  • User requirements are expressed as scenarios or user stories
  • Development team breaks them down into implementation tasks
  • Customer chooses the stories for inclusion in the next release
83
Q

How does code refactoring occur?

A
  • Programming team looks for possible software improvements
  • Changes become easier
84
Q

What are XP testing features?

A
  • Test first development before code
  • Incremental test development from scenarios
  • User involvement in test development and validation
  • Automated test tools
85
Q

Explain the difference between agile and plan driven development

A

Agile:
- Interleaved activities
- Outputs are not mandatory

Plan driven:
- Identifies separate activities in the software development process
- Outputs associated to each stage
- Outputs of one activity are required to launch the following activity

86
Q

What is scaling up and scaling out?

A
  • Scaling up:
    Concerned with using agile methods for developing large software systems that can’t be developed by small teams
  • Scaling out:
    Concerned with how agile methods can be introduced across a large organization with years of experience
87
Q

What does scaling up to large systems include?

A
  • It is not possible to focus only on code, we focus on system documentation and up-front design
  • Cross team communication mechanisms should be designed and used
  • Continuous integration
88
Q

What does scaling out to large companies include?

A
  • Project managers who lack experience of agile may be reluctant
  • There may be cultural resistance
  • Large organizations have quality procedure and standards that are not compatible with agile
  • Agile works best when we have high skill levels
89
Q

What is a scrum approach?

A

hybrid agile method focusing on managing iterative
development

90
Q

What are the 3 main phases of scrum?

A
  • Outline planning phase
  • Sprint cycles phase
  • Project closure
91
Q

What is the role of the scrum master?

A
  • Facilitate team work
  • Arrange daily meetings
  • Track project plan for work to be done
  • Records decisions
  • Communicates with other teams outside of management
92
Q

What are the three types of meetings that can be organized?

A
  • Sprint planning meeting:
    Organized at the beginning of a sprint cycle usually every 2 weeks
    Prepare the sprint backlog
  • Sprint daily meetings
    Developers come prepared with updates
    Meeting happens at same location and same time
  • Sprint end meetings
    Sprint review meeting
    Sprint retrospective
93
Q

What are the main differences between scrum and xp?

A
  • Scrum doesn’t prescribe engineering practices while XP does
  • Scrum teams typically work in iterations that are 2-4 weeks
  • Scrum does not allow changes in sprint
  • XP works in strict priority order
  • Customer interacts with team during final stages of scrum iteration planning phase to jelp select features
94
Q

What are the benefits of scrum?

A
  • Inherits benefits of agile
  • Product is broken down to manageable and understandable chunks
  • Whole team has a visibility of everything
  • Allows teams to self-organize internally/externally
95
Q
A