Scrum Developer Flashcards

1
Q

Which practice (based on scrum) focuses on high quality of the code?

  1. Functional testing
  2. Scrum architecture rules and regulations
  3. Extreme programming
  4. Scrum methodology
A
  1. Extreme programming takes the engineering practices to an extreme in order to create and release high quality code. XP is highly complementary to scrum framework
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is the order followed in test driven development?

A

3 tightly interwoven activities: testing (writing unit tests), coding abs design (in the form of refactoring)

So write a single unit test describing an aspect of program. Run the test which should fail because program lacks the feature. Write just enough code, the simplest possible, to make test pass. Refactor code until it aligns to the simplicity criteria. Repeat, accumulating unit tests over time.

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

What is continuous delivery?

A

Sun of keeping the system production ready during development to enable release to end user on demand

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

What is code coverage?

A

Measurement indicating the amount of code that is exercised by tests

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

What is acceptance test driven development?

A

Test-first software development practice where acceptance criteria for new functionality are created before implementation begins. Test case creation is moved to the beginning of cycle.

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

What are the benefits of code refactoring?

A
  1. Maintainability (easier to fix bugs because source code is easy to read and intent of author is easy to grasp)
  2. extensibility (easier to extend capabilities of an application if it uses recognisable design patterns and provides some flexibility where none before may have existed
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Who is responsible for product architecture?

A

Developers in the scrum team

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

What is DRY and what are the benefits?

A

Don’t repeat yourself

Saves dev time and effort, makes code easy to maintain and reduces chances of bugs

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

What is behaviour driven development?

A

Extension of test driven development where main focus is on behaviour specifications of the product or application and user and system interactions. It uses ubiquitous language that can be understood by devs and stakeholders

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

Extreme programming does allow sprint iteration to be more than?

A

1-2 weeks max

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

What is pair programming?

A

Two devs working together at one station. Driver writes code and observer or navigator reviews each line as it’s typed in. Part of extreme programming. Can be programmer and tester

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

A unit test can dependent on other unit tests. T or F?

A

F, each should be independent

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

What is test-first development?

A

Evolutionary approach to programming where devs first write a test that fails before they write new functional code

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

What is regression testing?

A

Whenever devs change or modify their software, even a small tweak can have unexpected consequences. Regression testing is testing existing software applications to make sure that a change or addition hasn’t broken any existing functionality.

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

One of the drawbacks to code coverage is that one has to make sure that the devs don’t simply write useless test cases in order to increase code coverage. T it F?

A

T, focus should be on tests that find bugs.

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

What are the five extreme programming values?

A

Communication, simplicity, feedback, courage, respect

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

What are the benefits of test first development?

A

Promoters good design and separation of concerns. Improves quality and reduces bugs. It causes you to construct a test harness that can be automated. Speeds the overall development process

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

Can regression tests be automated?

A

Yes

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

What is code refactoring?

A

Popularised by extreme programming where code is adjusted within the code base without impacting the external functional behaviour of that code

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

What is build automaton?

A

The process of automating the creation of software build. Also includes the associated processes such as compiling computer source code into binary code, packaging binary code and running automated tests. Supports continuous integration

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

What is DRY principle?

A

Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

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

Does extreme programming require a customer on site and continuously tardy with the team.

A

Yes, In sprint reviews, a product that is already in prod is reviewed.

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

What does whole team mean?

A

All skills required to turn selected stories into valuable software must be on the team. Anyone who is qualified to perform a role can undertake it, no roles are reserved for people who specialise in a particular area.

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

What is cyclomatic complexity?

A

Software metros used to indicate the complexity of a program. Quantitative measure of the number of Liberty independent paths through a program’s source code. Represents the number of if statements, branching structures, nesting levels and switch cases in code. . Low value is good and high is bad. High are hard to test.

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

Functional testing can be implemented by a team of testers independent of developers. T or F

A

T, this I the traditional approach. Can be automated.

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

What is a ten minute build?

A

Extreme programming practice, requires code to be integrated continuously and the build to run for under ten minutes. Valuable to scrum read and non-negotiable time for extreme programming. Faster build means faster feedback.

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

What is code refactoring

A

The process of clarifying and simplifying the design of existing code, without changing its behaviour.

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

What is a unit test?

A

A way of testing a unit (the smallest piece of code) that can logically be isolated in a system. Most often a function, subroutine or a method or property. Can be automated.

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

What does code coverage mean?

A

Measurement indicating the amount of product code that is exercised by tests. Describes degree to which the source code of the program has been tested. Ratio between tested and untested code.

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

What is test driven development?

A

Developer driven approach between developer and tester to create well written unit of code.

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

What is integration testing?

A

Testing where program units are combined and tested as groups in multiple ways. Can be automated

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

TDD and ADD ensure there are no defects in code. T or F

A

F, they reduce but do not get rid of completely.

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

What is the acronym for design principle intended to make software design more understandable, flexible and maintainable?

A

SOLID.
S= single responsibility principle
O= open-closed principle, affirms that an entity allows its behaviour to be extended but never by mostfying it’s source code.
L= liskov substitution principle - subjects should be repleacable by instances of their subtypes without affecting functioning from clients perspective
I = interface segregation - if interface is becoming too big need to splurge
D= dependency inversion - reducing dependencies amongst code modules

34
Q

What do you need for bug report?

A

Problem descriprion, steps to reproduce, expected outcome. A royal outcome

35
Q

What’s build automation?

A

Process of automating the creation of a software build. Advantages:

  1. A necessary pre-condition for continuous integration and testing
  2. Helps find defect and configuration issues
  3. Improve product quality
  4. Accelerate the compile and link processing > more feedback
  5. Eliminate redundant tasks
  6. Minimise bad builds
  7. Eliminate dependencies on key personnel
  8. History of builds and releases to investigate issues
36
Q

What is behaviour driven development?

A

Focused on behavioural aspect of system for customer but still practices writing test before code

37
Q

What are wet solutions?

A

Violations of dry, write everything twice, we enjoy typing it waste everyone’s time. Difficult to manage such code and if logic changes then devs have to make changes in all the places where they have written the code, wasting everyone’s time.

38
Q

What is smoke testing?

A

Build verification testing. Aims to ensure that most important functions work and then used to make a decision that build is stable enough to proceed with further testing.

39
Q

What is a good bug report?

A

Should explain how exactly the product is broken. Contains one bug per report, info needed to reproduce and fix problem. Contains clear title and proper grammar. Comms for both reporter and receiver. Contains expected vs actual results. Contains version of the plug-in/platform. Contains screenshots of the problem and logs. Shouldn’t assign blame

40
Q

How often should used stories be documented?

A

Scrum doesn’t mandate their use, unless mentioned in dod they don’t need to be created or reported.

41
Q

What does limes of code indicate,

A

Total number of executable lines of code in a methods an approximate number based on the intermediate language code.

42
Q

What is continuous delivery? What is continuous deployment?

A

Deployment: release process is fully automated no human intervention

Delivery: similar by human action is required to promote changes into a subsequent environment along the pipeline

43
Q

When should devs participate in product refinement?

A

As soon as possible,

44
Q

What is exploratory testing?

A

All about discovery, investigation and learning. Emphasises personal freedom and individual tester responsibility. Testers check system on the fly. Can’t be automated.

45
Q

What is depth of inheritance?

A

Number of different classes that inherit from one another all the way to the base class.

46
Q

Which testing is also known as behavioural testing?

A

Black box testing, in which internal structure or implementation of the item being tested is not known to the tester. Functional or non functional.

47
Q

Automated build should ideally trigger as som as new code is checked in. T or f?

A

T or old code is changed

48
Q

What is class decoupling?

A

A measure of the dependencies a class has on other classes

49
Q

Which of the following statements are true about automated software builds?

  1. Automated software build development allows frequent validation of the unit of software being worked on, ensuring it remains in a potentially shippable state
  2. Automated software build development supports continuous integration
  3. Allows itself to be clearly defined and scripted, making it easy, consistent and repeatable
  4. The person who broke the build will fix it
  5. Should trigger as soon as new code is checked in or old code is changed.
A

All

50
Q

What is code that is expressed well formatted correctly and organised for later coders called?

A

Clean code

51
Q

The deeper the depth of inheritance, the less potential there is for causing breaking changes in the code when Modifyibg a base class? T or f.

A

F. There is more potential.

52
Q

Which testing is a software testing method in which the internal structure/design/implementation of the item is known to tester.

A

White box testing

53
Q

Depth of inheritance is similar to class decoupling however a case class can affect any of its inherited classes. T or f?

A

T

54
Q

What does cohesion measure,

A

The degree to which the responsibilities of a single module (or a conponent( form a meaningful unit

55
Q

Test-driven development is a predictable, incremental and emergent software approch with realises on automated test. T or f?

A

T

56
Q

Should you sun for continuous integration to trunk when working on a single product?

A

Yes

57
Q

What is the approach to work on a feature until it’s complete, the merge into the trunk/master branch called?

A

Feature branch, often coupled with feature flags ‘toggle’ that enable it disable a feature within the product. Makes it easy to deploy code into master and control when feature is activated, making it easy to initially deploy the code well before feature is exposed to end-users.

58
Q

While counting the lines in lines of code -code matrix it is recommended that the braces, white space and member declarations are excluded. T or f?

A

T

59
Q

Which of the following features should clean code have?

  1. Descriptive function names
  2. Small functions
  3. Few comments
  4. Few arguments
  5. Single responsibility principle
  6. Necessary code only
  7. Less commas
A

1,2,3,4,5,6

60
Q

What does application lifecycle management include?

A
Planning and change management
Requirements definition and management
Architecture management
Software configuration management
Build and deployment automaton
Quality management
61
Q

A team is gathering requirements by using realistic examples from past experience instead of functional behaviour requirements, the team is acknowledging what?

A

Specification by example

62
Q

What are the benefits of test first development?

A

Promote good design and separation of concerns, improves quality and reduces bugs, causes you to construct test harness that can be automated, speeds overall development process, reduces re-work developers would have to do and gives them the courage to refactor.

63
Q

The practice of leaving code base in a little better state than it was found before modifications is called?

A

Scour Rule, mean to progress towards clean code.

64
Q

A measure of how closely connected two routines or modules are is called?

A

Coupling - the degree of interdependence between software modules, the strength of relationships between modules,

65
Q

Branching strategy that focuses on each issue and implements it’s as it’s own branch is called what?

A

Task branching or issue branching

66
Q

Burn down chart displays what attributes on their axes?

A

X axis = calendar time; y axis = sun of tasks remaining

67
Q

When code coupling is high the team can assume that software modules are interdependent, or: or they cannot function without the other. T or f?

A

T

68
Q

Continuous delivery means every change is deployed to production ASAP. T or f?

A

F - it means every change is proven to be deplorable at any time

69
Q

When would the scrum team typically add deployed to production or ready to release to the DOD of a product backlog item?

A

When the team supports contributors integration and continuous delivery

70
Q

What’s cohesion and give 2 examples?

A

Measure if the degree to which the responsibilities of a single module or a component form a meaningful unit. Logical cohesion - type of cohesion in which multiple logically related functions or data elements are placed in the same component. Procedural cohesion - type if cohesion in which the functions in a component are grouped in a way to enable them to be executed sequentially and make them procedurally cohesive

71
Q

Continuous deployment means automatically selling every change into prod. T or f?

A

T

72
Q

Which of the follloeing statements about regression testing are true?

  1. Regression testing is testing existing software applications to make sure that a code change or addition hasn’t broken any existing functionality
  2. Once regression testing is run successfully originally scripted tests are discarded and not run again
  3. It’s purpose is to catch bugs that may have been accidentally introduced into a new build or release candidate
  4. It’s purpose is to ensure that previously eradicated bugs stay dead
  5. Reg test suites tend to decrease with each found defect
A

1,3,4

73
Q

What’s the benefit of naming standards?

A

Makes code more readable

74
Q

What is integration testing?

A

Test of multiple units of functionality. Performed on the modules that are United tested first and then defines whether the combo of modules gives the desired output.

75
Q

Should automated build be followed by a set of selective unit test?

A

Yes

76
Q

Examples of cross-cutting concerns in application architecture are? Choose all that apply

  1. Performance and scalability
  2. Layering/partitioning quality and validation
  3. Reusability, reliability, serviceability and pperformance, concurrency, security
A

All + maintenance, error handling, logging, caching and transaction management

77
Q

Static analysis is a method of computer program debugging that is done by examining the code by executing the program. T or f?

A

F, it’s debugging done by examining the code without executing the program

78
Q

Behaviour driven development is a variation of tdd, where main focus is on what?

A

Behavioural specifications of the product if application (or it’s features) and user abs system interactions

79
Q

A dynamic analysis test will only find defects in the part of the code that is actually executed.

A

T sometimes referred to glass box testing when combined with static analysis

80
Q

Refactoring doesn’t include what?

A
  1. Rewriting the entire code
  2. Fixing bugs
  3. Improving observable aspects of software such as it’s interface
  4. All of the above
81
Q

What are benefits of layered architecture?

A

Simplicity, maintainability, reusing of functions is easier, consistency across projects, guaranteed separation of comcerns, browsabilify from technical perspective

82
Q

Agile modelling or modelling increases what in a scrum team?

A

Understanding, comms and documentation