Which of the following is an activity performed during requirements definition in system development?
Deciding the internal module structure and processing procedures of the programs
Fixing failures that occur after the system goes live and improving its functions
Studying the users' business operations and clarifying the functions and performance the system must provide
Checking each completed program one by one to confirm it works as specified in the design documents
AnswerC. Studying the users' business operations and clarifying the functions and performance the system must provide
Requirements definition is the first phase of development: it organizes the users' requests and clarifies the functions and performance the system must provide. The second option is internal design, the third is unit testing, and the fourth is maintenance, all of which come after requirements definition.
Q2 | External design
Which of the following is the most appropriate item to be decided in external design, also called basic design?
Procedures for preparing the test data used in integration testing
Standardized naming of variables and functions in line with coding conventions
The internal processing procedures and algorithms of each module
The layouts of the screens users operate and of the reports to be printed
AnswerD. The layouts of the screens users operate and of the reports to be printed
External design is the phase that decides the parts visible to users, such as screens, report forms, and data exchange, so the fourth option is correct. The first option belongs to internal design, the second to programming, and the third to the testing phase; none of them is decided in external design.
Q3 | Design phases
Which of the following appropriately explains the relationship between external design and internal design?
The user-visible specifications decided in external design are translated into program structures in internal design
External design is performed after internal design is finished, based on its results
Both external design and internal design are phases that decide screen and report layouts to be agreed on with users
External design is led mainly by programmers, and internal design mainly by users
AnswerA. The user-visible specifications decided in external design are translated into program structures in internal design
Development proceeds from external design to internal design, turning the externally visible specifications into concrete module structures and processing procedures. The first option reverses the order, the second is wrong because internal design is not a phase for deciding user-facing specifications, and the fourth reverses the responsible parties.
Q4 | Phase order
Which of the following is the appropriate order in which the phases of system development are carried out?
Requirements definition, then testing, then system design, then programming
System design, then requirements definition, then testing, then programming
Requirements definition, then programming, then system design, then testing
Requirements definition, then system design, then programming, then testing
AnswerD. Requirements definition, then system design, then programming, then testing
Development proceeds by deciding what to build in requirements definition, deciding how to realize it in system design, building it in programming, and verifying it in testing. In each of the other three options, design or testing is placed earlier than it should be, producing impossible sequences such as inspecting something before it is built.
Q5 | Module division
What is the main aim of designing a program by dividing it into multiple modules?
To increase the independence of each component, making modification, testing, and reuse easier
To reduce the number of servers used in the production environment and lower costs
To reduce the number of items users must enter and make operation easier
To guarantee a reduction in the total number of lines of source code in the program
AnswerA. To increase the independence of each component, making modification, testing, and reuse easier
Module division turns each function into a component with high independence, narrowing the impact of changes and making testing and reuse easier. Splitting a program does not necessarily reduce the total line count, so the first option is wrong; the second concerns screen design and the fourth concerns infrastructure configuration, so their aims are different.
Q6 | Usability
Which of the following is the most appropriate example of screen design that improves usability?
Notifying users of input errors on the spot and showing specifically what is wrong and how to fix it
Using many technical terms so that only knowledgeable users can operate the screen
Showing no operating instructions on screen and explaining them only in a separate manual
Cramming every input item into a single screen and displaying no headings or supplementary explanations at all
AnswerA. Notifying users of input errors on the spot and showing specifically what is wrong and how to fix it
Usability means the ease with which users can achieve their goals efficiently without getting lost, and telling users about errors clearly and immediately improves it. The first, third, and fourth options all increase the burden of understanding and operation on users, lowering ease of use.
Q7 | Acceptance
Which of the following appropriately describes software acceptance?
Improving the software after it goes live, in response to business changes and user requests
Developers testing the programs they wrote, module by module or program by program
The ordering party confirming the delivered software through operational testing and the like, and accepting it if it satisfies the requirements
Developers building the internal structure and processing procedures of programs according to the design documents
AnswerC. The ordering party confirming the delivered software through operational testing and the like, and accepting it if it satisfies the requirements
Software acceptance is the phase in which the ordering party confirms through operational testing and similar checks that the deliverables satisfy the requirements before receiving them; it is also called acceptance inspection. The first option is unit testing, the third is programming, and the fourth is maintenance, all different phases from acceptance.
Q8 | Unit testing
Which of the following appropriately describes unit testing?
Having users operate the system following their actual business procedures to verify that it meets the requirements
Verifying, for each module or individual program, that its internal processing works correctly
Verifying the whole system, including performance and load tolerance, in an environment close to production
Combining multiple modules and verifying that data is passed correctly between them
AnswerB. Verifying, for each module or individual program, that its internal processing works correctly
Unit testing is the first stage of testing, performed module by module. The second option describes integration testing, the third system testing, and the fourth operational testing, which serves as acceptance testing; all of these are carried out at later stages than unit testing.
Q9 | Integration test
What is mainly verified in integration testing?
Whether data exchange and coordination between the combined modules are correct
Whether users can work through their actual business flow without problems
Whether every instruction and branch inside a single module has been executed
Whether development costs remain within the original budget
AnswerA. Whether data exchange and coordination between the combined modules are correct
Integration testing connects modules that have passed unit testing and verifies that the interfaces, that is, the data exchange between them, are correct. The second option is white-box testing done during unit testing, the third is the purpose of operational testing, and the fourth is about project cost management, not testing.
Q10 | System testing
Which of the following is the most appropriate description of what is done in system testing, also called overall testing?
Verifying the entire system in an environment close to production, checking performance and load tolerance in addition to functions
Cleaning up indentation and formatting irregularities in the source code with an automatic formatter
Adding features requested by users after delivery as new functions
Members reading through the modules under development together on paper, one by one, to find description errors
AnswerA. Verifying the entire system in an environment close to production, checking performance and load tolerance in addition to functions
System testing is the final stage of testing performed by the development side, confirming that the whole system works as required in terms of functions, performance, load, and so on. The first option is review or unit-test work, the second is coding work, and the fourth is adding functions during maintenance; none of them applies.
Q11 | Operational test
Which of the following appropriately describes operational testing, also called acceptance testing?
Developers reading through the programs on paper and pointing out errors
Developers focusing on the internal structure of the programs and checking instructions and branches exhaustively
Developers verifying the coordination between integrated modules
Users operating the system along their actual business flow to verify that it meets the requirements
AnswerD. Users operating the system along their actual business flow to verify that it meets the requirements
Operational testing is the final test led by the users, that is, the ordering party, to confirm that the system can be used in actual business procedures. The first option is white-box testing, the second is integration testing, and the third is code review; all are activities performed by the developers, so both the actor and the purpose differ.
Q12 | V-model
In the V-model, which testing phase corresponds to external design, also called basic design?
Unit testing
Integration testing
System testing
Operational testing
AnswerC. System testing
In the V-model, requirements definition pairs with operational testing, external design with system testing, internal design with integration testing, and programming with unit testing. Therefore the phase corresponding to external design is system testing; unit testing corresponds to programming, integration testing to internal design, and operational testing to requirements definition.
Q13 | White-box
Which of the following appropriately describes white-box testing?
Feeding the same volume of data as production and measuring whether processing time stays within the standard
Testing that ignores the internal structure of the program and focuses only on the relationship between inputs and outputs shown in the specifications
Testing that focuses on the internal structure of the program and covers execution paths so that instructions and branches are exercised
Having users operate a prototype and incorporating their feedback into the requirements
AnswerC. Testing that focuses on the internal structure of the program and covers execution paths so that instructions and branches are exercised
White-box testing looks at the inside of the program, its control structure, and designs test cases to cover instructions and branches; it is mainly used in unit testing. The first option describes black-box testing, the third prototyping, and the fourth performance testing.
Q14 | Black-box
Which of the following is an appropriate way to create test cases in black-box testing?
Mechanically assigning a number of test cases proportional to the number of lines of source code
Choosing execution paths so that every branch is executed at least once
Checking line by line whether the comments written by the developers are correct
Dividing the input conditions in the specifications into meaningful groups and choosing representative values and boundary values from them
AnswerD. Dividing the input conditions in the specifications into meaningful groups and choosing representative values and boundary values from them
Black-box testing is based on the specifications without looking at the internal structure, choosing representative and boundary values of inputs through equivalence partitioning and boundary value analysis. The first option is white-box testing, which focuses on internal structure; in the second, line count is no basis for test cases; and the fourth is code review work.
Q15 | Regression test
What is the purpose of performing regression testing?
To confirm that modifying the program has not introduced defects into parts that worked correctly before the modification
To confirm that trained users have correctly learned the new operating procedures after the change
To confirm that the system has enough processing performance to withstand production use
To check only the newly added part, verifying solely whether the added function works as specified
AnswerA. To confirm that modifying the program has not introduced defects into parts that worked correctly before the modification
Regression testing verifies that existing functions that used to work correctly have not been broken by modifications or added features. The first option is testing of the added function itself, the second is performance testing, and the third is verification of education and training; none of these is the purpose of regression testing.
Q16 | Review techniques
Among software review techniques, which of the following appropriately describes an inspection?
A formal review hosted by a moderator, with participants' roles and procedures defined in advance, to detect defects in the deliverables
Actually running the program to verify that outputs for given inputs match the specifications
Two people sharing one terminal and taking turns writing the program
A session led by the author, who walks the participants through the deliverable in order while they informally point out errors and questions on the spot
AnswerA. A formal review hosted by a moderator, with participants' roles and procedures defined in advance, to detect defects in the deliverables
An inspection is a formal review led by a moderator, with defined roles and procedures and with records kept. The second option is a walkthrough, which is informal; the third is testing by actually running the program; and the fourth is pair programming from XP; none of these is an inspection.
Q17 | Waterfall model
Which of the following is an appropriate characteristic of the waterfall model?
Building prototypes and firming up the requirements while receiving user evaluations
Proceeding through the phases in order and, as a rule, developing without going back to earlier phases
Repeating short iterations and delivering working software in each iteration
Development and operations staff working as one and releasing frequently through automation
AnswerB. Proceeding through the phases in order and, as a rule, developing without going back to earlier phases
The waterfall model proceeds through the phases in order from upstream to downstream, approving the deliverables of each phase on the premise of not returning to earlier phases. The first option describes agile development, the third the prototyping model, and the fourth DevOps; each is a different approach.
Q18 | Prototyping
What is the main advantage of adopting the prototyping model?
The prototype substitutes for design documents, so no documentation work is needed at all
Having users check a prototype at an early stage reduces rework caused by requirement gaps and misunderstandings
Because users have checked the prototype, it can be guaranteed that no specification changes will occur after the system goes live
Building a prototype always reduces total development effort and cuts costs in half
AnswerB. Having users check a prototype at an early stage reduces rework caused by requirement gaps and misunderstandings
Prototyping is a technique that prevents major rework caused by misread requirements by having users evaluate a prototype early. Design documents are still needed even with a prototype, so the first option is wrong; there is no guarantee that effort is always halved or that changes never occur, so the second and fourth options are also wrong.
Q19 | Spiral model
Which of the following appropriately describes the spiral model?
Completing all functions in a single pass from upstream to downstream, with no going back to earlier phases and no mid-course reviews at all
Skipping the requirements definition phase, building something that works first, and documenting the specifications afterwards
Outsourcing all development phases and managing progress only through monthly reports
Dividing the system into parts and raising its completeness in a spiral by repeating a cycle of design, development, and evaluation
AnswerD. Dividing the system into parts and raising its completeness in a spiral by repeating a cycle of design, development, and evaluation
The spiral model divides the system into parts and repeats a cycle from design through evaluation, reducing risk while raising completeness. The first option is the waterfall way of thinking, and the second and third have nothing to do with the definition of the spiral model.
Q20 | Agile
Which of the following is the most appropriate description of the agile development approach?
Users being involved only at requirements definition and acceptance, with no involvement during development
Fixing all specifications at the start and, as a rule, allowing no subsequent changes
Building working software in short iterations and responding to change while incorporating user feedback
Prioritizing perfectly polished detailed design documents over quickly showing working software
AnswerC. Building working software in short iterations and responding to change while incorporating user feedback
Agile development repeats short iterations, valuing working software and responsiveness to change while collaborating with users. The second, third, and fourth options are all characteristics of the waterfall style of development and are the opposite of the agile approach.
Q21 | Model selection
Requirements are not yet settled, and the plan is to add features in short cycles while watching users' reactions. Which of the following is the most appropriate development policy for this system?
Run all tests together at the end, and do no verification of behavior until then
Do not start development until the requirements document is approved, and accept no changes at all after approval
Release working features in each short iteration and reflect user evaluations in the next iteration
Fix the specifications of all functions, develop everything at once, and show it to users only upon completion
AnswerC. Release working features in each short iteration and reflect user evaluations in the next iteration
For projects whose requirements change easily, an agile style that delivers something working each iteration and feeds evaluations back is suitable. The first and third options are waterfall-style and weak against change, and the fourth delays defect discovery and enlarges rework, so none suits this situation.
Q22 | RAD
Which of the following appropriately describes RAD, Rapid Application Development?
An approach in which development and operations staff cooperate closely and pursue continuous improvement through automation
A technique for developing a system in a short period using a small team and development support tools
A technique for creating a new service by combining multiple publicly available services
A technique for analyzing existing programs to derive their specifications and design information
AnswerB. A technique for developing a system in a short period using a small team and development support tools
RAD is a technique that shortens the development period by using a small team and development support tools. The first option describes reverse engineering, the second DevOps, and the fourth a mashup; each is a different term from RAD.
Q23 | Pair programming
Which of the following appropriately describes pair programming?
Two teams developing the same feature separately and adopting the better result after completion
Two people sharing one terminal, one writing code while the other reviews and advises during development
Having two users operate the same screen and comparing ease of use
Running two kinds of tests at the same time to find defects sooner
AnswerB. Two people sharing one terminal, one writing code while the other reviews and advises during development
Pair programming is a representative XP practice in which two people write one body of code, raising quality through on-the-spot review. The first option is a competitive way of developing, the second is a way of running tests, and the third is usability evaluation; none of them applies.
Q24 | TDD
Which of the following is the appropriate way to proceed in test-driven development, TDD?
Write the test code first, then implement the program so that the tests pass
Plan the tests for the first time only after all implementation is complete
Leave testing entirely to external specialists, with developers doing no testing
Create tests for the first time only after users report failures following the production launch
AnswerA. Write the test code first, then implement the program so that the tests pass
Test-driven development writes tests first, implements the minimum needed to pass them, and repeats improvement. In the second, third, and fourth options, testing comes after implementation or launch, which contradicts the TDD idea that tests guide development.
Q25 | Refactoring
Which of the following appropriately describes refactoring?
Reorganizing the internal structure of a program to make it clearer without changing its externally visible behavior
Relocating a system in operation to another data center
Adding new features to an existing program in response to user requests
Increasing the number of servers or the amount of memory to raise processing speed
AnswerA. Reorganizing the internal structure of a program to make it clearer without changing its externally visible behavior
Refactoring is the work of tidying up the internal structure of code while preserving its externally visible behavior, making later modifications easier. The first option is adding features, the third is hardware reinforcement, and the fourth is relocating facilities; none of them is improvement of internal structure.
Q26 | Product owner
What is the role of the product owner in Scrum?
Being responsible for the content and priority of the product backlog and maximizing the value of the product
Conducting personnel evaluations of team members and assigning tasks to each person
Recording daily progress and reporting budget overruns to management
Helping ensure the rules of Scrum are properly followed and removing problems that hinder development
AnswerA. Being responsible for the content and priority of the product backlog and maximizing the value of the product
The product owner is the role responsible for prioritizing what to build. The second option is the Scrum master's role; the first is not defined in Scrum, where the development team decides its own division of work; and the fourth is not a defined role either.
Q27 | Scrum master
Which of the following is an appropriate description of the Scrum master's role in Scrum?
Helping the team practice Scrum properly and removing problems that hinder the team
Negotiating prices with customers and deciding contract terms
Giving work orders to each member of the development team and managing them by reprimanding those who fall behind
Deciding the priority of requirements and finalizing the features to release
AnswerA. Helping the team practice Scrum properly and removing problems that hinder the team
The Scrum master supports the team in practicing Scrum and removes impediments. Command-and-control as in the first option is not part of the role, the second is the job of sales or administration, and the third is the product owner's role; none of these is the Scrum master's duty.
Q28 | Scrum terms
Which of the following appropriately describes the daily scrum in Scrum?
The development team meets briefly every day to share progress and problems and confirm the day's work
At the end of a sprint, the deliverables completed in that sprint are shown to stakeholders for evaluation and feedback
Requirements to be realized are organized into a prioritized list
The team reflects on how it works and decides improvements for the future
AnswerA. The development team meets briefly every day to share progress and problems and confirm the day's work
The daily scrum is a short meeting of about 15 minutes held every day, aimed at sharing progress and detecting impediments early. The second option describes the sprint review, the third the product backlog, and the fourth the sprint retrospective; their timing and purposes are different.
Q29 | CI/CD
Which of the following appropriately describes CI/CD, continuous integration and continuous delivery?
Operations staff manually copying files to the production environment and applying changes one by one
Merging all changes in one batch just before release and running tests all together, once, only at that point
Suspending new development and working only on maintaining the documentation of existing systems
Frequently integrating changed source code, automatically running builds and tests, and automating the flow through to release
AnswerD. Frequently integrating changed source code, automatically running builds and tests, and automating the flow through to release
CI/CD is a practice that frequently integrates small changes and automates building, testing, and releasing, raising quality and delivery speed. The first option is traditional big-bang integration that delays problem discovery, the third is not automated, and the fourth stops development activity altogether, so all are wrong.
Q30 | Reverse engineering
Which of the following corresponds to reverse engineering?
Using a development environment that lets you build applications just by placing components on the screen
Creating a program based on the design documents
Creating a new service by combining multiple publicly available services
Analyzing an existing program to derive its specifications and design information
AnswerD. Analyzing an existing program to derive its specifications and design information
Reverse engineering means analyzing existing software to extract its specifications and design information. The first option is ordinary forward development from design to implementation, the second is a mashup, and the fourth describes no-code or low-code development.
Practice: answer the questions on this page
This practice tool asks questions in random order (it works when JavaScript is enabled). You can still read all the questions and explanations above without it.
* The explanations are information for study purposes. Exam scope and systems change from year to year, so always check the official announcements of the organization that administers the exam.
This page is a translation of the Japanese original. If the translation and the original differ, the Japanese version takes precedence. View the Japanese original