answersLogoWhite

0

📱

Software Engineering

Software engineering is the process of applying well-developed techniques and practices in order to create new software products. Questions about everything from design patterns to requirements and specification belong here.

1,663 Questions

When was Software Testing Automation Framework created?

Software Testing Automation Framework was created in 1998.

What is advantage of using prototyping model instead of using waterfall model?

There are many advantages of using prototype model over waterfall model .

Some of the advantages are:

1) Excellent for gathering and refining requirements.

2) Useful for assessing and reducing risks.

Who should perform the validation test-the software developer or the software user?

Neither, it should be performed by a qualified Software Tester and witnessed by a Software Quality Engineer, a Systems Engineer, and the customer/user representative.

The Software Developer should be entirely out of the picture at this point and only be responsible for fixing bugs found during validation.

What does the dynamic ARP table describe?

The dynamic ARP table tells you all the ARP (Address Resolution Protocol) that have been dynamically learned rather than statically. Dynamically means that it learned the pathway automatically without having to be configured.

What are the work product of requirement engineering?

An SRS document is formed after requirement engineering. The SRS stands for Software Requirement Specification.

Do developers perform testing?

Yes, developers do perform software tests.

What do use case exceptions represent?

They show the handling of errors and other unexpected events.

Why computer engineering is significant to the national and global economy?

Software Engineering is very important as most of the world is moving to computers. IT is the future of the world.

How do you be a senior software engineer and how is it different from software engineer?

A "senior software engineer" is somebody who's been on the job for more than about 3 years. It's a pretty flexible definition.

Provide three examples of software projects that would be amenable to the prototyping model?

Software applications that are relatively easy to prototype almost always involve

human-machine interaction and/or heavy computer graphics. Other applications that

are sometimes amenable to prototyping are certain classes of mathematical

algorithms, subset of command driven systems and other applications where results

can be easily examined without real-time interaction. Applications that are more

difficult to prototype include control and process control functions, many classes of

real-time applications and embedded software.

What are The Challenges in Agile Testing?

There are numerous challenges which are faced by software testing companies which follows Agile methodology. Along with Agile Development team, Root-Cause Analysis is also the responsibility of a tester. Tester should be able to perform Root-Cause Analysis while finding severe bugs so that they unlikely to reoccur and also to ensure best QA services. While Agile has different flavors, Scrum is one process for implementing Agile. There are some scrum rules which need to be followed by every individual:

  • Acquiring Number of Hours Commitment Up Front
  • Requirements gathering
  • Ingress the actual/estimated hours on daily basis
  • Daily Builds
  • Keeping the Daily Scrum meetings short
  • Code Inspections are Paramount

So, in order to meet the above challenges, an agile tester needs to be innovative with the tools that they use. Hope this information is clear and you can get back to us in case need more information.

How do you identify right automation tool?

Identification of the right automation tool is critical to ensure the success of the testing project. Before selecting a tool a detailed analysis must be required. So that, the efforts put in the tool evaluation process enables successful execution of the project for a software qa company. The selection of the tool depends on various factors such as:

  • The application and its technology stack which is to be tested
  • Detailed testing requirements
  • Skill sets available in the organization
  • License cost of the tool
There are various functional automation tools available in the market for automating web and desktop applications also. Some of these are:
  • QTP (Quick Test Professional): Powerful tool from HP to automate web and desktop applications.
  • Selenium: Open source automation tool for automating web applications.
  • Watir (Web Application Testing in Ruby): Open source family of Ruby libraries for automating web browsers.
  • Geb: Open source automation tool based on Groovy.
While analyzing various automation tools for providing test automation services, a comparison of key parameters helps to select the right tool for the specific requirements of the project. The parameters are:
  • Ease of Adoption
  • Ease of Scripting & Reporting capabilities
  • Tools Usage
Software testing companies can assign values to these parameters as per their automation requirements. The tool with the highest score can be considered for further investigation.

Hope this information is clear to you and you can get back us in case need more information.

Define software testing. explain its types?

Software testing is the process used to measure the quality of developed computer software.

According to definition given by The Institute of Electrical and Electronics Engineers, USA (IEEE) - Software testing is the process of analyzing a software item to detect the differences between existing and required conditions (that is, bugs) and to evaluate the features of the software item

