Upload
gurpreet-singh
View
302
Download
0
Tags:
Embed Size (px)
Citation preview
1 | P a g e
Very short questions :
Que 1 : Define Software Testing.
Ans : Software testing is a process of executing a program or application with the intent of finding
the software bugs. It can also be stated as the process of validating and verifying that a software
program or application or product:
Meets the business and technical requirements that guided it’s design and development
Works as expected
Can be implemented with the same characteristic.
Que 2 : What is risk identification ?
Ans : 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.
Que 3 : What is SCM ?
Ans : Software configuration management (SCM) is a software engineering discipline consisting of
standard processes and techniques often used by organizations to manage the changes introduced to
its software products. SCM helps in identifying individual elements and configurations, tracking
changes, and version selection, control, and baselines.
SCM Process includes following steps :
● Identification
● Change control
● Version control
● Configuration auditing
● Status reporting
Que 4 : Define Debugging.
Ans : Debugging is the routine process of locating and removing computer program bugs, errors or
abnormalities, which is methodically handled by software programmers via debugging tools.
2 | P a g e
Debugging checks, detects and corrects errors or bugs to allow proper program operation according
to set specifications.
Que 5 : Explain Configuration audit.
Ans : A configuration management process that confirms the integrity of a systems product prior to
delivery. There are two types of configuration audits:
Functional audit. The objective of the functional audit is to provide an independent evaluation
of a software product, verifying that its configuration items' actual functionality and
performance is consistent with the relevant requirement specification. This audit is held prior
to software delivery to verify that all requirements specified in the Software Requirements
Specification have been met.
Physical audit. The objective of the physical audit is to provide an independent evaluation of a
software product's configuration items to confirm that all components in the as-built version
map to their specifications. Specifically, this audit is held to verify that the software and its
documentation are internally consistent.
Que 6 : Differentiate between white box testing & black box testing.
Ans :
White Box Testing Black Box Testing
1. It is a software testing method in which the
internal structure/design/implementation
of the item being tested is known to the
tester. tester validates the internal
structure of the item under consideration
along with the output.
2. Programming knowledge and
implementation knowledge (internal
structure and working) is required in White
Box testing.
1. It is a software testing method in which
the internal
structure/design/implementation of the
item being tested is not known to the
tester. Tester is mainly concerned with
the validation of output rather than how
the output is produced.
2. Programming knowledge and
implementation knowledge (internal
structure and working) is not necessary in
Black Box testing.
3 | P a g e
3. It is generally done by the programmers
who have developed the item or the
programmers who have an understanding
of the item's internals.
3. It is done by the professional testing team
and can be done without knowledge of
internal coding of the item.
Que 7 : What do you mean by metrics ?
Ans : A software metric is a quantitative measure of a degree to which a software system or process
posesses some property. Since quantitative measurements are essential in all sciences, there is a
continuous effort by computer science practitioners and theoreticians to bring similar approaches to
software development. The goal is obtaining objective, reproducible and quantifiable measurements,
which may have numerous valuable applications in schedule and budget planning, cost estimation,
quality assurance testing, software debugging, software performance optimization, and optimal
personnel task assignments.
Que 8 : What do you mean by version control ?
Ans : Version control is a system that records changes to a file or set of files over time so that you can
recall specific versions later. For the examples in a book you will use software source code as the files
being version controlled, though in reality you can do this with nearly any type of file on a computer.
Fig. Local version control
4 | P a g e
Que 9 : Explain Object Oriented Software Engineering.
Ans : Object-Oriented Software Engineering (OOSE) is a software design technique that is used in
software design in object-oriented programming.
OOSE is developed by Ivar Jacobson in 1992. OOSE is the first object-oriented design
methodology that employs use cases in software design. OOSE is one of the precursors of the Unified
Modeling Language (UML), such as Booch and OMT. It includes a requirements, an analysis, a design,
an implementation and a testing model.
Que 10 : What are the advantages and disadvantages of manual testing tools ?
Ans : The advantages of manual testing tools are :
1. Manual testing is preferable for products with short life cycles.
2. Manual testing is preferable for products that have GUIs that constantly change
3. It requires less time and expense to begin productive manual testing.
4. Automation can not replace human intuition, inference, and inductive reasoning.
5. Automation tests are more easily fooled than human testers.
The disadvantages of manual testing tools are :
1. It requires more time or more resources.
2. Performance testing is impractical in manual testing.
3. It is less accurate as compared to automated testing.
4. It is not suitable for large scale projects and time bounded projects.
5. Comparing large amount of data is impractical.
Short questions :
Que 1 : What do you mean by baselines ? Explain their importance.
Ans : A baseline is a reference point in the software development life cycle marked by the completion
and formal approval of a set of predefined work products. The objective of a baseline is to reduce a
project's vulnerability to uncontrolled change by fixing and formally change controlling various key
deliverables (configuration items) at critical points in the development life cycle. Baselines are also
used to identify the aggregate of software and hardware components that make up a specific release
of a system.
Baseline purpose. The purpose of a baseline is to provide:
5 | P a g e
Measurable progress points within the system development lifecycle (if it's baselined it's
finished!)
A basis for change control in subsequent project phases
A stable reference for future work
Intermediate and final points for assessing the fitness for purpose of project work products.
Effective baselines have the following characteristics:
A baseline must be associated with the production and formal approval of a physical deliverable
such as a document or hardware/software component
All items associated with a baseline must be placed under formal change control.
Examples of baselines (refer figure). Typical baselines include:
The statement of system requirements (functional baseline)
High level design (allocated baseline)
Detailed design (design baseline)
The software product at the completion of system test (product baseline)
The software product in its operational environment (operational baseline).
Fig. Baseline Progression.
Typical Baseline Components
Baseline When Established Components
Functional Completion of software requirements review
Concept of Operations Document, Software Requirements Specification.
Allocated Completion of preliminary design review
High level design documents, interface control documents.
6 | P a g e
Design Completion of design review
Detailed design documents.
Unit test Completion of a set of module tests where the modules comprise a unit
Source and executable code modules.
Integration test
Completion of a set of unit tests where the units can be integrated
Source and executable code units, unit test plans, test procedures, test cases and data sets and test reports.
Acceptance test
Completion of integration testing
Source and executable code units, integration test plans, test procedures, test cases and data sets and test reports.
Product Completion of acceptance testing
Source and executable code units, final system specifications, user and maintenance manuals, acceptance test plans, test procedures, test cases and data sets and test reports.
Que 2 : What do you mean by change control ? Explain the various steps in detail.
Ans : Change control is a systematic approach to managing all changes made to a product or
system. The purpose is to ensure that no unnecessary changes are made, that all changes are
documented, that services are not unnecessarily disrupted and that resources are used efficiently.
Within information technology (IT), change control is a component of change management.
The change control process is usually conducted as a sequence of steps proceeding from the
submission of a change request. Typical IT change requests include the addition of features to
software applications, the installation of patches, and upgrades to network equipment.
7 | P a g e
Fig. Change Control Process
Here's an example of a six-step process for a software change request:
1. Documenting the change request : When the client requests the change, that request is
categorized and recorded, along with informal assessments of the importance of that change
and the difficulty of implementing it.
2. Formal assessment : The justification for the change and risks and benefits of making/not
making the change are evaluated. If the change request is accepted, a development team will
be assigned. If the change request is rejected, that fact is documented and communicated to
the client.
3. Planning : The team responsible for the change creates a detailed plan for its design and
implementation, as well as a plan for rolling back the change should it be deemed unsuccessful.
4. Design and testing : The team designs the program for the software change and tests it. If the
change is deemed successful, the team requests approval and a date for implementation.
5. Implementation and review : The team implements the program and stakeholders review the
change.
6. Final assessment : If the client is satisfied that the change was implemented satisfactorily, the
change request is closed. If the client is not satisfied, the project is reassessed and steps may
be repeated.
Que 3 : Explain various types of testing in detail.
8 | P a g e
Ans : Software testing is a process of executing a program or application with the intent of finding
the software bugs. It can also be stated as the process of validating and verifying that a software
program. Various types of testing are :
Black box testing – Internal system design is not considered in this type of testing. Tests are
based on requirements and functionality.
White box testing – This testing is based on knowledge of the internal logic of an application’s
code. Also known as Glass box Testing. Internal software and code working should be known
for this type of testing. Tests are based on coverage of code statements, branches, paths,
conditions.
Unit testing – Testing of individual software components or modules. Typically done by the
programmer and not by testers, as it requires detailed knowledge of the internal program
design and code. may require developing test driver modules or test harnesses.
Incremental integration testing – Bottom up approach for testing i.e continuous testing of an
application as new functionality is added; Application functionality and modules should be
independent enough to test separately. done by programmers or by testers.
Integration testing – Testing of integrated modules to verify combined functionality after
integration. Modules are typically code modules, individual applications, client and server
applications on a network, etc. This type of testing is especially relevant to client/server and
distributed systems.
Functional testing – This type of testing ignores the internal parts and focus on the output is as
per requirement or not. Black-box type testing geared to functional requirements of an
application.
System testing – Entire system is tested as per the requirements. Black-box type testing that is
based on overall requirements specifications, covers all combined parts of a system.
End-to-end testing – Similar to system testing, involves testing of a complete application
environment in a situation that mimics real-world use, such as interacting with a database,
using network communications, or interacting with other hardware, applications, or systems if
appropriate.
Sanity testing - Testing to determine if a new software version is performing well enough to
accept it for a major testing effort. If application is crashing for initial use then system is not
stable enough for further testing and build or application is assigned to fix.
9 | P a g e
Regression testing – Testing the application as a whole for the modification in any module or
functionality. Difficult to cover all the system in regression testing so typically automation tools
are used for these testing types.
Acceptance testing -Normally this type of testing is done to verify if system meets the customer
specified requirements. User or customer do this testing to determine whether to accept
application.
Load testing – Its a performance testing to check system behavior under load. Testing an
application under heavy loads, such as testing of a web site under a range of loads to determine
at what point the system’s response time degrades or fails.
Stress testing – System is stressed beyond its specifications to check how and when it fails.
Performed under heavy load like putting large number beyond storage capacity, complex
database queries, continuous input to system or database load.
Performance testing – Term often used interchangeably with ‘stress’ and ‘load’ testing. To
check whether system meets performance requirements. Used different performance and load
tools to do this.
Usability testing – User-friendliness check. Application flow is tested, Can new user understand
the application easily, Proper help documented whenever user stuck at any point. Basically
system navigation is checked in this testing.
Install/uninstall testing - Tested for full, partial, or upgrade install/uninstall processes on
different operating systems under different hardware, software environment.
Recovery testing – Testing how well a system recovers from crashes, hardware failures, or
other catastrophic problems.
Security testing – Can system be penetrated by any hacking way. Testing how well the system
protects against unauthorized internal or external access. Checked if system, database is safe
from external attacks.
Compatibility testing – Testing how well software performs in a particular
hardware/software/operating system/network environment and different combination s of
above.
Comparison testing – Comparison of product strengths and weaknesses with previous versions
or other similar products.
10 | P a g e
Alpha testing – In house virtual user environment can be created for this type of testing. Testing
is done at the end of development. Still minor design changes may be made as a result of such
testing.
Beta testing – Testing typically done by end-users or others. Final testing before releasing
application for commercial purpose.
Que 4 : Differentiate between automated testing and manual testing.
Ans : Testing of software can be done in both Automation and Manual testing method, but it’s
totally depends on the project requirement, budget associated with the project, and which testing
method will be benefited to the project. This article provides basic information about Manual
Testing and Automation Testing, enjoy reading it and let us know in the comment about which
one is best for your project.
Comparison between Automation Testing and Manual testing
Automation Testing Manual Testing
Automation testing perform the same
operation each time
Manual testing is not reliable. Using this
method test execution is not accurate all the
time.
Automation testing is very much helpful
regressions in testing where code changes
frequently.
To execute the test cases first time using
manual testing will be very much useful. But
it is not sure that it will catch the regression
defects under frequently changing
requirements.
Automation testing will be useful to execute
the set of test cases frequently.
Manual testing will be useful when the test
case only needs to run once or twice.
After making Automation test suites, fewer
testers required to execute the test cases.
To execute the test cases every time tester
requires the same amount of time.
Automation testing can also be done on
different machine with different OS platform
combination, concurrently.
Using manual testing, testing on different
machine with different OS platform
combination is not possible, concurrently. To
11 | P a g e
execute such task different testers are
required.
Using Automation testing, testers can test
complicated application too.
It does not involve in programming task to
fetch hidden information.
Automation runs test cases significantly
faster than human resources.
Manual testing is slower than automation.
Running tests manually can be very time
consuming.
Some time it is not helpful in UI testing It is very much helpful in UI testing
Automation testing is very useful for
automating the Build Verification Testing
(BVT) & it is not mundane and tiresome.
To execute the Build Verification Testing
(BVT) is very mundane and tiresome in
manual testing.
Que 5 : What is web engineering ? Explain in detail its model and features.
Ans : Web engineering actively promotes systematic, disciplined and quantifiable approaches
towards successful development of high-quality, ubiquitously usable Web-based systems and
applications.[3] In particular, Web engineering focuses on the methodologies, techniques and tools
that are the foundation of Web application development and which support their design,
development, evolution, and evaluation. Web application development has certain characteristics
that make it different from traditional software, information system, or computer application
development. Web engineering is multidisciplinary and encompasses contributions from diverse areas: systems
analysis and design, software engineering, hypermedia/hypertext engineering, requirements
engineering, human-computer interaction, user interface, information engineering, information
indexing and retrieval, testing, modelling and simulation, project management, and graphic design
and presentation. Web engineering is neither a clone, nor a subset of software engineering,
although both involve programming and software development. While Web Engineering uses
software engineering principles, it encompasses new approaches, methodologies, tools,
techniques, and guidelines to meet the unique requirements of Web-based applications.
12 | P a g e
Fig. Web Engineering
Modeling disciplines
Design Manufacturing of Steel Plant equipments
Process Modelling of Web applications
Requirements Engineering for Web applications
B2B applications
Design disciplines, tools and methods
UML and the Web Conceptual Modeling of Web Applications (aka. Web modeling) Prototyping Methods and Tools Web design methods CASE Tools for Web Applications Web Interface Design Data Models for Web Information Systems