Question

In: Computer Science

The objective of this assignment is to look at two aspects of testing, one is an...

The objective of this assignment is to look at two aspects of testing, one is an exploration of the theory of testing, the second is the exploration of a practical software tool.

You should pick a specific topic in software testing and explore it in a bit of detail, issues you could look at include: Functional testing, Compatibility testing, Static testing, Dynamic testing, White box testing, Black box testing, Grey box testing, Visual testing, Unit testing, Integration testing, Regression testing, Alpha testing, Beta testing, Usability testing, Certification, etc. or whatever you want.

Write between one page and one and a half pages on the topic, and include at least four references you use - this can be websites, papers, videos or books. Use the six thinking hats as a model for the structure of the article you write so do an Introduction Section (blue hat), some facts and details about the topic (white hat), the benefits of this topic (yellow hat), the shortcomings around this topic (black hat), the alternatives or interesting facts or examples about this topic (green hat), your views and reflections on this topic (red hat), and a conclusion at the end (another blue hat). Additionally include a simple MindMap about the topic.

Solutions

Expert Solution

Software Testing:

Testing is the process of evaluating a system or its component(s) with the intent to find whether it satisfies the specified requirements or not. In simple words, testing is executing a system in order to identify any gaps, errors, or missing requirements in contrary to the actual requirements.

Testing is done in different forms at every phase of SDLC −

  • During the requirement gathering phase, the analysis and verification of requirements are also considered as testing.
  • Reviewing the design in the design phase with the intent to improve the design is also considered as testing.
  • Testing performed by a developer on completion of the code is also categorized as testing.

Manual Testing

Manual testing includes testing a software manually, i.e., without using any automated tool or any script. In this type, the tester takes over the role of an end-user and tests the software to identify any unexpected behavior or bug.

Automation Testing

Automation testing, which is also known as Test Automation, is when the tester writes scripts and uses another software to test the product. This process involves automation of a manual process. Automation Testing is used to re-run the test scenarios that were performed manually, quickly, and repeatedly.

There are different methods that can be used for software testing.

  1. Black-box
  2. white-box
  3. gray-box

Black-Box Testing:

The technique of testing without having any knowledge of the interior workings of the application is called black-box testing. The tester is oblivious to the system architecture and does not have access to the source code. Typically, while performing a black-box test, a tester will interact with the system's user interface by providing inputs and examining outputs without knowing how and where the inputs are worked upon.

White-Box Testing:

White-box testing is the detailed investigation of internal logic and structure of the code. White-box testing is also called glass testing or open-box testing. In order to perform white-box testing on an application, a tester needs to know the internal workings of the code.The tester needs to have a look inside the source code and find out which unit/chunk of the code is behaving inappropriately.

Grey-Box Testing:

Grey-box testing is a technique to test the application with having a limited knowledge of the internal workings of an application. In software testing, the phrase the more you know, the better carries a lot of weight while testing an application.Mastering the domain of a system always gives the tester an edge over someone with limited domain knowledge. Unlike black-box testing, where the tester only tests the application's user interface; in grey-box testing, the tester has access to design documents and the database. Having this knowledge, a tester can prepare better test data and test scenarios while making a test plan.

Functional Testing:

This is a type of black-box testing that is based on the specifications of the software that is to be tested. The application is tested by providing input and then the results are examined that need to conform to the functionality it was intended for. Functional testing of a software is conducted on a complete, integrated system to evaluate the system's compliance with its specified requirements

There are five steps that are involved while testing an application for functionality:

  1. The determination of the functionality that the intended application is meant to perform.
  2. The creation of test data based on the specifications of the application.
  3. The output based on the test data and the specifications of the application.
  4. The writing of test scenarios and the execution of test cases.
  5. The comparison of actual and expected results based on the executed test cases.

Unit Testing

This type of testing is performed by developers before the setup is handed over to the testing team to formally execute the test cases. Unit testing is performed by the respective developers on the individual units of source code assigned areas. The developers use test data that is different from the test data of the quality assurance team.

The goal of unit testing is to isolate each part of the program and show that individual parts are correct in terms of requirements and functionality

Integration Testing:

Integration testing is defined as the testing of combined parts of an application to determine if they function correctly. Integration testing can be done in two ways: Bottom-up integration testing and Top-down integration testing

Bottom-up integration: This testing begins with unit testing, followed by tests of progressively higher-level combinations of units called modules or builds.

Top-down integration: In this testing, the highest-level modules are tested first and progressively, lower-level modules are tested thereafter.

Regression Testing

Whenever a change in a software application is made, it is quite possible that other areas within the application have been affected by this change. Regression testing is performed to verify that a fixed bug hasn't resulted in another functionality or business rule violation. The intent of regression testing is to ensure that a change, such as a bug fix should not result in another fault being uncovered in the application.

Alpha Testing

This test is the first stage of testing and will be performed amongst the teams (developer and QA teams). Unit testing, integration testing and system testing when combined together is known as alpha testing. During this phase, the following aspects will be tested in the application −

  • Spelling Mistakes
  • Broken Links
  • Cloudy Directions

