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.