SE - Unit 4 and 5 - Complete
SE - Unit 4 and 5 - Complete
PART-A
1.What are the approaches of integration testing
A,1.Big bang approach
2.top down approach
3.bottom up approach
4.sandwich/hybrid approach
2 Define various test characteristics.
A.1. High probability of detecting errors
2. No redundancy
3. Choose the most appropriate test
4.Moderate
3 Write short notes on internal and external views of testing.
A. In graph matrix based testing, we convert Our flow graph into a square matrix with one row
and one column for every node in the graph. If the size of graph increases, it becomes difficult to
do path tracing manually.
Objective : To trace all links of the Flow Graph at least once, draw a Square Matrix from it &
find out the cyclomatic complexity, V(G) and hence the independent paths.
6 Explain different steps that can be applied to derive the test cases.
A.STEPS :
A. A greater number of errors occurs at the boundaries of the input domain rather than in the
“center of input domain.
• For this reason that boundary value analysis (BVA) has been developed as a testing
technique • Boundary value analysis leads to a selection of test cases that exercise
bounding values.
• BVA leads to the selection of test cases at the “edges” of the class. Rather than focusing
solely on input conditions.
• BVA derives test cases from the output domain also.
11 Discuss in detail about graph-based testing methods.
A. Graph Based Testing-Cause and effect graphs are generated and cyclometric complexity
considered in using the test cases.
A. Unit testing focuses verification effort on the smallest unit of software design—
the software component or module
• Targets for Unit Test Cases
– Module interface
Local data structures
Boundary conditions
Independent paths (basis paths)
14 What is the use of integration testing? Explain its types.
A. The purpose of this level of testing is to expose faults in the interaction between
integrated units. Test drivers and test stubs are used to assist in Integration Testing.
Types:
1.incremental integration testing
2.non-incremental testing
15 Discuss about alpha and beta testing.
A.
Alpha Testing performed at developer's site Beta testing is performed at client location or end
user of the product
Reliability and Security Testing are not Reliability, Security, Robustness are checked
performed in-depth Alpha Testing during Beta Testing
Alpha testing involves both the white box and Beta Testing typically uses Black Box Testing
black box techniques
Alpha testing requires lab environment or testing Beta testing doesn't require any lab environment
environment or testing environment. Software is made
available to the public and is said to be real time
environment
16 Define stress and performance testing.
A. Stress testing refers to the testing of software or hardware to determine whether its
performance is satisfactory under any extreme and unfavorable conditions, which may
occur as a result of heavy network traffic, process loading, underclocking, overclocking
and maximum requests for resource utilization.
A. Objective of debugging is to find and correct the cause of a software error or defect. –
Bugs are found by a combination of systematic evaluation, intuition, and luck.
– Debugging methods and tools are not a substitute for careful evaluation based on a
complete design model and clear source code
– There are three main debugging strategies
1. Brute force
2. Backtracking
3. Cause elimination
19 Define the importance of refactoring technique in software implementation.
It helps to get confidence to tester that fixes in the previous builds not breaking major
features (off course, only features exercised by smoke testing).
A deviation from specification is uncovered and a deficiency list is created. Deviation or error
discovered at this stage in a project can rarely be corrected prior to scheduled completion. It is
often necessary to negotiate with the customer to establish a method for resolving deficiencies.
PART-B
1. Explain the integration testing process and system testing process and discuss their
outcomes.
A. Integration testing is done to test the modules/components when integrated to verify that
they work as expected i.e. to test the modules which are working fine individually does
not have issues when integrated.
System testing is a testing where the system as a whole is tested i.e. all the
modules/components are integrated together to verify whether the system works as
expected and no issues occur because of the integrated modules.
System Testing is the testing of a complete and fully integrated software product. Usually
software is only one element of a larger computer based system. Ultimately, software is
interfaced with other software/hardware systems.System Testing is actually a series of different
tests whose sole purpose is to exercise the full computer based system.
1) Unit testing:
Unit testing focus on the smallest unit of software design, i.e module or software component.
Test strategy conducted on each module interface to access the flow of input and output.
The local data structure is accessible to verify integrity during execution.
Boundary conditions are tested.
In which all error handling paths are tested.
An Independent path is tested.
2) Integration testing:
3) Regression testing:
In regression testing the software architecture changes every time when a new module is added
as part of integration testing.
4) Smoke testing:
The developed software component are translated into code and merge to complete the
product.
3. Compare and contrast black box testing and White Box testing.
A.
A. Basis path testing, a structured testing or white box testing technique used for designing test
cases intended to examine all possible paths of execution at least once. Creating and executing
tests for all possible paths results in 100% statement coverage and 100% branch coverage.
Path 1: 1 - 2 - 5 - 7
Path 2: 1 - 2 - 5 - 6 - 7
Path 3: 1 - 2 - 3 - 2 - 5 - 6 - 7
Path 4: 1 - 2 - 3 - 4 - 2 - 5 - 6 - 7
2. Defect analysis: If the defect is genuine, the next step is to understand the root cause of the
problem. Generally, engineers debug by starting a debugging tool (debugger) and they try to
understand the root cause of the problem by following a step-by-step execution of the program.
3. Defect resolution: Once the root cause of a problem is identified, the error can be resolved by
making an appropriate change to the system by fixing the problem.
When the debugging process ends, the software is retested to ensure that no errors are left
undetected. Moreover, it checks that no new errors are introduced in the software while making
some changes to it during the debugging process.
Validation Planning – To plan all the activities that need to be included while testing.
Define Requirements – To set goals and define the requirements for testing.
Selecting a Team – To select a skilled and knowledgeable development team (the third
party included).
Developing Documents – To develop a user specification document describing the
operating conditions.
Estimation/Evaluation – To evaluate the software as per the specifications and submit a
validation report.
Fixing bugs or Incorporating Changes – To change the software so as to remove any
errors found during evaluation.
This method is named so because the software program, in the eyes of the tester, is like a black
box; inside which one cannot see. This method attempts to find errors in the following
categories:
12. What are the various testing strategies to software testing? Discuss them briefly.
A. Following figure shows the testing strategy:
Unit testing
Unit testing starts at the centre and each unit is implemented in source code.
Integration testing
An integration testing focuses on the construction and design of the software.
Validation testing
Check all the requirements like functional, behavioral and performance requirement are validate
against the construction software.
System testing
System testing confirms all system elements and performance are tested entirely.
As per the procedural point of view the testing includes following steps.
1) Unit testing
2) Integration testing
3) validation testing
4) System testing
PART-C
1. Discuss software failures and faults? What are test coverage criteria? Discuss testing issues.
A. Fault – a manifestation of an error in software, also known as Defect or Bug.
Test coverage is often confused with Code Coverage. Even though the underlying principles are
the same, they are two different things.
Test Coverage, on the other hand, is testing every requirement at least once and is obviously a
QA team activity.
Testing issues:
Software or systems are often installed and rolled out with hundreds of defect in them. The result
is poor performance and loss of many days both for the software development firm as well as the
client. To avoid such problems team leads or managers must sort out some issues which are
inherent to software testing. Let us go through 5 main software testing issues and methods to
resolve them.
1. Inadequate schedule of testing:
Testing is a time consuming affair. It has to be so since it is done to bring out the defects or
inadequacies of the system under different conditions and not to show that it works. Testing
needs to go hand in hand with development. This will make sure that inadequacies or errors in a
particular functionality of the system is brought to the notice of the development team and sorted
out sooner than later.
2. Insufficient testing environment and tools:
Tools and environments are backbones of proper software testing. However, testing is often
carried out in inadequate testing environment. An over reliance on manual testing
or COTS testing tools is another aspect. Moreover, some of the environmental components
themselves suffer from defects. What is commonly seen is that test environment, test data and
test software are not under adequate configuration control.
3. Wrong testing mindset:
Often the mindset of the software testing team revolves around finding out functionality of the
system rather than finding defects in it. This itself prohibits the team from finding out flaws in
the software.
OR
Verification Validation
1. Verification is a static practice of 1. Validation is a dynamic mechanism
verifying documents, design, code and of validating and testing the actual
program. product.
2. It does not involve executing the 2. It always involves executing the
code. code.
3. It is human based checking of 3. It is computer based execution of
documents and files. program.
4. Validation uses methods like black
4. Verification uses methods like
box (functional) testing, gray box
inspections, reviews, walkthroughs,
testing, and white box (structural)
and Desk-checking etc.
testing etc.
5. Validation is to check whether
5. Verification is to check whether the
software meets the customer
software conforms to specifications.
expectations and requirements.
6. It can catch errors that validation 6. It can catch errors that verification
cannot catch. It is low level exercise. cannot catch. It is High Level Exercise.
7. Target is requirements specification,
7. Target is actual product-a unit, a
application and software architecture,
module, a bent of integrated modules,
high level, complete design, and
and effective final product.
database design etc.
8. Verification is done by QA team to
8. Validation is carried out with the
ensure that the software is as per the
involvement of testing team.
specifications in the SRS document.
9. It generally comes first-done before
9. It generally follows after verification.
validation.
4. Is unit testing possible or even desirable in all circumstances? Provide examples to justify your
answer
A. Unit testing may not be possible in all situations. When object-oriented software is
considered, the concept of unit testing changes. Encapsulation drives the definition of classes and
objects. This means that each class and each instance of a class packages attributes and the
operations that manipulate these data. An encapsulated class is usually the focus of unit testing.
However, operations within the class are the smallest testable units. Because, a class can contain
a number of different operations, and a particular operation may exist as a part of a number of
different classes, the tactics applied to unit testing must change.
You can no longer test a single operation in isolation, but rather as part of a class. To illustrate,
consider a class hierarchy in which an operation X is defined for the superclass and is inherited
by a number of subclasses. Each subclass uses operation X, but it is applied within the context of
the private attributes and operations that have been defined for the subclass. Because the context
in which operation X is used varies in subtle ways, it is necessary to test operation X in the
context of each of the subclasses. This means that testing operation X in a stand-alone fashion is
usually ineffective in the object-oriented context.
5. Who should perform the validation test the software developer or the software user? Justify
your answer.
A. The developer should check that the code works correctly regarding all requirements. It can
be done through different ways - write unit tests, manually. It is common for developers to write
their own unit tests as they develop code. These provide fast feedback on design problems and
logic errors.
After that, QAs (Quality Assurance engineers) should make one more test in different cases and
perform regression testing, if necessary.
And finally, we should organize user acceptance testing. On the basis of this result, we can
decide to implement new release.
The final step is the real Users should have a way to report faults that escape into the wild, in a
way that lets developers and QAs reproduce them.
Example :
Software user (Customer) might expect the software should work seamlessly between Desktop
and Smartphones (Say AutoCAD for example).
From Developer’s point of view, it might take more Processor power to run the same application
on smartphone, so It might not work (AutoCAR might need more RAM then current
smartphones have)
So it's better if all the parties tests the product so there is no confusion at the end.
UNIT-V
PART-A
A. As a project manager, it’s impossible to underestimate the importance of cost estimation when
it comes to successfully completing a project. Before even approaching a project, it’s important
to get a handle on cost estimation to help keep you on task and in touch with project constraints
and limitations.
A. COCOMO II is tuned to modern software life cycles. COCOMO II targets modern software
projects, and will continue to evolve over the next few years. Dr. Barry Boehm and his students
are developing COCOMO II at USC. We support COCOMO II in SystemStar.
1. Project Risks: Risks which will affect the project schedule or resources. For example, stuff
turnover, that is an experience team member of a project left the organization.
2. Product Risks: Risks that affect the quality or performance of the software being developed.
For example a component isn't performing as expected.
3. Business Risks: Risks that affect the organization developing or procuring the software. For
example, a competitor is developing a similar product that will challenge the product being
developed.
9. Write a short note on risk identification.
A. Risk identification is a process for identifying and recording potential project risks that can
affect the project delivery. This step is crucial for efficient risk management throughout the
project. The outputs of the risk identification are used as an input for risk analysis, and they
reduce a project manager's uncertainty.
10.Explain how overall project risk will be assessed.
A.Step 1: Identify potential risks.
Step 2: Determine probability.
Step 3: Determine Impact.
11 What is risk projection (or) risk estimation?
A. Risk projection, also called risk estimation, attempts to rate each risk in two ways—the
likelihood or probability that the risk is real and the consequences of the problems associated
with the risk, should it occur.
12 Elaborate the RMMM.
A. RMM stands for risk mitigation, monitoring and management.
13 Discuss about software project scheduling.
A. Project scheduling is a mechanism to communicate what tasks need to get done and which
organizational resources will be allocated to complete those tasks in what timeframe. A project
schedule is a document collecting all the work needed to deliver the project on time.
14 What are the basic principles of software project scheduling?
COMPARTMENTALIZATION
INTERDEPENDENCY
TIME ALLOCATION
EFFORT VALIDATION
DEFINED RESPONSIBILITIES
DEFINED OUTCOMES
DEFINED MILESTONES
A. To generate a Timeline chart, the data must be formatted as Date — these are the only charts
for which the data selected is not formatted as Number. The chart is based on the selection of
two date-formatted line items representing a start and an end date.
PART-B
1.Explain in detail about Reactive versus Proactive Risk Strategies
A.
1. Concept development projects that are initiated to explore some new business concept or
application of some new technology.
2. New application development projects that are undertaken as a consequence of a specific
customer request.
3. Application enhancement projects that occur when existing software undergoes major
modifications to function, performance, or interfaces that are observable by the end-user.
4. Application maintenance projects that correct, adapt, or extend existing software in ways that
may not be immediately obvious to the end-user.
5. Reengineering projects that are undertaken with the intent of rebuilding an existing (legacy)
system in whole or in part.
6.How the risk identification in done in risk management.
A. Definition: Risk identification is the process of determining risks that could potentially
prevent the program, enterprise, or investment from achieving its objectives. It includes
documenting and communicating the concern.
- COCOMO is factual and easy to interpret. One can clearly understand how it works.
- Accounts for various factors that affect cost of the project.
- Works on historical data and hence is more predictable and accurate.
- The drivers are very helpful to understand the impact on the different factors that affect the
project costs.
Disadvantages:
The purpose of measuring is to give data that enables better management decisions to be taken.
The information management needs is that which supports their strategic goals and business
objectives. If these needs are not clear then similarly the rationale for measurement may not be
clear. Often a measurement programme throws up lack of clarity in management objectives.
Product metrics describe the characteristics of the product such as size, complexity,
design features, performance, and quality level.
Process metrics can be used to improve software development and maintenance.
Examples include the effectiveness of defect removal during development, the pattern of
testing defect arrival, and the response time of the fix process.
Project metrics describe the project characteristics and execution. Examples include the
number of software developers, the staffing pattern over the life cycle of the software,
cost, schedule, and productivity.
2. Be Dynamic
Once you have your plan in place, remain flexible. All sorts of things can happen which could
change the plan slightly. But if you can anticipate these and are ready to act when they come up,
you will find yourself better equipped to deal with them. Before your project starts think about
potential issues that could arise, how to prevent them, and, if they arise, how you will resolve
them. You need to fulfill your role as a team leader in these situations and deal with these issues
confidently and calmly.
3. Communication
You need to ensure your team clearly communicates with one another. Make sure that everyone
knows what the aims of the project are and how to achieve them. Any change to plans need to be
understood by the team members and they must be able to discuss any concerns freely. Short and
regular meetings keep everyone updated, instead of long and infrequent ones. In doing this, you
will be able to spot any problems emerging more quickly. Therefore, having meetings frequently,
you will maintain a high level of motivation and morale within the team as it helps everyone feel
included and promotes a good group dynamic.
Make sure you’re communicating with the client. Keep them updated on progress or any
potential problems and of course listen to their feedback. This way, you won’t run the risk of
them becoming unhappy with any steps you have taken.
4. Stay on Track
One of your main tasks as project manager is to make sure that the team is working well together
– that they are on the right track and sticking to the schedule. There is project management
software which can help you track the progress your team is making. Online Kanban boards,
even a physical one in the office, helps you visualize your workflow, facilitating efficient use of
time. If everyone in the team has access to the board, they can update their progress, making
status-update meetings quicker. Gantt charts also work in a similar way, helping you to visualize
the tasks that need to be done against the time they are likely to take for completion.
PART-C
1.Describe the difference between “known risks” and “predictable risks.”
A. Known Risk : Known risks are those that are identified by evaluating the project plan
1) It can be uncovered after careful evaluation project plan, business and technical
environment in which the project is being developed, other reliable information resources.
2) E.g. unrealistic delivery date, lack of software poor development environment.
Predictable Risk: Predictable risks are those that can be identified in advance based on past
project experience
1) Predictable risks are extrapolated from past project experience.
2) E.g. staff turnover, poor communication with the customer, dilution of staff effort as
ongoing maintenance requests are serviced.
2.Describe five software application areas in which software safety and hazard analysis would
be a major concern.
A. Astronomy
Biological Sciences
Chemistry
Computer Science
Data Science
Decision and Control
Earth and Planetary Sciences
Economics
Economics and Computer Science
Engineering
Government
Physics
Psychology
Scientific Computing
Statistics
ASTRONOMY
Combining applied mathematics with astronomy or another similar physical science
allows delving deeper into mathematical foundations, while maintaining a strong
overview of the major concepts and methods.
BIOLOGICAL SCIENCES
The field of biological sciences can be broken into several sub-areas, and it is possible for
specialization in any of these areas. The focus should be on attaining competence and basic
knowledge in the field of biology and learning how mathematics can be substantively applied to
this field. The categories include:
Ecology and Evolutionary Biology
Neuroscience
COMPUTER SCIENCE
Applied Mathematics concentrators specializing in computer science will build a broader
base of applicable mathematics and focus on those aspects of the subject which depend
most directly on such mathematics.
For an application in computer science, students will take at least one course in the 120
series, as well as at least two more courses drawn from the 120s, 130s, 150s, 161, 175, or
the 180s.
DATA SCIENCE
Applied Mathematics concentrators specializing in data science will take AM 120, Stat
111, CS 181 or CS 182 (and applicable prerequisite courses), and two electives.
Recommended electives include MCB 112, Astro 100 and 193, additional statistics
coursework beyond Stat 110/111, ES 201 and 202, further CS coursework, and
econometrics.
DECISION AND CONTROL
The Decision and Control area is concerned with topics that are sometimes called
operations research and/or systems engineering. The common theme is optimization, in
various forms and contexts, both to understand natural systems and to design man made
systems.