UNIT2STE
UNIT2STE
• GUI represents a presentation layer of an application. Good GUI helps an application due to better
experience of the users.
• Consistency of the screen layouts and designs improves usability of an application.
Disadvantages of GUI Testing:
• When number of pages is large and number of controls in a single page is huge.
• Special application testing like those made for blind people or kids below age of five may need
special training for testers.
3. State process of Bi-directional Integration testing with two advantages and two disadvantages.
Bi- directional integration is a combination of the top-down & bottom-up integration approaches used
together to derive integration steps.
As shown in fig , assume that the software components become available in the order mentioned by the
component numbers. The individual components 1,2 ,3,4 and 5 are tested separately and bi-directional
integration performed initially with the use of stubs and drivers. Drivers are used to provide upstream
connectivity while stubs provide downstream connectivity .A driver is a function which redirects the
requests to some other components and stubs simulate the behavior of missing components. After the
functionality of these integrated components are tested, the drivers and stubs are discarded. Once
components 6,7 and 8 become available, the integration methodology then focus only on those components
, as there are the components which need focus and are new. This approach is also called “Sandwich
Integration”.
Advantages:
1. Sandwich approach is useful for very large projects having several subprojects.
2. Both Top-down and Bottom-up approach starts at a time as per development schedule. Units are tested
and brought together to make a system .Integration is done downwards.
Disadvantages:
1. It require very high cost for testing because one part has Top-down approach while another part has
bottom-up approach.
2. It cannot be used for smaller system with huge interdependence between different
The security testing is performed to check whether there is any information leakage in the sense by
encrypting the application or using wide range of software‟s and hardware‟s and firewall etc.
Software security is about making software behave in the presence of a malicious attack.
The six basic security concepts that need to be covered by security testing are: confidentiality, integrity,
authentication, availability, authorization and non-repudiation.
2) Performance Testing
Performance testing is testing that is performed, to determine how fast some aspect of a system performs
under a particular workload.
It can serve different purposes like it can demonstrate that the system meets performance criteria.
Stress Testing:
It is a type of non-functional testing.
It involves testing beyond normal operational capacity, often to a breaking point, in order to
observe the results.
It is a form of software testing that is used to determine the stability of a given system.
It put greater emphasis on robustness, availability, and error handling under a heavy load, rather
than on what would be considered correct behavior under normal circumstances.
The goals of such tests may be to ensure the software does not crash in conditions of insufficient
computational resources (such as memory or disk space).
LoadTesting:
Load testing is a type of non-functional testing.
A load test is type of software testing which is conducted to understand the behavior of the
application under a specific expected load.
Load testing is performed to determine a system‟s behavior under both normal and at peak
conditions.
It helps to identify the maximum operating capacity of an application as well as any
bottlenecks and determine which element is causing degradation. E.g. If the number of users are
increased then how much CPU, memory will be consumed, what is the network and bandwidth
response time.
Load testing can be done under controlled lab conditions to compare the capabilities of
different systems or to accurately measure the capabilities of a single system.
Examples of load testing include:
Downloading a series of large files from the internet. Running multiple applications on a
computer or server simultaneously.
7. List any four advantages of acceptance test before launching any software.
1. Acceptance testing is phase after system testing that is normally done by the customer or representatives
of the customer. Due to that customer themselves to quickly judge the quality of the product.
2. Determine whether the software is fit for the user.
3. Making users confident about product.
4. Determine whether a software system satisfies its acceptance criteria.
5. Enables the buyer to determine whether to accept the system or not
8. Describe use of load testing and security testing in performance testing of facility of online result
display of MSBTE.
In case of testing of facility of online result display of MSBTE, Performance testing, will be a non-
functional testing technique performed to determine the system parameters in terms of responsiveness and
stability under various workload on the website. It will measures the quality attributes of the
Load testing –
It is the simplest form of testing conducted to understand the behavior of the system under a specific
load. Load testing will result in measuring number of critical transactions and load on the database,
application server, etc., are also monitored. It will show how the software will respond if the number of
students checking the result at the same time are more than specified. Response time of the system,
throughput, resource utilization,and Maximum user load will be checked by this type of testing.
Security Testing:
Security testing is a testing technique to determine if an information system protects data and
maintains functionality as intended. It also aims at verifying 6 basic principles as Confidentiality of the
MSBTE online result display system, Integrity of the software, authentication of the user who logs in to the
system to check the result with the help of valid seat number and enrollment number, authorization,
availability , and Nonrepudiation of the system.
9. How performance testing is performed? List steps involved in it?
i. Performance testing, a non-functional testing technique performed to determine the system parameters
in terms of responsiveness and stability under various workload.
ii. Performance testing measures the quality attributes of the system, such as scalability, reliability and
resource usage.
Techniques are:
Load testing - It is the simplest form of testing conducted to understand the behaviour of the system
under a specific load. Load testing will result in measuring important business critical transactions and load
on the database, application server, etc., are also monitored.
Stress testing - It is performed to find the upper limit capacity of the system and also to determine
how the system performs if the current load goes well above the expected maximum.
Soak testing - Soak Testing also known as endurance testing, is performed to determine the system
parameters under continuous expected load. During soak tests the parameters such as memory utilization
is monitored to detect memory leaks or other performance issues. The main aim is to discover the system's
performance under sustained use.
Spike testing - Spike testing is performed by increasing the number of users suddenly by a very large
amount and measuring the performance of the system. The main aim is to determine whether the system
will be able to sustain the workload.
13. Explain the Integration Testing and its two types. In each type, explain with example the steps of
integration.
Testing that occurs at the lowest level is called unit testing or module testing. As the units are tested
and the low-level bugs are found and fixed, they are integrated and integration testing is performed against
groups of modules. This process of incremental testing continues, putting together more and more pieces of
the software until the entire product or at least a major portion of it is tested at once in a process called
system testing.
With this testing strategy, it's much easier to isolate bugs. When a problem is found at the unit level,
the problem must be in that unit. If a bug is found when multiple units are integrated, it must be related to
how the modules interact. Of course, there are exceptions to this, but by and large, testing and debugging is
much more efficient than testing everything at once.
Types of Integration testing:
1). Top down Testing:
In this approach testing is conducted from main module to sub module. If the sub module is not
developed a temporary program called STUB is used for simulate the sub module.
Advantages :
Advantageous if major flaws occur toward the top of the program.
Once the I/O functions are added, representation of test cases is easier.
Early skeletal Program allows demonstrations and boosts morale.
Disadvantages:
Stub modules must be produced Stub Modules are often more complicated than they first appear to
be.
Before the I/O functions are added, representation of test cases in stubs can be difficult.
Test conditions may be impossible, or very difficult, to create.
Observation of test output is more difficult.
Allows one to think that design and testing can be overlapped.
Induces one to defer completion of the testing of certain modules.
2). Bottom up testing:
In this approach testing is conducted from sub module to main module, if the main module is not developed
a temporary program called DRIVERS is used to simulate the main module.
Advantages:
Advantageous if major flaws occur toward the bottom of the program.
Test conditions are easier to create.
Observation of test results is easier.
Disadvantages:
Driver Modules must be produced.
The program as an entity does not exist until the last module is added.
3). Bi-Directional Integration.
Bi-directional Integration is a kind of integration testing process that combines top-down and
bottom-up testing.
With an experience in delivering Bi-directional testing projects custom software development
services provide the best quality of the deliverables right from the development of software process.
Bi-directional Integration testing is a vertical incremental testing strategy that tests the bottom
layers and top layers and tests the integrated system in the computer software development process.
Using stubs, it tests the user interface in isolation as well as tests the very lowest level functions using
drivers. Bi-directional Integration testing combines bottom-up and top-down testing.
Bottom-up testing is a process where lower level modules are integrated and then tested.
This process is repeated until the component of the top of the hierarchy is analyzed.
It helps custom software development services find bugs easily without any problems.
Top down testing is a process where the top integrated modules are tested and the procedure is
continued till the end of the related module.
Top down testing helps developers find the missing branch link easily.
14. Explain the regression testing. State when the regression testing shall be done.
Regression testing a black box testing technique that consists of re-executing those tests that are
impacted by the code changes. These tests should be executed as often as possible throughout the software
development life cycle.
It is performed to validate the build that hasn't changed for a period of time. This build is deployed
or shipped to customers. A normal regression testing is performed to verify if the build has not broken any
other parts of the application by the recent code changes for defect fixing or for enhancement. It finds other
related bugs. It tests to check the effect on other parts of the program. Regression testing produces Quality
software. Validate the parts of software where changes occur. It validates parts of software which may be
affected by some changes but otherwise unrelated. It ensures proper functioning of the software, as it was
before changes occurred. It enhances quality of software, as it reduces the high risk bugs.
15. Describe how drivers and stubs can be used in unit testing with neat diagrams.
1. Drivers
1. Drivers are tools used to control and operate the software being tested.
2. One of the simplest examples of a driver is a batch file, a simple list of programs or commands that
are executed sequentially. In the days of MS-DOS, this was a popular means for testers to execute their test
programs.
3. They‘d create a batch file containing the names of their test programs, start the batch running, and
go home.
4. With today‘s operating systems and programming languages, there are much more sophisticated
methods for executing test programs.
5. For example, a complex Perl script can take the place of an old MS-DOS batch file, and the Windows
Task Scheduler can execute various test programs at certain times throughout the day as shown in Figure
below :
2. Stubs
1. Stubs, like drivers, are white-box testing techniques.
2. Stubs are essentially the opposite of drivers in that they don‘t control or operate the software being
tested; they instead receive or respond to data that the software.
3. The Figure shows the general view of stub configuration.
16. What is load testing and stress testing? Describe with respect to system testing.
Stress testing is testing the software under less than ideal conditions. So subject your software to
low memory, low disk space, slow cpus, and slow modems and so on. Look at your software and determine
what external resources and dependencies it has. Stress testing is simply limiting them to bare minimum.
With stress testing you starve the software.
For e.g. Word processor software running on your computer with all available memory and disk
space, it works fine. But if the system runs low on resources you had a greater potential to expect a bug.
Setting the values to zero or near zero will make the software execute different path as it attempt to handle
the tight constraint. Ideally the software would run without crashing or losing data.
Load testing is testing the software under customer expected load. In order to perform load testing
on the software you feed it all that it can handle. Operate the software with largest possible data files. If the
software operates on peripherals such as printer, or communication ports, connect as many as you can. If
you are testing an internet server that can handle thousands of simultaneous connections, do it. With most
software it is important for it to run over long periods. Some software‘s should be able to run forever without
being restarted. So Time acts as a important variable.
Stress testing and load testing can be best applied with the help of automation tools.
Stress testing and load testing are the types of performance testing.
The Microsoft stress utility program allows you to individually set the amounts of memory, disk
space, files and other resources available to the software running on the machine.
Example:
Open many number of browsers in the windows simultaneously.
Connect more than the specifies clients to the server.
Connect more than one printer to the system.
• Ensuring proper steps are documented to verify the compatibility of backup facilities.
• Demonstrating the ability of the organization to recover from all critical failures.
• Maintaining and updating the recovery plan at regular intervals.
(iv)Usability testing:
Usability testing, a non-functional testing technique that is a measure of how easily the system
can be used by end users.It is difficult to evaluate and measure but can be evaluated based on the below
parameters:
• Levels of Skill required learn/use the software. It should maintain the balance for both
novice and expert user.
• Levels of Skill required learn/use the software. It should maintain the balance for both
novice and expert user.
• Time required to get used to in using the software.
• The measure of increase in user productivity if any.
• It also uncovers the non-functional issues such as load & performance defects in the actual user
environment.
Advantages:
• It is conducted to ensure that system requirements meet business needs.
• The UAT process allows for any issues to be fixed before the system goes live.
• It helps in simulating the real-time user behavior and environment.
• It allows the company to improve the software quality by involving customer feedback.