software testing and quality assurance assignment 3

12
1 | Page 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.

Upload: gurpreet-singh

Post on 10-Aug-2015

304 views

Category:

Engineering


0 download

TRANSCRIPT

Page 1: Software Testing and Quality Assurance Assignment 3

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.

Page 2: Software Testing and Quality Assurance Assignment 3

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.

Page 3: Software Testing and Quality Assurance Assignment 3

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

Page 4: Software Testing and Quality Assurance Assignment 3

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:

Page 5: Software Testing and Quality Assurance Assignment 3

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.

Page 6: Software Testing and Quality Assurance Assignment 3

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.

Page 7: Software Testing and Quality Assurance Assignment 3

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.

Page 8: Software Testing and Quality Assurance Assignment 3

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.

Page 9: Software Testing and Quality Assurance Assignment 3

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.

Page 10: Software Testing and Quality Assurance Assignment 3

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

Page 11: Software Testing and Quality Assurance Assignment 3

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.

Page 12: Software Testing and Quality Assurance Assignment 3

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