According to the definition given by Dave Gelperin and William C. Hetzel - Software testing can be stated as the process of validating and verifying that a software program/application/product:

1. meets the requirements that guided its design and development

2. works as expected

3. can be implemented with the same characteristics

4. satisfies the needs of stakeholders

For the source and more detailed information concerning this subject, click on the related links section (Answers.com) indicated below.

What Provide three examples of software projects that would be amenable to the waterfall model. Be specific.?

Official tender with closed set of requirement and fixed price. Usually tender covers up to X% of “changes and additional requirements”, so small stuff can be changed and added later, but everything beyond that - nope.

You get an Excel or Word with several thousands of requirements (big and complex and trivial, with one line can cost zero and other can cost $1M to develop), you estimate the effort, add risk factors, and submit your proposal together with technical and managerial descriptions.

Good luck.

Anything that both satisfies their requirements as-written, and fits into technical description that was submitted will (must) be accepted by the customer - or they will have to bargain like “let’s cancel this requirement, but instead please implement that one”.

For governmental / military project managing all those requirements, what was amended, what was added, who owes what to whom, how it affects timelines, subcontractors (sometimes they are enforced by the customer and paid directly by him), is a full time and very non trivial job.

There are many types of projects that can’t be managed in Agile way, or delivered in Agile way (they still can be developed in Agile way, as it is internal matter of the dev team).

Customer won’t see anything before first review (that was requested as part of the tender, and was budgeted for).

Oh, forgot the reviews.

Interface Design Review, Integration Design Review, HMI Design Review, Safety Committee, Cyber Committee, Field Experiment Design Review, most of them come twice (preliminary and critical), for some you can add third - “Readiness Review”.

For big project that are delivered in phases you do the whole set two-tree times, for features of each phase (obviously first set takes the most effort).

Don’t forget logistics - spare parts program, operator training, technician training, certification programs, delivery of trainers and simulators.

Multiple pair-integration sessions, separate entity that manages integration and coordination of all systems (not only software. To be able to deploy in X hours your software must boot up, but hardware must be able to work for some time even before AC lowered temp in the shelter to the “long-running-threshold” value. Think about hundreds of interdependencies).

Everything must be coordinated.

Then come field tests. Test grounds must be booked, plans reviewed, safety issues validated, roads and air space closed, all the stuff shipped, engineers and technicians sent over (sometimes hundreds of them). To prepare all that takes months if not years. and usually you can’t “move” it in time. If something is not ready - or experiment will be delayed (very big issue), or this feature won’t be tested at all (bad), or experiment plan will be amended to allow testing of whatever can be tested (non ideal, but acceptable).

Then, when everything works and you deliver it - sometimes it is only IOC - initial operational concept. That means - pilot version. Customer will play with it for a year or two, and then order more - with changes, both in hardware and software, to cover for all deficiencies discovered in this “evaluation” period.

So trust me, there are many projects where “push-to-production” just doesn’t have a chance.

You can’t “eventually” get Air Traffic Control system (and I am talking about ground component only, not real avionics) if you start with something that can handle one plane that flies on the straight line, and continuously improve it.

You can’t deliver a “minimally valuable product” for nuclear station management system, and improve it with two-weeks sprints.

You can develop it in this way “internally”, you can give it to QA so they will test only very specific stuff (use-cases and scenarios) that is already implemented, but you never give anything to the customer until is passes FAT, SAT and full integration tests.

Version release process (you know, from check-in through Jenkins etc) can take months, and cost hundred thousands of $$$ (and I don’t include field tests, let’s assume everything can be done in QA/Integration laboratories).

Cost is not an exaggeration:

$1M is cost of employing 6–8 engineers for a year. So if version validation takes 2–3 months (different subcontractors, different countries, supervision from the customer and various certification authorities), and all over there are 10 people working on that (system engineers, programmers, part of managerial effort goes into that, QA people, integrators) you easily get into $K250–300 area for a main contractor. Add to it internal expenses of the customer (it cost them too to get a new version, redeploy, train, etc) and subcontractors, and you are in half-million area. This is for small “maintenance” release, not major delivery of significantly new functionality.

So yes, there are projects that are rather be done using Waterfall approach.

Is D a good variable name?

Variable names should show what data the variable holds so others reading your code will understand it. For example, a variable holding the age of a user should be called "age" or "user_age", or something similar.