MANUAL TESTING

Common problems in the software development process?

Posted on

There are 5 common problems in software development process

Poor Requirement: –   Unclear details, Incomplete requirement, and too general.

Inadequate testing: – No one knows whether your program is any good till the customers complains or system crashes.

Features: – A request to pile on new features after development is underway, Actually this extremely common.

Miscommunication: – If developers don’t know what’s needed or customers have erroneous expectations problem are guaranteed

Advertisements

SDLC (Software Development Life cycle)

Posted on

A Software development life cycle is composed of a number of clearly defined and distinct work phases which are used by Software engineers and Software developers to plan for, design, build, test, and deliver Software. Like anything that is developed on an assembly line, an SDLC aims to produce high-quality software that meet or exceed customer expectations, based on customer requirements, by delivering software which move through each clearly defined phase, within scheduled time frames and cost estimates.

The SDLC is not a methodology, but rather a description of the phases in the life cycle of a software application. These phases (speaking) are

  1. Requirement Gathering
  2. Analysis
  3. Design
  4. Coding (Development)
  5. Testing
  6. Implementatiion
  7. Maintenance / Services

Shashikant_sdlc-4-638

Requirement Gathering

In this Phase, Business Analyst will gather the all requirement from the client/customer and prepare Business requirement specification (BRS) or Customer requirement specification (CRS) or User Requirement Specification (URS). Senior business Analyst will prepare the System/Software requirement Specification (SRS) documents.

Rule for Successful requirement gathering

  1. Always Ask – don’t assume you know what user wants.
  2. Include the users from the starting.
  3. Define and agree on the scope of the project.
  4. Requirement should be SMART – specific, Measurable, Agree upon, Realistic and Time-based.
  5. Gain clarity if there is any doubt.
  1. Create clear user requirement document and share with the customer (play them back).
  1. Avoid talking about technology or solutions until the requirements are fully understood.
  2. Get the requirements agreed with the stakeholders before the project starts.
  3. Create a prototype model, if necessary, to confirm or refine the customer’s requirements.

Analysis

It is a method that allows the analyst to understand the system and its activities in a logical way. It is a systematic approach to analyse and refine the existing system and develop a new system specification which can be easily understandable by user.

Note: –The features and the functions that need to be put in the project are determined/analysed.

Design

It will be done by the very experienced person like Chief Architect or technical Team Leader or Architect.

Architect will have prepared the HLD (High Level design) and LLD (Low Level Design).

HLD: – High Level Design

  • List of modules and a brief description of each module.
  • Brief functionality of each module.
  • Interface relationship among modules
  • Database tables identified along with the key element.
  • Overall architecture diagrams along with technology details.

Example1.1: Data flow diagram for high level designshashikant_Dataflow

LLD: – Low Level Design

  • Detailed functional logic of the module.
  • Database table, with all elements, including their type and size.
  • All dependency issue Error Message Listings.
  • Complete input and Output for a module.

Example1.2: Data flow diagram for high level designShashikant_LowLevel

Development/Coding

Based on the HLD and LLD document, small modules are summed together and developed.

codingIMg

Testing

If testing is done correctly, it increases the overall software quality. This phase done by Test Engineers. Different types of testing performed by test engineers.

  • Functional Testing and Non-Functional Testing.
  • Black-Box Testing and White-Box Testing.
  • Static & Dynamic Testing
  • Unit testing
  • System testing
  • Performance Testing
  • Load Testing

Shashikant_Test

Implementation

Shashikant_Implemaintation

The Implementation phase is when the end user of your software is foremost in your mind. During this phase, you create the documentation and tools the customer uses to make informed decisions about how to deploy your software securely. To this end, the Implementation phase is when you establish development best practices to detect and remove security and privacy issues early in the development cycle.

Maintenance

Shashikant_maintenance

The Maintenance Phase occurs once the system is operational. It includes implementation of changes that software might undergo over a period of time, or implementation of new requirements after the software is deployed at the customer location. The maintenance phase also includes handling the residual errors that may exist in the software even after the testing phase. This phase also monitors system performance, rectifies bugs and requested changes are made.

A Maintenance, often turned support, is a crucial activity for linking the experiences of users/customers with the product delivery organization. We consider perspectives on high tech maintenance from bug fixing through to design focused activities.

Key Deliverables:

  • Keep system live
  • Maintain code
  • Update software when required

Sources: –

https://eternalsunshineoftheismind.wordpress.com/2013/03/10/sdlc-phase-5-maintenance/

https://www.projectsmart.co.uk/requirements-gathering.php

 

Start and Stop Testing When?

Posted on Updated on

Start Testing – When?

Testing Starts right from the requirements gathering phase and continues till the release time.

Shashikant_StartTesting

 

Objective of early testing

Requirements related defects caught later in the SDLC, Result in higher cost to fix the defect.

Shashikant_bugFix

Stop Testing – When?

Following factors are considered to stop testing: –

  • Test cases executed with the acceptable percentage of defects.
  • Project deadlines Ex: – Release Deadline, Testing Deadline.
  • Test budget has been run out.
  • Coverage of code, Functionality or Requirements reaches to specific point.
  • Bug rate falls below the acceptable level.

Untitled.png

 

Reason to stop testing?

Shashikant_StopTesting1

Software Testing Basic Concept

Posted on Updated on

What is testing?

In general term testing is finding out how well something works. In terms of human beings, testing tells what level of knowledge or skill has been acquired. In Hardware and software, testing is used at key checkpoints in the overall process to determine whether requirements are being met.

What is Software Testing?

  1. It is stated as the process of validating and verifying that a software/Program/Application or Product:
  •  Works as expected according to the business and technical requirements.
  •  Works Consistently and Predictably.
  1. It is not sufficient to demonstrate that the software is doing what it is supposed to do. It is more important to demonstrate that the software is not doing what it is not supposed to do.
  1. It is process of finding defects i.e. variance between Expected result and Actual results. And process of executing a software program application with intent of finding errors.

Why is Testing necessary?

User don’t like bugs, so testing

Software testing is necessary to make sure the product or application is defect free, as per customer specifications. Software testing identifies faults whose removal increases the software quality and increases the software reliability.

Testing effort is directly proportional to the complexity of the program. More complex the program, more the testing effort is required.

Software Testing is necessary, because software should be: –

–          Error Free

–          Efficient

–          Secured

Software Testing is important as it may cause mission failure, Impact on operational performance and unreliable if not done properly.

When Testing Start?

Testing start right from the requirement phase and continue till the release time. The main objective of early starting, if requirement related defects caught later in the SDLC result in higher cost to fix the defect.

How we can do Testing?

There is two way for testing.

  1. Manual Testing: – In Manual Testing, Testers manually execute test cases and find defect  without the uses of any tools or Automation scripts.

 

2.  Automation Testing: – It is a process of instructing a tool to perform an operation on an      application under test. Test automation is the use of software to control the execution of  tests & the comparison of expected v/s actual result.

Thanks…..