· The Application will be tested on machines with the lowest specification to test loading times and any latency problems.

Beta Testing

This test is performed after alpha testing has been successfully performed. In beta testing, a sample of the intended audience tests the application. Beta testing is also known as pre-release testing. Beta test versions of software are ideally distributed to a wide audience on the Web, partly to give the program a "real-world" test and partly to provide a preview of the next release. In this phase, the audience will be testing the following −

  • Users will install, run the application and send their feedback to the project team.
  • Typographical errors, confusing application flow, and even crashes.
  • Getting the feedback, the project team can fix the problems before releasing the software to the actual users.
  • The more issues you fix that solve real user problems, the higher the quality of your application will be.
  • Having a higher-quality application when you release it to the general public will increase customer satisfaction.

Usability Testing

Usability testing is a black-box technique and is used to identify any error(s) and improvements in the software by observing the users through their usage and operation. According to Nielsen, usability can be defined in terms of five factors, i.e. efficiency of use, learn-ability, memory-ability, errors/safety, and satisfaction. According to him, the usability of a product will be good and the system is usable if it possesses the above factors.

Compatibility Testing?

Compatibility Testing is a type of Software testing to check whether your software is capable of running on different hardware, operating systems, applications, network environments.

Compatibility Testing is a type of Non-functional testing

Let's look into compatibility testing types

  • Hardware: It checks software to be compatible with different hardware configurations.
  • Operating Systems: It checks your software to be compatible with different Operating Systems like Windows, Unix, Mac OS etc.
  • Software: It checks your developed software to be compatible with other software. For example, MS Word application should be compatible with other software like MS Outlook, MS Excel, etc.
  • Network: Evaluation of performance of a system in a network with varying parameters such as Bandwidth, Operating speed, Capacity. It also checks application in different networks with all parameters mentioned earlier.
  • Browser: It checks the compatibility of your website with different browsers like Firefox, Google Chrome, Internet Explorer etc.
  • Devices: It checks compatibility of your software with different devices like USB port Devices, Printers and Scanners, Other media devices and Blue tooth.
  • Mobile: Checking your software is compatible with mobile platforms like Android, iOS etc.
  • Versions of the software: It is verifying your software application to be compatible with different versions of the software. For instance checking your Microsoft Word to be compatible with Windows 7, Windows 7 SP1, Windows 7 SP2, Windows 7 SP3.

Dynamic Testing

Dynamic Testing a code is executed. It checks for functional behavior of software system, memory/cpu usage and overall performance of the system. Hence the name "Dynamic". The main objective of this testing is to confirm that the software product works in conformance with the business requirements. This testing is also called an Execution technique or validation testing.

Six Hats of Thinking:

You can use Six Thinking Hats in meetings or on your own. In meetings, it has the benefit of preventing any confrontation that may happen when people with different thinking styles discuss a problem, because every perspective is valid.

Each "Thinking Hat" is a different style of thinking. These are explained below:

· White Hat: with this thinking hat, you focus on the available data. Look at the information that you have, analyze past trends, and see what you can learn from it. Look for gaps in your knowledge, and try to either fill them or take account of them.

· Red Hat: "wearing" the Red Hat, you look at problems using your intuition, gut reaction, and emotion. Also, think how others could react emotionally. Try to understand the responses of people who do not fully know your reasoning.

· Black Hat: using Black Hat thinking, look at a decision's potentially negative outcomes. Look at it cautiously and defensively. Try to see why it might not work. This is important because it highlights the weak points in a plan. It allows you to eliminate them, alter them, or prepare contingency plans to counter them.

Black Hat thinking helps to make your plans "tougher" and more resilient. It can also help you to spot fatal flaws and risks before you embark on a course of action. It's one of the real benefits of this model, as many successful people get so used to thinking positively that they often cannot see problems in advance. This leaves them under-prepared for difficulties.

· Yellow Hat: this hat helps you to think positively. It is the optimistic viewpoint that helps you to see all the benefits of the decision and the value in it. Yellow Hat thinking helps you to keep going when everything looks gloomy and difficult.

· Green Hat: the Green Hat represents creativity. This is where you develop creative solutions to a problem. It is a freewheeling way of thinking, in which there is little criticism of ideas. (You can explore a range of creativity tools to help you.)

· Blue Hat: this hat represents process control. It's the hat worn by people chairing meetings, for example. When facing difficulties because ideas are running dry, they may direct activity into Green Hat thinking. When contingency plans are needed, they will ask for Black Hat thinking.

An Example of Six Hat Thinking

The directors of a property company are considering whether they should build a new office block. The economy is doing well, and the vacant office spaces in their city are being snapped up. As part of their decision-making process, they adopt the Six Thinking Hats technique.

Wearing the White Hat, they analyze the data that they have. They can see that the amount of available office space in their city is dwindling, and they calculate that, by the time a new office block would be completed, existing space will be in extremely short supply. They also note that the economic outlook is good, and steady growth is predicted to continue.

Thinking with a Red Hat, some of the directors say that the proposed building looks ugly and gloomy. They worry that people would find it an oppressive or uninspiring place to work.

