Scrum Developer Flashcards
Which practice (based on scrum) focuses on high quality of the code?
- Functional testing
- Scrum architecture rules and regulations
- Extreme programming
- Scrum methodology
- 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
What is the order followed in test driven development?
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.
What is continuous delivery?
Sun of keeping the system production ready during development to enable release to end user on demand
What is code coverage?
Measurement indicating the amount of code that is exercised by tests
What is acceptance test driven development?
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.
What are the benefits of code refactoring?
- Maintainability (easier to fix bugs because source code is easy to read and intent of author is easy to grasp)
- extensibility (easier to extend capabilities of an application if it uses recognisable design patterns and provides some flexibility where none before may have existed
Who is responsible for product architecture?
Developers in the scrum team
What is DRY and what are the benefits?
Don’t repeat yourself
Saves dev time and effort, makes code easy to maintain and reduces chances of bugs
What is behaviour driven development?
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
Extreme programming does allow sprint iteration to be more than?
1-2 weeks max
What is pair programming?
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
A unit test can dependent on other unit tests. T or F?
F, each should be independent
What is test-first development?
Evolutionary approach to programming where devs first write a test that fails before they write new functional code
What is regression testing?
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.
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?
T, focus should be on tests that find bugs.
What are the five extreme programming values?
Communication, simplicity, feedback, courage, respect
What are the benefits of test first development?
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
Can regression tests be automated?
Yes
What is code refactoring?
Popularised by extreme programming where code is adjusted within the code base without impacting the external functional behaviour of that code
What is build automaton?
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
What is DRY principle?
Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.
Does extreme programming require a customer on site and continuously tardy with the team.
Yes, In sprint reviews, a product that is already in prod is reviewed.
What does whole team mean?
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.
What is cyclomatic complexity?
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.
Functional testing can be implemented by a team of testers independent of developers. T or F
T, this I the traditional approach. Can be automated.
What is a ten minute build?
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.
What is code refactoring
The process of clarifying and simplifying the design of existing code, without changing its behaviour.
What is a unit test?
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.
What does code coverage mean?
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.
What is test driven development?
Developer driven approach between developer and tester to create well written unit of code.
What is integration testing?
Testing where program units are combined and tested as groups in multiple ways. Can be automated
TDD and ADD ensure there are no defects in code. T or F
F, they reduce but do not get rid of completely.
What is the acronym for design principle intended to make software design more understandable, flexible and maintainable?
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
What do you need for bug report?
Problem descriprion, steps to reproduce, expected outcome. A royal outcome
What’s build automation?
Process of automating the creation of a software build. Advantages:
- A necessary pre-condition for continuous integration and testing
- Helps find defect and configuration issues
- Improve product quality
- Accelerate the compile and link processing > more feedback
- Eliminate redundant tasks
- Minimise bad builds
- Eliminate dependencies on key personnel
- History of builds and releases to investigate issues
What is behaviour driven development?
Focused on behavioural aspect of system for customer but still practices writing test before code
What are wet solutions?
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.
What is smoke testing?
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.
What is a good bug report?
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
How often should used stories be documented?
Scrum doesn’t mandate their use, unless mentioned in dod they don’t need to be created or reported.
What does limes of code indicate,
Total number of executable lines of code in a methods an approximate number based on the intermediate language code.
What is continuous delivery? What is continuous deployment?
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
When should devs participate in product refinement?
As soon as possible,
What is exploratory testing?
All about discovery, investigation and learning. Emphasises personal freedom and individual tester responsibility. Testers check system on the fly. Can’t be automated.
What is depth of inheritance?
Number of different classes that inherit from one another all the way to the base class.
Which testing is also known as behavioural testing?
Black box testing, in which internal structure or implementation of the item being tested is not known to the tester. Functional or non functional.
Automated build should ideally trigger as som as new code is checked in. T or f?
T or old code is changed
What is class decoupling?
A measure of the dependencies a class has on other classes
Which of the following statements are true about automated software builds?
- Automated software build development allows frequent validation of the unit of software being worked on, ensuring it remains in a potentially shippable state
- Automated software build development supports continuous integration
- Allows itself to be clearly defined and scripted, making it easy, consistent and repeatable
- The person who broke the build will fix it
- Should trigger as soon as new code is checked in or old code is changed.
All
What is code that is expressed well formatted correctly and organised for later coders called?
Clean code
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.
F. There is more potential.
Which testing is a software testing method in which the internal structure/design/implementation of the item is known to tester.
White box testing
Depth of inheritance is similar to class decoupling however a case class can affect any of its inherited classes. T or f?
T
What does cohesion measure,
The degree to which the responsibilities of a single module (or a conponent( form a meaningful unit
Test-driven development is a predictable, incremental and emergent software approch with realises on automated test. T or f?
T
Should you sun for continuous integration to trunk when working on a single product?
Yes
What is the approach to work on a feature until it’s complete, the merge into the trunk/master branch called?
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.
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?
T
Which of the following features should clean code have?
- Descriptive function names
- Small functions
- Few comments
- Few arguments
- Single responsibility principle
- Necessary code only
- Less commas
1,2,3,4,5,6
What does application lifecycle management include?
Planning and change management Requirements definition and management Architecture management Software configuration management Build and deployment automaton Quality management
A team is gathering requirements by using realistic examples from past experience instead of functional behaviour requirements, the team is acknowledging what?
Specification by example
What are the benefits of test first development?
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.
The practice of leaving code base in a little better state than it was found before modifications is called?
Scour Rule, mean to progress towards clean code.
A measure of how closely connected two routines or modules are is called?
Coupling - the degree of interdependence between software modules, the strength of relationships between modules,
Branching strategy that focuses on each issue and implements it’s as it’s own branch is called what?
Task branching or issue branching
Burn down chart displays what attributes on their axes?
X axis = calendar time; y axis = sun of tasks remaining
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?
T
Continuous delivery means every change is deployed to production ASAP. T or f?
F - it means every change is proven to be deplorable at any time
When would the scrum team typically add deployed to production or ready to release to the DOD of a product backlog item?
When the team supports contributors integration and continuous delivery
What’s cohesion and give 2 examples?
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
Continuous deployment means automatically selling every change into prod. T or f?
T
Which of the follloeing statements about regression testing are true?
- Regression testing is testing existing software applications to make sure that a code change or addition hasn’t broken any existing functionality
- Once regression testing is run successfully originally scripted tests are discarded and not run again
- It’s purpose is to catch bugs that may have been accidentally introduced into a new build or release candidate
- It’s purpose is to ensure that previously eradicated bugs stay dead
- Reg test suites tend to decrease with each found defect
1,3,4
What’s the benefit of naming standards?
Makes code more readable
What is integration testing?
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.
Should automated build be followed by a set of selective unit test?
Yes
Examples of cross-cutting concerns in application architecture are? Choose all that apply
- Performance and scalability
- Layering/partitioning quality and validation
- Reusability, reliability, serviceability and pperformance, concurrency, security
All + maintenance, error handling, logging, caching and transaction management
Static analysis is a method of computer program debugging that is done by examining the code by executing the program. T or f?
F, it’s debugging done by examining the code without executing the program
Behaviour driven development is a variation of tdd, where main focus is on what?
Behavioural specifications of the product if application (or it’s features) and user abs system interactions
A dynamic analysis test will only find defects in the part of the code that is actually executed.
T sometimes referred to glass box testing when combined with static analysis
Refactoring doesn’t include what?
- Rewriting the entire code
- Fixing bugs
- Improving observable aspects of software such as it’s interface
- All of the above
What are benefits of layered architecture?
Simplicity, maintainability, reusing of functions is easier, consistency across projects, guaranteed separation of comcerns, browsabilify from technical perspective
Agile modelling or modelling increases what in a scrum team?
Understanding, comms and documentation