When they think with the Black Hat, they wonder whether the economic forecast could be wrong. The economy may be about to experience a downturn, in which case the building could sit empty or only partially occupied for a long time. If the building is unattractive, then companies will choose to work in other, more attractive premises.

Wearing the positive Yellow Hat, however, the directors know that, if the economy holds up and their projections are correct, the company stands to make a healthy profit. If they are lucky, maybe they could sell the building before the next downturn, or rent to tenants on long-term leases that will last through any recession.

With Green Hat thinking, they consider whether they should redesign the building to make it more appealing. Perhaps they could build prestige offices that people would want to rent in any economic climate. Alternatively, maybe they should invest the money in the short term, then buy up property at a lower cost when the next downturn happens.

The chairman of the meeting wears the Blue Hat to keep the discussion moving and ideas flowing, encouraging the other directors to switch their thinking between the different perspectives.

Having examined their options from numerous viewpoints, the directors have a much more detailed picture of possible outcomes, and can make their decision accordingly.


Related Solutions

LAUNGEG: C# Objective: For this assignment you will be creating two classes, an interface, and a...
LAUNGEG: C# Objective: For this assignment you will be creating two classes, an interface, and a driver program: Class Calculator will implement the interface CalcOps o As such it will implement hexToDec() - a method to convert from Hexadecimal to Decimal. Class HexCalc will inherit from Calculator. Interface CalcOps will have abstract methods for add( ), subtract( ), multiply( ) and divide( ). Both classes will implement the CalcOps interface. o Class Calculator’s add, subtract, multiply and divide will take...
The presentation slides This assignment requires you to look at one interface for a product of...
The presentation slides This assignment requires you to look at one interface for a product of your choice, identify what it was developed for, and then trace back its history (to the origin if possible) to look for similar solutions. This way you'll be clearer what the original problem is and how human through out history has managed it. You'll see that whole or part of the very early solutions seem to stay in most of the newer solutions, and...
Objective: The objective of this assignment is to allow students to understand the basic principles of...
Objective: The objective of this assignment is to allow students to understand the basic principles of arrays Program Requirements: The assignment will require the students use arrays to perform mathematical calculations. Program Setup: Functions to include in the program The program will have three functions Function 1: Responsible for setting values in the arrays Function 2: Responsible for printing values in arrays Function 3: Responsible for doing calculations to arrays Function 1 Details: Setting array values Parameters: 3 Array of...
This assignment requires you to look at one interface for a product of your choice, identify...
This assignment requires you to look at one interface for a product of your choice, identify what it was developed for, and then trace back its history (to the origin if possible) to look for similar solutions. This way you'll be clearer what the original problem is and how human through out history has managed it. You'll see that whole or part of the very early solutions seem to stay in most of the newer solutions, and you'll be able...
essay on Right to Repair”. Look at the legal aspects primarily.
essay on Right to Repair”. Look at the legal aspects primarily.
1. (1 point). (True / False) Estimating parameters and testing hypotheses are two important aspects of...
1. (1 point). (True / False) Estimating parameters and testing hypotheses are two important aspects of descriptive statistics. 2. (1 point). (True / False) A statistic is calculated from a population and a parameter is calculated from a sample.   3. (1 point). (True / False) Descriptive statistics include visual display of data, measures of central tendency and dispersion. (2 points each) What type of data (qualitative, discrete numerical, continuous numerical) is each of the following variables: 4. ______________________ The manufacturer...
Objective: The objective of this assignment is to learn about how to use common concurrency mechanism.        ...
Objective: The objective of this assignment is to learn about how to use common concurrency mechanism.         Task: In this assignment you will be doing the followings: 1. Write a program (either using Java, python, C, or your choice of programming language) to create three threads: one for deposit function and two for withdraw functions. 2. Compile and run the program without implementing any concurrency mechanism. Attach your output snapshot. 3. Now, modify your program to implement any concurrency mechanism. Compile...
Below are the assignment instructions, I italicized the two aspects I do not understand. I am...
Below are the assignment instructions, I italicized the two aspects I do not understand. I am not sure what the budgeting analysis of licensing and legal recognition would consist of in global expansion. I only need answers to those two aspects of this report. Assignment Instructions: Think of a company in your area that makes a product that you really like. If you cannot think of a company or product you can create one. Now, imagine you are asked to...
This assignment will ask you to look at your own finances. For this assignment, write a...
This assignment will ask you to look at your own finances. For this assignment, write a paragraph showing your percentages. I DO NOT want to know how much money you spend or have as income, I am only looking at the percentages. Describe for me what the effect of inflation is on you personally given what you found out. Look at a typical month of your expenditures and income. Create a list of your expenses by category (see below). Create...
Full paragraph (a) Why do economists look at implicit costs? (b) Look at two businesses (one...
Full paragraph (a) Why do economists look at implicit costs? (b) Look at two businesses (one big and one small) and for each identify what might be their implicit costs. Be specific! 1.What is the marginal product of labor (MP or MPP)? Why is the curve shaped the way it is? 2.Explain and describe each of the four production relationships.
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT